1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 6 7 8 9 10
10<script> 11 (function () { 12 window.__deferAppCss = window.__deferAppCss || {}; 13 14 var deferPatterns = [ 15 'wishlistcollections.css', 16 'wishlistcollections', 17 'recommendation-react.css', 18 'recommendation-react', 19 'accelerated-checkout-backwards-compat.css', 20 'accelerated-checkout', 21 'swym-ui-components', 22 'swym-shared' 23 ]; 24 25 function shouldDefer(href) { 26 if (!href) return false; 27 return deferPatterns.some(function (pattern) { 28 return href.indexOf(pattern) !== -1; 29 }); 30 } 31 32 var pending = Object.create(null); 33 34 function loadHref(href) { 35 if (!href || pending[href] === 'loaded') return; 36 pending[href] = 'loaded'; 37 38 var link = document.createElement('link'); 39 link.rel = 'stylesheet'; 40 link.href = href; 41 link.media = 'all'; 42 document.head.appendChild(link); 43 } 44 45 function scheduleHref(href) { 46 if (!href || pending[href]) return; 47 pending[href] = 'scheduled'; 48 } 49 50 function flushScheduled() { 51 Object.keys(pending).forEach(function (href) { 52 if (pending[href] === 'scheduled') loadHref(href); 53 }); 54 } 55 56 function armFlush() { 57 if (window.__deferAppCss.flushArmed) return; 58 window.__deferAppCss.flushArmed = true; 59 60 var run = function () { 61 flushScheduled(); 62 }; 63 64 if ('requestIdleCallback' in window) { 65 requestIdleCallback(run, { timeout: 2500 }); 66 } else { 67 setTimeout(run, 200); 68 } 69 70 window.addEventListener('load', run, { once: true }); 71 } 72 73 function neutralizeLink(link) { 74 if (!link || !link.href || !shouldDefer(link.href)) return false; 75 if (link.dataset.deferredCss === 'true') return true; 76 77 link.dataset.deferredCss = 'true'; 78 scheduleHref(link.href); 79 armFlush(); 80 81 if (link.parentNode) { 82 link.parentNode.removeChild(link); 83 return true; 84 } 85 86 link.media = 'not all'; 87 link.onload = function () { 88 this.media = 'all'; 89 }; 90 setTimeout(function () { 91 if (link.media === 'not all') link.media = 'all'; 92 }, 4000); 93 return true; 94 } 95 96 function deferStylesheet(node) { 97 if (!node || node.nodeName !== 'LINK') return; 98 var rel = (node.rel || '').toLowerCase(); 99 if (rel.indexOf('stylesheet') === -1 && rel.indexOf('preload') === -1) return; 100 101 if (node.href && shouldDefer(node.href)) { 102 if (rel.indexOf('preload') !== -1) node.rel = 'stylesheet'; 103 neutralizeLink(node); 104 return; 105 } 106 107 if (node.href) return; 108 109 new MutationObserver(function (_records, observer) { 110 if (!node.href) return; 111 observer.disconnect(); 112 if (shouldDefer(node.href)) neutralizeLink(node); 113 }).observe(node, { attributes: true, attributeFilter: ['href'] }); 114 } 115 116 function patchNodePrototype() { 117 if (Node.prototype.__deferCssPatched) return; 118 Node.prototype.__deferCssPatched = true; 119 120 var nativeAppendChild = Node.prototype.appendChild; 121 var nativeInsertBefore = Node.prototype.insertBefore; 122 123 Node.prototype.appendChild = function (child) { 124 if (child && child.nodeName === 'LINK' && child.href && shouldDefer(child.href)) { 125 scheduleHref(child.href); 126 armFlush(); 127 child.dataset.deferredCss = 'true'; 128 child.media = 'not all'; 129 return nativeAppendChild.call(this, child); 130 } 131 deferStylesheet(child); 132 return nativeAppendChild.call(this, child); 133 }; 134 135 Node.prototype.insertBefore = function (child, referenceNode) { 136 if (child && child.nodeName === 'LINK' && child.href && shouldDefer(child.href)) { 137 scheduleHref(child.href); 138 armFlush(); 139 child.dataset.deferredCss = 'true'; 140 child.media = 'not all'; 141 return nativeInsertBefore.call(this, child, referenceNode); 142 } 143 deferStylesheet(child); 144 return nativeInsertBefore.call(this, child, referenceNode); 145 }; 146 } 147 148 function patchInsertionMethods(parent) { 149 if (!parent || parent.__deferCssHooked) return; 150 parent.__deferCssHooked = true; 151 152 var nativeAppend = parent.appendChild; 153 var nativeInsertBefore = parent.insertBefore; 154 155 parent.appendChild = function (child) { 156 deferStylesheet(child); 157 return nativeAppend.call(this, child); 158 }; 159 160 parent.insertBefore = function (child, referenceNode) { 161 deferStylesheet(child); 162 return nativeInsertBefore.call(this, child, referenceNode); 163 }; 164 } 165 166 window.__deferAppCss.shouldDefer = shouldDefer; 167 window.__deferAppCss.neutralizeLink = neutralizeLink; 168 window.__deferAppCss.armFlush = armFlush; 169 170 patchNodePrototype(); 171 patchInsertionMethods(document.head); 172 patchInsertionMethods(document.documentElement); 173 174 document.querySelectorAll('link[rel~="stylesheet"], link[rel="stylesheet"]').forEach(deferStylesheet); 175 176 new MutationObserver(function (mutations) { 177 mutations.forEach(function (mutation) {
178 mutation.addedNodes.forEach(function (node) { 179 deferStylesheet(node); 180 if (node.querySelectorAll) { 181 node.querySelectorAll('link[rel~="stylesheet"], link[rel="stylesheet"]').forEach(deferStylesheet); 182 } 183 }); 184 }); 185 }).observe(document.documentElement, { childList: true, subtree: true }); 186 })(); 187 </script>
187 188 189 190 191 192 193 194 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 195 <meta name="viewport" content="width=device-width,initial-scale=1"> 196 <meta name="theme-color" content=""> 197 198 199 200<meta name="ps-key" content="3094-5cf56059936b80000cb90c78"> 201<meta name="ps-country" content="us" /> 202<meta name="ps-language" content="en" /> 203 204 <link rel="canonical" href="https://www.americanstandard-us.com/"> 205 <link rel="icon" type="image/x-icon" href="//www.americanstandard-us.com/cdn/shop/t/165/assets/favicon_80x.png?v=18051512652623431871759779065"> 206 207 208 209 210 211 212 213 214 215 <meta name="description" content="For 150 years, American Standard has crafted innovative, award-winning kitchen and bath productsâtrusted by generations. Inspired by the people who use them, our stylish, sustainable designs elevate everyday life and set new standards for quality, function and home experience."> 216 217 218 <title>Bathroom and Kitchen Fixtures, Faucets, Sinks, Toilets and Accessories</title> 219 220 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 221<link href="//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.woff2?v=50069725340017827621759779140" as="font" type="font/woff2" crossorigin="anonymous" rel="preload"> 222<link href="//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.woff2?v=20576220070842171361759779132" as="font" type="font/woff2" crossorigin="anonymous" rel="preload"> 223 224<style data-shopify> 225 @font-face { 226 font-family: 'Montserrat'; 227 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Light.eot?v=147005764417708976711759779132'); 228 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Light.eot?v=147005764417708976711759779132#iefix') format('embedded-opentype'), 229 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Light.woff2?v=95902881413207233821759779135') format('woff2'), 230 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Light.woff?v=48621887657538341821759779134') format('woff'), 231 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Light.ttf?v=11681835778923591261759779134') format('truetype'), 232 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Light.svg?v=95924722026718906541761579722#Montserrat-Light') format('svg'); 233 font-weight: 300; 234 font-style: normal; 235 font-display: swap; 236 } 237 238 239 @font-face { 240 font-family: 'Montserrat'; 241 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.eot?v=95346081426853620991759779138'); 242 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.eot?v=95346081426853620991759779138#iefix') format('embedded-opentype'), 243 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.woff2?v=50069725340017827621759779140') format('woff2'), 244 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.woff?v=86935946902320248721759779139') format('woff'), 245 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.ttf?v=41055220998291202911759779139') format('truetype'), 246 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Regular.svg?v=65024223367858556591761579665#Montserrat-Regular') format('svg'); 247 font-weight: 400; 248 font-style: normal; 249 font-display: swap; 250 } 251 252 @font-face { 253 font-family: 'Montserrat'; 254 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Medium.eot?v=13757934462871752511759779135'); 255 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Medium.eot?v=13757934462871752511759779135#iefix') format('embedded-opentype'), 256 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Medium.woff2?v=38924696451037412941759779137') format('woff2'), 257 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Medium.woff?v=26600741018958492661759779137') format('woff'), 258 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Medium.ttf?v=120889324015852621071759779136') format('truetype'), 259 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Medium.svg?v=136712982462551523971761579714#Montserrat-Medium') format('svg'); 260 font-weight: 500; 261 font-style: normal; 262 font-display: swap; 263 } 264 265 @font-face { 266 font-family: 'Montserrat';
267 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-SemiBold.eot?v=30552917409904874121759779140'); 268 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-SemiBold.eot?v=30552917409904874121759779140#iefix') format('embedded-opentype'), 269 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-SemiBold.woff2?v=93464489670099400461759779142') format('woff2'), 270 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-SemiBold.woff?v=167679741429721634661759779142') format('woff'), 271 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-SemiBold.ttf?v=122820963203821542241759779141') format('truetype'), 272 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-SemiBold.svg?v=99277445160080596711761579673#Montserrat-SemiBold') format('svg'); 273 font-weight: 600; 274 font-style: normal; 275 font-display: swap; 276 } 277 278 @font-face { 279 font-family: 'Montserrat'; 280 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.eot?v=165977858451623245361759779130'); 281 src: url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.eot?v=165977858451623245361759779130#iefix') format('embedded-opentype'), 282 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.woff2?v=20576220070842171361759779132') format('woff2'), 283 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.woff?v=64580485855519396321759779131') format('woff'), 284 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.ttf?v=150559539035700290551759779131') format('truetype'), 285 url('//www.americanstandard-us.com/cdn/shop/t/165/assets/Montserrat-Bold.svg?v=27183169268412344411761579652#Montserrat-Bold') format('svg'); 286 font-weight: 700; 287 font-style: normal; 288 font-display: swap; 289 } 290</style> 291 292 293<style data-shopify> 294 *, 295 *::before, 296 *::after { 297 box-sizing: border-box; 298 } 299 300 html { 301 -webkit-font-smoothing: antialiased; 302 -moz-osx-font-smoothing: grayscale; 303 } 304 305 body { 306 margin: 0; 307 font-family: Montserrat, system-ui, -apple-system, sans-serif; 308 color: #1c1c1e; 309 line-height: 1.5; 310 } 311 312 img, 313 video { 314 max-width: 100%; 315 height: auto; 316 display: block; 317 } 318 319 /* Swym wishlist collections â minimal layout until app CSS loads async */ 320 .swym-wishlist-collections-v2-container { 321 position: absolute; 322 top: 0; 323 left: 0; 324 padding: 10px; 325 z-index: 5; 326 cursor: pointer; 327 } 328 329 .page-container { 330 width: 100%; 331 } 332 333 /* âââ Hero banner ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 334 The banner image has a fixed height (h-[306px] md:h-[603px] 2xl:h-[790px]). 335 Reserve that space BEFORE Swiper initialises to prevent CLS. 336 We do not fix the swiper height (autoHeight handles it); only the image container. 337 contain:layout prevents internal banner shifts from propagating to the rest of the page. 338 âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 339 banner-overlay { 340 display: block; 341 contain: layout; 342 } 343 344 banner-overlay .swiper-slider-wrapper { 345 min-height: 306px; 346 } 347 348 banner-overlay .swiper-slide > div:first-child { 349 min-height: 306px; 350 } 351 352 @media (min-width: 768px) { 353 banner-overlay .swiper-slider-wrapper, 354 banner-overlay .swiper-slide > div:first-child { 355 min-height: 603px; 356 } 357 } 358 359 @media (min-width: 1536px) { 360 banner-overlay .swiper-slider-wrapper, 361 banner-overlay .swiper-slide > div:first-child { 362 min-height: 790px; 363 } 364 } 365 366 /* Hide nav buttons until Swiper positions them correctly (prevents micro-shift) */ 367 banner-overlay .swiper-example-button-prev, 368 banner-overlay .swiper-example-button-next { 369 visibility: hidden; 370 } 371 372 /* âââ Product cards âââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 373 compared-products-add-button absolutely positioned from the first paint. 374 âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ */ 375 compared-products-add-button { 376 position: absolute; 377 } 378</style> 379 380 381 382 383 384<link rel="preload" href="//www.americanstandard-us.com/cdn/shop/t/165/assets/theme.css?v=32893919593089956921790252761" as="style"> 385<link rel="preload" href="//www.americanstandard-us.com/cdn/shop/t/165/assets/theme-sass.css?v=166602369257674745261785414631" as="style"> 386 387<link 388 rel="stylesheet" 389 href="//www.americanstandard-us.com/cdn/shop/t/165/assets/theme.css?v=32893919593089956921790252761" 390 media="print" 391 onload="this.media='all';this.dataset.loaded='true';window.dispatchEvent(new Event('theme:css-loaded'));" 392> 393<link 394 rel="stylesheet" 395 href="//www.americanstandard-us.com/cdn/shop/t/165/assets/theme-sass.css?v=166602369257674745261785414631" 396 media="print" 397 onload="this.media='all';this.dataset.loaded='true';" 398> 399 400<noscript> 401 <link href="//www.americanstandard-us.com/cdn/shop/t/165/assets/theme.css?v=32893919593089956921790252761" rel="stylesheet" type="text/css" media="all" /> 402 <link href="//www.americanstandard-us.com/cdn/shop/t/165/assets/theme-sass.css?v=166602369257674745261785414631" rel="stylesheet" type="text/css" media="all" /> 403</noscript> 404 405 406 <!-- hoverintent: global used by menu / gallery; focus-visible: a11y polyfill -->
407<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/lib-hoverintent.min.js?v=25925461595492703971761579646" defer="defer"></script>
vendor: 1 bytes, line 407
407
408<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/lib-focus-visible.min.js?v=164939444357772559501761579680" defer="defer"></script>
vendor: 1 bytes, line 408
408
409<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/youtube-click-to-load.js?v=120431168455966881551790252760" defer="defer"></script>
409 410 411 412 413 414 415
416<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/storefront-api-client.min.js?v=70317392194818334671761579638" defer="defer"></script>
416 417 418 419
420<script> 421 window.theme = window.theme || {}; 422 window.theme.assets = window.theme.assets || {}; 423 window.theme.assets.swiperJs = "\/\/www.americanstandard-us.com\/cdn\/shop\/t\/165\/assets\/lib-swiper-bundle.min.js?v=1644918357175907801761579702"; 424 window.theme.assets.swiperCss = "\/\/www.americanstandard-us.com\/cdn\/shop\/t\/165\/assets\/lib-swiper-bundle.min.css?v=127325684396148790271761579694"; 425</script>
425 426 427 428
428<script type="text/javascript"> 429 (function () { 430 // Global object to store TrustedForm data 431 window.__trustedFormData = { 432 certUrl: null, 433 loaded: false 434 }; 435 436 function runOnceWhenIdle(task, timeout) { 437 if ('requestIdleCallback' in window) { 438 window.requestIdleCallback(task, { timeout: timeout || 2500 }); 439 } else { 440 setTimeout(task, 1); 441 } 442 } 443 444 function loadTrustedForm() { 445 if (window.__trustedFormLoaded) return; 446 window.__trustedFormLoaded = true; 447 448 var tf = document.createElement('script'); 449 tf.type = 'text/javascript'; 450 tf.async = true; 451 tf.src = 452 ('https:' == document.location.protocol ? 'https' : 'http') + 453 '://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl&use_tagged_consent=true&l=' + 454 new Date().getTime() + 455 Math.random(); 456 457 // Intercept TrustedForm by monitoring for cert URL population 458 var originalSetAttribute = Element.prototype.setAttribute; 459 Element.prototype.setAttribute = function(name, value) { 460 if (name === 'value' && this.name === 'xxTrustedFormCertUrl' && value) { 461 window.__trustedFormData.certUrl = value; 462 // Populate all xxTrustedFormCertUrl fields on page 463 var allFields = document.querySelectorAll('input[name="xxTrustedFormCertUrl"]'); 464 allFields.forEach(function(field) { 465 if (field.value !== value) { 466 field.value = value; 467 // Trigger change event 468 field.dispatchEvent(new Event('change', { bubbles: true })); 469 field.dispatchEvent(new Event('input', { bubbles: true })); 470 } 471 }); 472 } 473 return originalSetAttribute.call(this, name, value); 474 }; 475 476 var s = document.getElementsByTagName('script')[0]; 477 s.parentNode.insertBefore(tf, s); 478 479 window.__trustedFormData.loaded = true; 480 } 481 482 function hasInlineContactForm() { 483 var forms = document.querySelectorAll('home-services-contact-form'); 484 return forms.length > 0; 485 } 486 487 // Listen for popup triggers 488 document.addEventListener( 489 'click', 490 function (event) { 491 if (event.target.closest('[data-popup-trigger]')) { 492 loadTrustedForm(); 493 } 494 }, 495 { passive: true, capture: true } 496 ); 497 498 // Load TrustedForm as soon as the DOM is parsed rather than waiting for the 499 // full window "load" event (images/fonts), which can take several extra seconds. 500 if (hasInlineContactForm()) { 501 if (document.readyState !== 'loading') { 502 runOnceWhenIdle(loadTrustedForm, 500); 503 } else { 504 document.addEventListener( 505 'DOMContentLoaded', 506 function () { 507 runOnceWhenIdle(loadTrustedForm, 500); 508 }, 509 { once: true } 510 ); 511 } 512 } 513 514 // Also check periodically for dynamically added forms 515 var checkInterval = setInterval(function() { 516 if (hasInlineContactForm() && !window.__trustedFormLoaded) { 517 runOnceWhenIdle(loadTrustedForm, 500); 518 } 519 }, 1000); 520 521 // Stop checking after 30 seconds 522 setTimeout(function() { 523 clearInterval(checkInterval); 524 }, 30000); 525 })(); 526 </script>
526 527 <noscript> 528 <img src="https://api.trustedform.com/ns.gif" width="1" height="1" alt=""> 529 </noscript> 530 531
532<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/bundle.js?v=174630225895315430491790252764" defer="defer"></script>
532 533 534
535<script type="text/javascript"> 536 window.theme = window.theme || {}; 537 window.theme.script = {}; 538 window.theme.file_url = "//www.americanstandard-us.com/cdn/shop/files/?v=26505"; 539 window.theme.enviroment = '60985671727'; 540 window.theme.swatch_placeholder = "//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305"; 541 window.theme.customer = { 542 id: "", 543 first_name: "", 544 last_name: "", 545 email: "" 546 }; 547 window.theme.visualizer_iframe_url = "https://americanstandard.kbquote.com/visualizer"; 548 window.theme.product_label_amount_of_tags = "1"; 549 window.theme.store_domain = "https://www.americanstandard-us.com"; 550 window.theme.storefront_api_version = "2025-01"; 551 window.theme.storefront_api_key = "b3593e90acc9d4213f7f69735c9d8c77"; 552 window.theme.address_validation = { 553 endpoint: "https://apim.workato.com/environmentp792295905/fedex-api-sandbox-v1/address-validation", 554 api_token: "f49a297d2cac95f1e942e7fa62f9f701aa46907caa3f29d2fb3036cb9da158fc", 555 } 556 window.theme.market = { 557 iso_code: "US", 558 handle: "us", 559 mx_show_list_price: false 560 } 561 window.theme.add_to_cart_button = { 562 hidden_add_to_cart: false 563 } 564 565 566 567 568 569 570 571 572 573 574 575 window.theme.iframeLabels = { 576 youtube: "YouTube video", 577 vimeo: "Vimeo video", 578 productVideo: "Product video", 579 reviews: "Customer reviews", 580 viewer3d: "3D product viewer", 581 homeViewer: "In-home product viewer", 582 visualizer: "Bathroom visualizer", 583 form: "Contact form", 584 map: "Store locator map", 585 chat: "Live chat", 586 embedded: "Embedded content" 587 }; 588</script>
vendor: 1 bytes, line 588
588
589<script> 590 window.theme.visualizer_look_redirects = "Look-3-Studio-S | look-6;Look-16-Delancey | look-12;Look-6-Delancey | look-4;Look-4-Townsend | look-3;Look-10-Colony | look-6"; 591</script>
591 592 593 594 595 596 597 598 599 600
600<script type="application/ld+json"> 601 { 602 "@context": "https://schema.org", 603 "@type": "Organization", 604 "name": "American Standard", 605 "url": "https://www.americanstandard-us.com", 606 "logo": "https://www.americanstandard-us.com", 607 "description": "American Standard offers toilets, faucets, showers, bathtubs, bidet toilet attachments, and commercial bathroom & kitchen products. Shop replacement parts and get DIY with your next renovation project with American Standard.", 608 "foundingDate": "1872", 609 "sameAs": [ 610 "https://www.linkedin.com/company/american-standard", 611 "http://www.youtube.com/user/AmericanStandard01", 612 "https://twitter.com/AMStandard", 613 "http://instagram.com/american_standard", 614 "https://www.facebook.com/AmericanStandardPlumbing" 615 ], 616 "address": { 617 "@type": "PostalAddress", 618 "streetAddress": "30 Knightsbridge Road Piscataway, NJ", 619 "addressLocality": "Piscataway", 620 "addressRegion": "NJ", 621 "postalCode": "08854", 622 "addressCountry": "US" 623 }, 624 "contactPoint": [{ 625 "@type": "ContactPoint", 626 "telephone": "+ 1 855-815-0004", 627 "contactType": "customer service" 628 }] 629 } 630 </script>
630 631 632 633 634 635 636 637 638 639
639<script> 640 (function () { 641 function runOnceWhenIdle(task, timeout) { 642 if ('requestIdleCallback' in window) { 643 window.requestIdleCallback(task, { timeout: timeout || 2500 }); 644 } else { 645 setTimeout(task, 1); 646 } 647 } 648 649 function onFirstInteraction(task) { 650 var fired = false; 651 function run() { 652 if (fired) return; 653 fired = true; 654 task(); 655 } 656 657 ['pointerdown', 'touchstart', 'keydown', 'scroll'].forEach(function (eventName) { 658 window.addEventListener(eventName, run, { once: true, passive: true }); 659 }); 660 } 661 662 // Retail Connect may initialize functional cookies; the consent gate blocks rcc-visitor-id until C0002 is accepted 663 var STRICT_CONSENT_STATES = ['CA', 'CO', 'UT', 'VA', 'CT']; 664 665 function getConsentGeoState() { 666 // Shopify has no public Geoip API on storefront; rely on OneTrust's own IP geolocation instead 667 try { 668 var geoData = 669 (window.OneTrust && typeof window.OneTrust.getGeolocationData === 'function' && window.OneTrust.getGeolocationData()) || 670 (window.Optanon && typeof window.Optanon.getGeolocationData === 'function' && window.Optanon.getGeolocationData()); 671 if (geoData && geoData.state) return String(geoData.state).toUpperCase(); 672 } catch (e) {} 673 674 var shopifyGeo = window.Shopify && window.Shopify.Geoip; 675 var province = shopifyGeo && (shopifyGeo.province_code || shopifyGeo.provinceCode); 676 return province ? String(province).toUpperCase() : ''; 677 } 678 679 function isConfirmedNonStrictState() { 680 var state = getConsentGeoState(); 681 return !!state && STRICT_CONSENT_STATES.indexOf(state) === -1; 682 } 683 684 function hasVertexAIConsent() { 685 // window.OnetrustActiveGroups can reflect a pre-interaction default; the OptanonConsent cookie's 686 // interactionCount is the only reliable signal that the user actually made an explicit choice 687 var match = document.cookie.match(/(?:^|; )OptanonConsent=([^;]*)/); 688 if (!match) return false; 689 var cookie = decodeURIComponent(match[1]); 690 var interactionMatch = cookie.match(/interactionCount=(\d+)/); 691 var interactionCount = interactionMatch ? parseInt(interactionMatch[1], 10) : 0; 692 if (!interactionCount) return false; 693 var groupsMatch = cookie.match(/groups=([^&]*)/); 694 var groups = groupsMatch ? groupsMatch[1] : ''; 695 return /(^|,)C0002:1(,|$)/.test(groups); 696 } 697 698 function canFireVertexAINow() { 699 // Retail Connect is required for search; the shared gate blocks Google Analytics cookies separately. 700 return !window.__consentVendorGate || window.__consentVendorGate.isAllowed('vertex'); 701 } 702 703 function injectRetailConnectAutocompleteScript() { 704 if (window.__retailConnectAutocompleteLoaded) return; 705 window.__retailConnectAutocompleteLoaded = true; 706 707 // Use dynamic import instead of createElement for better performance 708 const script = document.createElement('script'); 709 script.src = 'https://assets.retailconnect.app/shopify/latest/document-autocomplete.js?1'; 710 script.defer = true; 711 script.async = true; 712 // Adicionar atributo fetchpriority para baixa prioridade 713 script.setAttribute('fetchpriority', 'low'); 714 document.head.appendChild(script); 715 } 716 717 function loadRetailConnectAutocomplete() { 718 if (window.__retailConnectAutocompleteLoaded) return; 719 720 if (canFireVertexAINow()) { 721 injectRetailConnectAutocompleteScript(); 722 return; 723 } 724 725 // State unknown (yet) or strict without consent: wait for OneTrust consent updates 726 if (!window.__retailConnectConsentListenerAdded) { 727 window.__retailConnectConsentListenerAdded = true; 728 window.addEventListener('OneTrustGroupsUpdated', function onConsentUpdate() { 729 if (!canFireVertexAINow()) return; 730 window.removeEventListener('OneTrustGroupsUpdated', onConsentUpdate); 731 injectRetailConnectAutocompleteScript(); 732 }); 733 } 734 735 // OneTrust geolocation data can resolve slightly after this first check; poll briefly for it 736 if (!window.__retailConnectGeoPollAdded) { 737 window.__retailConnectGeoPollAdded = true; 738 var pollAttempts = 0; 739 var pollId = setInterval(function () { 740 pollAttempts += 1; 741 if (canFireVertexAINow()) { 742 clearInterval(pollId); 743 injectRetailConnectAutocompleteScript(); 744 } else if (pollAttempts >= 20) { 745 clearInterval(pollId); 746 } 747 }, 500); 748 } 749 } 750 751 if (document.readyState === 'complete') { 752 // Use requestIdleCallback with a higher timeout to avoid blocking 753 if ('requestIdleCallback' in window) { 754 requestIdleCallback(loadRetailConnectAutocomplete, { timeout: 5000 }); 755 } else { 756 runOnceWhenIdle(loadRetailConnectAutocomplete, 4000); 757 } 758 } else { 759 window.addEventListener( 760 'load', 761 function () { 762 if ('requestIdleCallback' in window) { 763 requestIdleCallback(loadRetailConnectAutocomplete, { timeout: 5000 }); 764 } else { 765 runOnceWhenIdle(loadRetailConnectAutocomplete, 4000); 766 } 767 }, 768 { once: true } 769 ); 770 } 771 772 // Move interaction listener setup to after DOMContentLoaded 773 let interactionListener; 774 const setupInteractionLoad = () => { 775 interactionListener = () => { 776 loadRetailConnectAutocomplete(); 777 document.removeEventListener('pointerdown', interactionListener); 778 document.removeEventListener('touchstart', interactionListener); 779 }; 780 document.addEventListener('pointerdown', interactionListener, { once: true, passive: true }); 781 document.addEventListener('touchstart', interactionListener, { once: true, passive: true }); 782 }; 783 784 if (document.readyState === 'complete') { 785 setupInteractionLoad(); 786 } else { 787 document.addEventListener('DOMContentLoaded', setupInteractionLoad, { once: true }); 788 } 789
790 // Fallback: load after 8 seconds if nothing triggered it earlier 791 setTimeout(loadRetailConnectAutocomplete, 8000); 792 })(); 793 </script>
793 794 795 796 <link rel="preload" href="//www.americanstandard-us.com/cdn/shop/t/165/assets/nimstrata.css?v=27791058210641778371769692254" as="style"> 797 <link 798 rel="stylesheet" 799 href="//www.americanstandard-us.com/cdn/shop/t/165/assets/nimstrata.css?v=27791058210641778371769692254" 800 media="print" 801 onload="this.media='all'" 802 > 803 <noscript><link href="//www.americanstandard-us.com/cdn/shop/t/165/assets/nimstrata.css?v=27791058210641778371769692254" rel="stylesheet" type="text/css" media="all" /></noscript> 804 805
805<script> 806 (function () { 807 var optanonConsentCookie = document.cookie.match(/(?:^|; )OptanonConsent=([^;]*)/); 808 var optanonConsent = ''; 809 try { 810 optanonConsent = optanonConsentCookie ? decodeURIComponent(optanonConsentCookie[1]) : ''; 811 } catch (error) {} 812 var optanonGroupsMatch = optanonConsent.match(/(?:^|&)groups=([^&]*)/); 813 var swymConsentGranted = /interactionCount=[1-9]\d*/.test(optanonConsent) && optanonGroupsMatch && /(^|,)C0003:1(,|$)/.test(optanonGroupsMatch[1]); 814 815 window._SwymPreventAutoLoad = !swymConsentGranted; 816 817 var vendorRules = { 818 vertex: { 819 consentGroup: null, 820 visitorConsentGroup: 'C0002', 821 cookieNames: [], 822 urlPattern: /retailconnect\.app/i 823 }, 824 bazaarvoice: { 825 // Reviews widget must render regardless of consent; only its tracking cookies are gated. 826 consentGroup: null, 827 cookieConsentGroup: 'C0002', 828 cookieNames: ['BVBRANDID', 'BVBRANDSID'], 829 urlPattern: /bazaarvoice\.com|bazaarvoice\.net|apps\.bazaarvoice\.com/i 830 }, 831 swym: { 832 consentGroup: 'C0003', 833 cookieNames: [], 834 urlPattern: /swym|swymrelay\.com|azureedge\.net\/code\/swym/i 835 }, 836 googleAnalytics: { 837 consentGroup: 'C0002', 838 cookieNames: [], 839 urlPattern: /google-analytics\.com|googletagmanager\.com|googletagservices\.com/i 840 } 841 }; 842 843 function getOptanonConsent() { 844 var match = document.cookie.match(/(?:^|; )OptanonConsent=([^;]*)/); 845 if (!match) return null; 846 847 try { 848 return decodeURIComponent(match[1]); 849 } catch (error) { 850 return match[1]; 851 } 852 } 853 854 function hasExplicitConsent(group) { 855 if (!group) return true; 856 857 var consent = getOptanonConsent(); 858 if (!consent || !/interactionCount=\d+/.test(consent)) return false; 859 860 var interaction = consent.match(/interactionCount=(\d+)/); 861 if (!interaction || parseInt(interaction[1], 10) < 1) return false; 862 863 var groups = consent.match(/(?:^|&)groups=([^&]*)/); 864 return !!groups && new RegExp('(^|,)' + group + ':1(,|$)').test(groups[1]); 865 } 866 867 function removeCookie(name) { 868 var domains = [location.hostname, '.' + location.hostname]; 869 var paths = ['/', location.pathname]; 870 871 domains.forEach(function (domain) { 872 paths.forEach(function (path) { 873 document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=' + path + '; domain=' + domain; 874 }); 875 }); 876 document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/'; 877 } 878 879 function removeVendorCookies(rule) { 880 rule.cookieNames.forEach(removeCookie); 881 882 Array.prototype.slice.call(document.cookie.split(';
882')).forEach(function (entry) { 883 var name = entry.split('=')[0].trim(); 884 if (rule === vendorRules.swym && /^swym-/i.test(name)) removeCookie(name); 885 }); 886 } 887 888 function hasAnalyticsConsent() { 889 return hasExplicitConsent('C0002'); 890 } 891 892 function isVertexVisitorAllowed() { 893 return hasExplicitConsent(vendorRules.vertex.visitorConsentGroup); 894 } 895 896 function isGoogleAnalyticsCookie(name) { 897 return /^_ga(?:$|_|[0-9])/i.test(name) || /^_gid$/i.test(name) || /^_gat(?:_|$)/i.test(name) || /^_gac_/i.test(name); 898 } 899 900 function removeGoogleAnalyticsCookies() { 901 Array.prototype.slice.call(document.cookie.split(';')).forEach(function (entry) { 902 var name = entry.split('=')[0].trim(); 903 if (isGoogleAnalyticsCookie(name)) removeCookie(name); 904 }); 905 } 906 907 function blockedCookieName(name) { 908 return /^rcc-visitor-id$/i.test(name) || /^(BVBRANDID|BVBRANDSID)$/i.test(name) || /^swym-/i.test(name) || isGoogleAnalyticsCookie(name); 909 } 910 911 var cookieDescriptor = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie'); 912 if (cookieDescriptor && cookieDescriptor.set) { 913 Object.defineProperty(document, 'cookie', { 914 configurable: true, 915 get: cookieDescriptor.get.bind(document), 916 set: function (value) { 917 var name = String(value).split('=')[0].trim(); 918 var gate = window.__consentVendorGate; 919 var vendorAllowed = /^rcc-visitor-id$/i.test(name) ? isVertexVisitorAllowed() : 920 /^(BVBRANDID|BVBRANDSID)$/i.test(name) ? gate && gate.isCookieAllowed('bazaarvoice') : 921 /^swym-/i.test(name) ? gate && gate.isAllowed('swym') : 922 isGoogleAnalyticsCookie(name) ? hasAnalyticsConsent() : true; 923 var deletingCookie = /(?:expires=Thu, 01 Jan 1970|Max-Age=0)/i.test(String(value)); 924 if (blockedCookieName(name) && !vendorAllowed && !deletingCookie) return; 925 cookieDescriptor.set.call(document, value); 926 } 927 }); 928 } 929 930 function vendorForUrl(url) { 931 return Object.keys(vendorRules).map(function (key) { 932 return vendorRules[key]; 933 }).find(function (rule) { 934 return rule.urlPattern.test(String(url || '')); 935 }); 936 } 937 938 function scriptIsAllowed(script) { 939 var rule = vendorForUrl(script && (script.src || script.getAttribute('src'))); 940 if (!rule) return true; 941 return hasExplicitConsent(rule.consentGroup); 942 } 943 944 function blockScript(script) { 945 if (!script || script.__consentBlocked) return; 946 script.__consentBlocked = true; 947 script.type = 'text/plain'; 948 script.setAttribute('data-consent-blocked', 'true'); 949 } 950 951 ['bazaarvoice', 'swym'].forEach(function (key) { 952 var rule = vendorRules[key]; 953 if (!hasExplicitConsent(rule.cookieConsentGroup || rule.consentGroup)) removeVendorCookies(rule); 954 }); 955 if (!isVertexVisitorAllowed()) removeCookie('rcc-visitor-id'); 956 if (!hasAnalyticsConsent()) removeGoogleAnalyticsCookies(); 957 958 var originalAppendChild = Node.prototype.appendChild; 959 Node.prototype.appendChild = function (node) { 960 if (node && node.tagName === 'SCRIPT' && !scriptIsAllowed(node)) { 961 blockScript(node); 962 } 963 return originalAppendChild.call(this, node); 964 }; 965 966 var originalInsertBefore = Node.prototype.insertBefore; 967 Node.prototype.insertBefore = function (node, referenceNode) { 968 if (node && node.tagName === 'SCRIPT' && !scriptIsAllowed(node)) { 969 blockScript(node); 970 } 971 return originalInsertBefore.call(this, node, referenceNode); 972 }; 973 974 if (window.MutationObserver) { 975 new MutationObserver(function (mutations) { 976 mutations.forEach(function (mutation) { 977 Array.prototype.slice.call(mutation.addedNodes).forEach(function (node) { 978 if (node.tagName === 'SCRIPT' && !scriptIsAllowed(node)) blockScript(node); 979 if (node.querySelectorAll) { 980 Array.prototype.slice.call(node.querySelectorAll('script')).forEach(function (script) { 981 if (!scriptIsAllowed(script)) blockScript(script); 982 }); 983 } 984 }); 985 }); 986 }).observe(document.documentElement, { childList: true, subtree: true }); 987 } 988 989 function updateVendorState() {
990 Object.keys(vendorRules).forEach(function (key) { 991 var rule = vendorRules[key]; 992 var cookieAllowed = key === 'vertex' ? isVertexVisitorAllowed() : hasExplicitConsent(rule.cookieConsentGroup || rule.consentGroup); 993 if (!cookieAllowed) removeVendorCookies(rule); 994 }); 995 if (!isVertexVisitorAllowed()) removeCookie('rcc-visitor-id'); 996 if (!hasAnalyticsConsent()) removeGoogleAnalyticsCookies(); 997 998 if (hasExplicitConsent(vendorRules.swym.consentGroup)) { 999 window._SwymPreventAutoLoad = false; 1000 if (typeof window.swymJSShopifyLoad === 'function' && !window._swat) { 1001 window.swymJSShopifyLoad(); 1002 } 1003 } 1004 } 1005 1006 window.__consentVendorGate = { 1007 hasExplicitConsent: hasExplicitConsent, 1008 isAllowed: function (vendor) { 1009 return !!vendorRules[vendor] && hasExplicitConsent(vendorRules[vendor].consentGroup); 1010 }, 1011 isCookieAllowed: function (vendor) { 1012 var rule = vendorRules[vendor]; 1013 return !!rule && hasExplicitConsent(rule.cookieConsentGroup || rule.consentGroup); 1014 }, 1015 update: updateVendorState 1016 }; 1017 1018 window.addEventListener('OneTrustGroupsUpdated', updateVendorState); 1019 })(); 1020</script>
1020 1021 1022 1023
1023<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
1023<meta name="google-site-verification" content="ItjOc3k6rE3RVpUyVRn3QUr6_7RxRUvFoPMnmqHaVGo"> 1024<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/60985671727/digital_wallets/dialog"> 1025<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://www.americanstandard-us.com/"> 1026<link rel="alternate" hreflang="en" href="https://www.americanstandard-us.com/"> 1027<link rel="alternate" hreflang="en-CA" href="https://www.americanstandard.ca/"> 1028<link rel="alternate" hreflang="fr-CA" href="https://fr.americanstandard.ca/"> 1029<link rel="alternate" hreflang="es-MX" href="https://www.americanstandard.mx/">
1030<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=20676655"></script>
1030 1031<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
1032<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=20676655&shop_id=60985671727" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1032
1032
1033<script id="shopify-features" type="application/json">{"accessToken":"a55c352d9606c1cc2774e79d106bc6ae","betas":["rich-media-storefront-analytics"],"domain":"www.americanstandard-us.com","predictiveSearch":true,"shopId":60985671727,"locale":"en"}</script>
vendor: 1 bytes, line 1033
1033
1034<script>var Shopify = Shopify || {}; 1035Shopify.shop = "13d074-bf.myshopify.com"; 1036Shopify.locale = "en"; 1037Shopify.currency = {"active":"USD","rate":"1.0"}; 1038Shopify.country = "US"; 1039Shopify.theme = {"name":"American Standard - Production ","id":149082800175,"schema_name":"Shopify theme framework","schema_version":"11.0.0","theme_store_id":null,"role":"main"}; 1040Shopify.theme.handle = "null"; 1041Shopify.theme.style = {"id":null,"handle":null}; 1042Shopify.cdnHost = "www.americanstandard-us.com/cdn"; 1043Shopify.routes = Shopify.routes || {}; 1044Shopify.routes.root = "/"; 1045Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 1046Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 1047Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 1048Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1048
1048
1049<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1049
1049
1050<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 1050
1050
1051<script> 1052 window.ShopifyPay = window.ShopifyPay || {}; 1053 window.ShopifyPay.apiHost = "shop.app\/pay"; 1054 window.ShopifyPay.redirectState = null; 1055</script>
vendor: 1 bytes, line 1055
1055
1056<script> 1057 window.Shopify = window.Shopify || {}; 1058 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 1059 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 1060 window.Shopify.SignInWithShop.eligible = true; 1061</script>
vendor: 1 bytes, line 1061
1061
1062<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 1062
1062
1063<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 1063
1063
1064<script type="module"> 1065 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 1066 1067 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 1068 1069</script>
vendor: 1 bytes, line 1069
1069
1070<script> 1071 window.Shopify = window.Shopify || {}; 1072 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 1073 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 1074</script>
vendor: 1 bytes, line 1074
1074
1075<script>(function() { 1076 var isLoaded = false; 1077 function asyncLoad() { 1078 if (isLoaded) return; 1079 isLoaded = true; 1080 var urls = ["https:\/\/dr4qe3ddw9y32.cloudfront.net\/awin-shopify-integration-code.js?aid=33733\u0026v=shopifyApp_5.4.1\u0026ts=1789653333000\u0026shop=13d074-bf.myshopify.com"]; 1081 for (var i = 0; i < urls.length; i++) { 1082 var s = document.createElement('script'); 1083 s.type = 'text/javascript'; 1084 s.async = true; 1085 s.src = urls[i]; 1086 var x = document.getElementsByTagName('script')[0]; 1087 x.parentNode.insertBefore(s, x); 1088 } 1089 }; 1090 if(window.attachEvent) { 1091 window.attachEvent('onload', asyncLoad); 1092 } else { 1093 window.addEventListener('load', asyncLoad, false); 1094 } 1095})();</script>
vendor: 1 bytes, line 1095
1095
1096<script id="__st">var __st={"a":60985671727,"offset":-14400,"reqid":"b2601ade-dc57-41a5-8b54-a42b5aa2fadb-1790908240","pageurl":"www.americanstandard-us.com\/","u":"3204bd6fff7a","p":"home"};</script>
vendor: 1 bytes, line 1096
1096
1097<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1097
1097
1098<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 1098
1098
1099<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.americanstandard-us.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1099
1099
1100<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//www.americanstandard-us.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
1100<script crossorigin="anonymous" defer="defer" src="//www.americanstandard-us.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 1100
1100
1101<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 1101
1101
1102<script> 1103 window.Shopify = window.Shopify || {}; 1104 window.Shopify.MCP = window.Shopify.MCP || {}; 1105 window.Shopify.MCP.enabled = true; 1106 window.Shopify.MCP.shop = "13d074-bf.myshopify.com"; 1107 window.Shopify.MCP.mcpEndpoint = "https:\/\/www.americanstandard-us.com\/api\/mcp"; 1108 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 1109</script>
vendor: 1 bytes, line 1109
1109
1110<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/www.americanstandard-us.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 1111</script>
vendor: 1 bytes, line 1111
1111
1112<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://www.americanstandard-us.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 1113</script>
vendor: 1 bytes, line 1113
1113
1114<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 1115 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 1116</script>
vendor: 1 bytes, line 1116
1116
1117<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 1118</script>
1118 1119<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.americanstandard-us.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 1120<style id="shopify-accelerated-checkout-cart"> 1121 #shopify-buyer-consent { 1122 margin-top: 1em; 1123 display: inline-block; 1124 width: 100%; 1125} 1126 1127#shopify-buyer-consent.hidden { 1128 display: none; 1129} 1130 1131#shopify-subscription-policy-button { 1132 background: none; 1133 border: none; 1134 padding: 0; 1135 text-decoration: underline; 1136 font-size: inherit; 1137 cursor: pointer; 1138} 1139 1140#shopify-subscription-policy-button::before { 1141 box-shadow: none; 1142} 1143 1144 </style> 1145
1146<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1146 1147 1148 1149 1150 1151 1152 1153 1154 1155
1155<script> 1156 (function () { 1157 var api = window.__deferAppCss; 1158 if (!api) return; 1159 1160 document.querySelectorAll('link[rel~="stylesheet"], link[rel="stylesheet"]').forEach(function (link) { 1161 if (api.shouldDefer(link.href)) api.neutralizeLink(link); 1162 }); 1163 1164 api.armFlush(); 1165 })(); 1166 </script>
1166 1167 1168 1169 1170 1171 1172
1172<script> 1173 window.Shopify.loadFeatures( 1174 [{ 1175 name: 'consent-tracking-api', 1176 version: '0.1' 1177 }], 1178 function(error) { 1179 1180 if (error) { 1181 console.error(error); 1182 return; 1183 } 1184 1185 var lastConsentPayload = null; 1186 1187 function getOptanonConsent() { 1188 var match = document.cookie.match(/(?:^|; )OptanonConsent=([^;]*)/); 1189 if (!match) return ''; 1190 1191 try { 1192 return decodeURIComponent(match[1]); 1193 } catch (error) { 1194 return match[1]; 1195 } 1196 } 1197 1198 function hasExplicitConsent(consent, group) { 1199 var interaction = consent.match(/interactionCount=(\d+)/); 1200 if (!interaction || parseInt(interaction[1], 10) < 1) return false; 1201 1202 var groups = consent.match(/(?:^|&)groups=([^&]*)/); 1203 return !!groups && new RegExp('(^|,)' + group + ':1(,|$)').test(groups[1]); 1204 } 1205 1206 function getConsentPayload() { 1207 var consent = getOptanonConsent(); 1208 var analyticsAccepted = hasExplicitConsent(consent, 'C0002'); 1209 var preferencesAccepted = hasExplicitConsent(consent, 'C0003'); 1210 var marketingAccepted = hasExplicitConsent(consent, 'C0004'); 1211 1212 return { 1213 analytics: analyticsAccepted, 1214 marketing: marketingAccepted, 1215 preferences: preferencesAccepted, 1216 sale_of_data: marketingAccepted 1217 }; 1218 } 1219 1220 function updateClarityConsent(payload) { 1221 if (!window.clarity) return; 1222 1223 window.clarity('consentv2', { 1224 ad_Storage: payload.marketing ? 'granted' : 'denied', 1225 analytics_Storage: payload.analytics ? 'granted' : 'denied' 1226 }); 1227 } 1228 1229 function updateConsent() { 1230 var payload = getConsentPayload(); 1231 var serializedPayload = JSON.stringify(payload); 1232 if (serializedPayload === lastConsentPayload) return; 1233 1234 lastConsentPayload = serializedPayload; 1235 window.Shopify.customerPrivacy.setTrackingConsent(payload); 1236 updateClarityConsent(payload); 1237 } 1238 1239 window.addEventListener('OneTrustGroupsUpdated', updateConsent); 1240 updateConsent(); 1241 1242 } 1243 ); 1244 </script>
1244 1245 1246 1247 1248 <style> 1249 :root { 1250 --swatch--background-no-image: url(//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305); 1251 } 1252 </style> 1253 <!-- BEGIN app block: shopify://apps/retail-cloud-connect/blocks/app-pixel-market/6f33a6d4-7ace-41be-aeee-5c9b52a2042a -->
1253<script type='text/javascript'> 1254 window.Nimstrata = window.Nimstrata || {}; 1255 window.Nimstrata.customerPrivacyPending = true; 1256 let cartVisitorId = null ?? ''; 1257 1258 const removeCookie = (name) => { 1259 document.cookie = `${name}=; path=/; max-age=0`; 1260 }; 1261 1262 const updateCartVisitorId = (visitorId) => { 1263 if (visitorId === cartVisitorId) return; 1264 1265 cartVisitorId = visitorId; 1266 const attributes = new FormData(); 1267 attributes.set('attributes[rcc-visitor-id]', visitorId); 1268 fetch(window.Shopify.routes.root + 'cart/update.js', { method: 'POST', body: attributes }); 1269 }; 1270 1271 const syncCookies = () => { 1272 const privacy = window.Shopify?.customerPrivacy; 1273 if (window.Nimstrata.customerPrivacyPending) return; 1274 const analyticsAllowed = !privacy || privacy.analyticsProcessingAllowed?.() === true; 1275 const visitorIdAllowed = analyticsAllowed || privacy?.preferencesProcessingAllowed?.() === true; 1276 1277 if (!analyticsAllowed) { 1278 for (const cookie of ['rcc-market-id', 'rcc-identity', 'rcc-track-search', 'rcc-track-collection', 'rcc-place-id']) { 1279 removeCookie(cookie); 1280 } 1281 } else { 1282 document.cookie = "rcc-market-id=17818288175; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT;"; 1283 document.cookie = "rcc-identity=13d074-bf; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT;"; 1284 } 1285 1286 if (!visitorIdAllowed) { 1287 removeCookie('rcc-visitor-id'); 1288 updateCartVisitorId(''); 1289 } else { 1290 const visitorId = document.cookie.match(/(?:^|; )rcc-visitor-id=([^;]*)/)?.[1] ?? window.Nimstrata.pendingVisitorId ?? crypto.randomUUID(); 1291 document.cookie = `rcc-visitor-id=${visitorId}; path=/; max-age=31536000`; 1292 updateCartVisitorId(visitorId); 1293 } 1294 delete window.Nimstrata.pendingVisitorId; 1295 1296 if (analyticsAllowed) { 1297 1298 document.cookie = "rcc-track-search=false; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC"; 1299 1300 1301 document.cookie = "rcc-track-collection=false; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC"; 1302 1303 } 1304 }; 1305 1306 const finishPrivacyInitialization = () => { 1307 clearTimeout(privacyTimeout); 1308 window.Nimstrata.customerPrivacyPending = false; 1309 syncCookies(); 1310 }; 1311 1312 // ponytail: allow a missing API after 5 seconds; a late callback still applies its permissions. 1313 const privacyTimeout = setTimeout(finishPrivacyInitialization, 5000); 1314 1315 const loadPrivacyApi = () => { 1316 if (window.Shopify?.customerPrivacy) { 1317 finishPrivacyInitialization(); 1318 } else if (window.Shopify?.loadFeatures) { 1319 // The readiness callback also runs when stored consent has not changed. 1320 window.Shopify.loadFeatures([{ name: 'consent-tracking-api', version: '0.1' }], finishPrivacyInitialization); 1321 } else if (document.readyState !== 'complete') { 1322 window.addEventListener('load', loadPrivacyApi, { once: true }); 1323 } else { 1324 finishPrivacyInitialization(); 1325 } 1326 }; 1327 1328 document.addEventListener('visitorConsentCollected', () => { 1329 if (window.Shopify?.customerPrivacy) finishPrivacyInitialization(); 1330 else syncCookies(); 1331 }); 1332 loadPrivacyApi(); 1333</script>
1333 1334 1335 1336 1337 1338 1339 1340<!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 --> 1341 1342 1343
1344<script type="module" dynamic> 1345 const configUrl = "/a/elevar/static/configs/3e1a74c7f4b540a9c4b422e5edf6a937e677f318/config.js"; 1346 const config = (await import(configUrl)).default; 1347 const scriptUrl = config.script_src_app_theme_embed; 1348 1349 if (scriptUrl) { 1350 const { handler } = await import(scriptUrl); 1351 1352 await handler( 1353 config, 1354 { 1355 cartData: { 1356 marketId: "17818288175", 1357 localeCountryCode:"US", 1358 attributes:{}, 1359 cartTotal: "0.0", 1360 currencyCode:"USD", 1361 items: [] 1362} 1363, 1364 user: { 1365 cartTotal: "0.0", 1366 currencyCode:"USD", 1367 customer: {}, 1368} 1369, 1370 isOnCartPage:false, 1371 collectionView:null, 1372 searchResultsView:null, 1373 productView:null, 1374 } 1375 ); 1376 } 1377</script>
1377 1378 1379 1380<!-- END app block --><!-- BEGIN app block: shopify://apps/gempages-builder/blocks/embed-gp-script-head/20b379d4-1b20-474c-a6ca-665c331919f3 --> 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395<!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/brandAgents_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea --> 1396 1397 1398
1399<script type="text/javascript"> 1400 (function(d){ 1401 var s = d.createElement('script'); 1402 s.async = true; 1403 s.src = "https://adsagentclientafd-b7hqhjdrf3fpeqh2.b01.azurefd.net/frontendInjection.js"; 1404 var firstScript = d.getElementsByTagName('script')[0]; 1405 firstScript.parentNode.insertBefore(s, firstScript); 1406 })(document); 1407</script>
1407 1408 1409 1410 1411<!-- END app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext -->
1411<script type="text/javascript"> 1412 1413 if (typeof window.formbuilder_customer != "object") { 1414 window.formbuilder_customer = {} 1415 } 1416 1417 1418 1419 window.hulkFormBuilder = { 1420 form_data: {"form_-DG_XtIPyyrBXsAs47sARg":{"uuid":"-DG_XtIPyyrBXsAs47sARg","form_name":"Mexico Product Warranty","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Enviar","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003e\u003cstrong data-end=\"117\" data-start=\"83\"\u003e\u0026iexcl;Formulario enviado con \u0026eacute;xito!\u003c\/strong\u003e â \u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mexico Product Warranty","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","advance_css":".form_generater_form_div .tab {\n display: block !important;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n})();\n \nBlurValidator.register('required', {\npriority: 1,\nmatch: (field) =\u003e field.getAttribute('aria-required') === 'true',\ntest: (value) =\u003e value.trim() !== '',\nmessage: 'Este campo es obligatorio.'\n});\n\nBlurValidator.register('email', {\npriority: 2,\nmatch: (field) =\u003e field.type === 'email',\ntest: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\nmessage: 'Por favor ingresa un correo electrónico válido.'\n});\n\nBlurValidator.register('phone', {\npriority: 2,\nmatch: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\ntest: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\nmessage: 'Por favor ingresa un número de teléfono válido.'\n});\n\nfunction setFormAttributes() {\n const attributes = [\n { selector: 'input[name=\"Prénom\"]', attributes: { maxlength: '15' } },\n { selector: '#last_name', attributes: { maxlength: '80' } },\n { selector: '#form_input_3', attributes: { maxlength: '80' } },\n { selector: '#form_input_4', attributes: { maxlength: '100' } },\n { selector: 'input[name=\"Address line 1\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"Address line 2\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"City\"]', attributes: { maxlength: '40' } },\n { selector: 'input[name=\"Province\"]', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Zip code\"]', attributes: { maxlength: '20' } },\n { selector: 'input[name=\"SKU ou nom de produit\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"Product Name\"]', attributes: { maxlength: '4000' } },\n { selector: '#form_input_11', attributes: { min: '0', max: '10' } },\n { selector: 'input[name=\"Place of Purchase\"]', attributes: { maxlength: '50' } },\n { selector: 'input[name=\"Installed By\"]', attributes: { maxlength: '50' } },\n { selector: '#product_serial_number', attributes: { autocomplete: 'one-time-code' } }\n ];
1420\n \n attributes.forEach(({ selector, attributes }) =\u003e {\n const element = document.querySelector(selector);\n if (element) {\n Object.entries(attributes).forEach(([key, value]) =\u003e {\n element.setAttribute(key, value);\n });\n } else {\n console.log(`Selector not found: ${selector}`);\n }\n });\n }\n \n function replaceCountryField() {\n const countryField = document.querySelector('#country');\n countryField.value = \"México\";\n countryField.readOnly = true;\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('#province');\n if (provinceField) {\n const states = [\n { name: \"Aguascalientes\", code: \"AG\" },\n { name: \"Baja California\", code: \"BC\" },\n { name: \"Baja California Sur\", code: \"BS\" },\n { name: \"Campeche\", code: \"CM\" },\n { name: \"Chiapas\", code: \"CS\" },\n { name: \"Chihuahua\", code: \"CH\" },\n { name: \"Ciudad de México\", co
1420de: \"DF\" },\n { name: \"Coahuila\", code: \"CO\" },\n { name: \"Colima\", code: \"CL\" },\n { name: \"Durango\", code: \"DG\" },\n { name: \"Guanajuato\", code: \"GT\" },\n { name: \"Guerrero\", code: \"GR\" },\n { name: \"Hidalgo\", code: \"HG\" },\n { name: \"Jalisco\", code: \"JA\" },\n { name: \"Estado de México\", code: \"EM\" },\n { name: \"Michoacán\", code: \"MI\" },\n { name: \"Morelos\", code: \"MO\" },\n { name: \"Nayarit\", code: \"NA\" },\n { name: \"Nuevo León\", code: \"NL\" },\n { name: \"Oaxaca\", code: \"OA\" },\n { name: \"Puebla\", code: \"PU\" },\n { name: \"Querétaro\", code: \"QE\" },\n { name: \"Quintana Roo\", code: \"QR\" },\n { name: \"San Luis PotosÃ\", code: \"SL\" },\n { name: \"Sinaloa\", code: \"SI\" },\n { name: \"Sonora\", code: \"SO\" },\n { name: \"Tabasco\", code: \"TB\" },\n { name: \"Tamaulipas\", code: \"TM\" },\n { name: \"Tlaxcala\", code: \"TL\" },\n { name: \"Veracruz\", code: \"VE\" },\n { name: \"Yucatán\", code: \"YU\" },\n { name: \"Zacatecas\", code: \"ZA\" }\n ];\n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n \n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Estado\");\n \n provinceField.replaceWith(newProvinceField);\n }\n }\n \n function disableLabelTabbing() {\n document.querySelectorAll('#formGeneratorForm label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function phoneNumberLimit () {\n const phoneNumberInput = document.querySelector('#formGeneratorForm input[name=\"Phone Number\"]');\n \n if (!phoneNumberInput) {\n console.warn(\"Prénom number input not found.\");\n return;\n }\n \n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 15;\n e.target.value = e.target.value.slice(0, maxLength);\n });\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'MX'\n };\n \n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n \n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput, countryCode } = getFormAddressFields();\n \n function handleAddressValidation() {\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryCode?.value || 'MX'\n };\n \n if (\n addressInfo.streetLines[0] \u0026\u0026\n addressInfo.city \u0026\u0026\n addressInfo.postalCode \u0026\u0026\n addressInfo.stateOrProvinceCode\n ) {\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n }\n \n function updateFormStatus() {\n addressFormStatus.val
1420idated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n \n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n countryInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n }\n \n function listenToAddressValidationEvents() {\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return {\n \"disableForm\": handleDisableForm,\n \"enableForm\": handleEnableForm,\n \"addressValidated\": handleAddressValidated\n }\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = true;\n });\n }\n \n function handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = false;\n });\n }\n \n function handleAddressValidated(data) {\n console.log(\"handleAddressValidated\", data);\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n \n addressInput.value = data.streetLinesToken[0];\n addressInput2.value = data.streetLinesToken[1] || '';\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'MX';\n \n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n const addressFormStatus = {\n validated: false\n }\n \n const skuAutoComplete = {\n validated: false\n }\n \n function getFormAddressFields() {\n return {\n addressInput: document.querySelector('#addressline1'),\n addressInput2: document.querySelector('#addressline2'),\n cityInput: document.querySelector('#city'),\n provinceInput: document.querySelector('#province'),\n zipInput: document.querySelector('#zipcode'),\n countryInput: document.querySelector('#country'),\n countryCode: document.querySelector('[name=\"Country Code\"]')\n }\n }\n \n function addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n buttonSubmit.addEventListener('click', (e) =\u003e {\n const { countryInput } = getFormAddressFields();\n console.log(\"submit button clicked:\", countryInput.value);\n const validations = [\n {\n validated: skuAutoComplete.validated,\n onError: handleProductSkuErrorMessage,\n },\n {\n validated: addressFormStatus.validated,\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getFormAddressFields();\n \n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n }\n ];\n \n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n }\n \n function handleProductSkuErrorMessage() {\n removeProductSkuErrorMessage();\n \n const productField = document.querySelector('#product_sku');\n productField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productField.focus();\n productField.classList.add('error');\n const errorMessage = document.createElement('div');\n errorMessage.classList.add('error-message');\n errorMessage.textContent = 'Por favor, seleccione un producto de la lista.';\n errorMessage.style.color = 'red';\n productField.insertAdjacentElement('afterend', errorMessage);\n }\n \n function removeProductSkuErrorMessage() {\n const productField = document.querySelector('#product_sku');\n const errorMessage = productField.parentElement.querySelector('.error-message');\n if (errorMessage) {\n errorMessage.remove();\n }\n productField.classList.remove('error');\n }\n \n function initSkuDropdown() {\n const productField = document.querySelector('#product_sku')\n productField.setAttribute('autocomplete', 'one-time-code')\n const productnameField = document.querySelector('input[name=\"Product Name\"]')\n const suggestionClass = 'autocomplete-suggestions';\n \n function createSuggestionList(suggestions) {\n const list = document.createElement('ul');\n list.classList.add(suggestionClass);\n \n suggestions.forEach(({ displayText, sku, title }) =\u003e {\n const item = document.createElement('li');\n item.textContent = displayText;\n item.addEventListener('click', () =\u003e {\n productField.value = sku;\n productnameField.value = title;\n skuAutoComplete.validated = true;\n removeSuggestionList();\n removeProductSkuErrorMessage();\n });\n list.appendChild(item);\n });\n \n return list;\n }\n \n function removeSuggestionList() {\n const existing = document.querySelector(`.${suggestionClass}`);\n if (existing) existing.remove();\n }\n \n function showSuggestions(suggestions) {\n removeSuggestionList();\n const list = createSuggestionList(suggestions);\n productField.insertAdjacentElement('afterend', list);\n }\n \n productField.addEventListener('input', async (e) =\u003e {\n \n const products = await getProducts(e.target.value);\n showSuggestions(products);\n skuAutoComplete.validated = false;\n removeProductSkuErrorMessage();\n });\n \n productField.addEventListener('focus', async () =\u003e {\n const products = await getProducts(productField.value || '');\n showSuggestions(products);\n });\n \n document.addEventListener('click', (e) =\u003e {\n const suggestionBox = document.querySelector(`.${suggestionClass}`);\n if (\n suggestionBox \u0026\u0026\n !suggestionBox.contains(e.target) \u0026\u0026\n e.target !== productField\n ) {\n removeSuggestionList();\n }\n });\n \n window.addEventListener('blur', () =\u003e {\n removeSuggestionList();\n });\n }\n \n async function getProducts(productQuery) {\n const query = getSearchProductsQuery(productQuery);\n const response = await fetch('https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n },\n body: JSON.stringify({ query })\n });\n \n if (!response.ok) {\n console.error('Error fetching products:', response.statusText);\n return [];\n }\n \n const data = await response.json();\n return data.data.products.edges.flatMap(({ node: product }) =\u003e\n product.variants.edges.map(({ node: variant }) =\u003e {\n const optionsText = variant.selectedOptions\n .map(({ value }) =\u003e value)\n .join(' ');\n \n return {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${variant.sku}`,\n sku: variant.sku,\n title: product.title,\n };\n })\n );\n }\n \n function getSearchProductsQuery(productQuery) { \n return `\n query getProducts @inContext(country: MX, language: ES) {\n products(first: 3
14200, query: \"${productQuery}\") {\n edges {\n node {\n title\n variants(first: 10) {\n edges {\n node {\n sku\n title\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n }\n }\n `\n }\n \n function addDropzoneConfigs() {\n const dz = Dropzone.forElement(\".dropzone\");\n if(!dz) {\n console.error(\"Dropzone not found\");\n return;\n }\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n \n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n }\n \n function addPurchaseDateListener() {\n const $purchaseInput = $('#purchase_date');\n const $installationInput = $('#installation_date');\n \n $installationInput.prop('disabled', true);\n \n $purchaseInput.on('dp.change', function (event) {\n const purchaseDate = event.date;\n $installationInput?.data('DateTimePicker')?.minDate(purchaseDate);\n $installationInput.prop('disabled', false);\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = \"EN\";\n }\n \n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n document.addEventListener('DOMContentLoaded', function () {\n replaceCountryField();\n replaceProvinceField(); \n setFormAttributes();\n disableLabelTabbing();\n phoneNumberLimit();\n validationAddress();\n addSubmitButtonCustomAction();\n listenToAddressValidationEvents();\n initSkuDropdown();\n addDropzoneConfigs();\n addPurchaseDateListener();\n getParentHref();\n BlurValidator.init();\n });","flow_trigger_integration":"yes","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Nombre (s)","halfwidth":"yes","required":"yes","page_number":1,"customID":"first_name"},{"Conditions":{},"type":"text","position":1,"label":"Apellido","halfwidth":"yes","required":"yes","page_number":1,"customID":"last_name"},{"Conditions":{},"type":"phone","position":2,"label":"Teléfono","default_country_code":"Mexico +52","required":"yes","page_number":1},{"type":"email","position":3,"label":"Correo Electrónico","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Empresa","page_number":1},{"Conditions":{},"type":"text","position":5,"label":"Dirección 1","customID":"addressline1","page_number":1,"required":"yes"},{"Conditions":{},"type":"text","position":6,"label":"Dirección 2","customID":"addressline2","page_number":1},{"Conditions":{},"type":"text","position":7,"label":"Ciudad","halfwidth":"yes","customID":"city","page_number":1,"required":"yes"},{"Conditions":{},"type":"textarea","position":8,"label":"Estado","inputHeight":"32","limitCharacters":"2","halfwidth":"yes","customID":"province","page_number":1,"required":"yes"},{"Conditions":{},"type":"text","position":9,"label":"Código Postal","centerfield":"no","halfwidth":"yes","customID":"zipcode","page_number":1,"required":"yes"},{"Conditions":{},"type":"textarea","position":10,"label":"PaÃs","limitCharacters":"3","halfwidth":"yes","inputHeight":"32","customID":"country","page_number":1,"required":"yes"},{"Conditions":{},"type":"hidden","position":11,"label":"Country Code","fieldvalue":"MX","page_number":1},{"Conditions":{},"type":"newdate","position":12,"label":"Fecha de compra","language":"es","disable_future_dates":"yes","date_limit":"no","required":"yes","page_number":1,"customID":"purchase_date"},{"Conditions":{},"type":"newdate","position":13,"label":"Fecha de instalación","language":"fr","disable_future_dates":"yes","date_limit":"no","page_number":1,"customID":"installation_date","required":"yes"},{"Conditions":{},"type":"text","position":14,"label":"Instalado por","required":"yes","customID":"installedBy","page_number":1},{"Conditions":{},"type":"text","position":15,"label":"Número de modelo del producto","infoMessage":"Entrez un nom de produit ou un numéro de modèle et sélectionnez une correspondance dans la liste déroulante. Si aucune correspondance nâest trouvée, veuillez utiliser le nom ou les numéros figurant sur lâemballage","required":"yes","page_number":1,"customID":"product_sku"},{"Conditions":{},"type":"text","position":16,"label":"Número de serie","infoMessage":"Los números de serie se aplican únicamente a las bañeras de hidromasaje. Puede encontrar su número de serie en la etiqueta no adherida, incluida en la bolsa que contiene los documentos proporcionados con su bañera de hidromasaje.","page_number":1,"customID":"product_serial_number"},{"Conditions":{},"type":"select","position":17,"label":"Lugar de adquisición","values":"Comercio\nHome Depot\nLowes\/Rona\nMenards\nPlomero\nConstructor\nSitio web oficial\nOtros","elementCost":{},"page_number":1,"required":"yes"},{"Conditions":{},"type":"number","position":18,"label":"Cantidad comprada","required":"yes","page_number":1,"minNumber":"1"},{"Conditions":{},"type":"file","position":19,"label":"Subir el comprobante de compra","imageMultiple":"yes","imagenoMultiple":"5","infoMessage":"Solo se aceptan archivos de imagen (JPG, PNG, TIFF, etc.) y archivos PDF.","enable_drag_and_drop":"yes","required":"yes","page_number":1,"browse_btn":"Buscar archivos"},{"Conditions":{},"type":"checkbox","position":20,"label":"Por favor, inscrÃbame para recibir el boletÃn de American Standard.","page_number":1},{"Conditions":{},"type":"radio","position":21,"label":"¿Cuál es la probabilidad de que recomiende American Standard a un colega o amigo?","values":"1\n2\n3\n4\n5\n6\n7\n8\n9\n10","elementCost":{},"page_number":1},{"Conditions":{},"type":"hidden","position":22,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":23,"label":"Language","page_number":1},{"Conditions":{},"type":"hidden","position":24,"label":"Product Name","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_7r380vk9fJyh1sCBeAO42w":{"uuid":"7r380vk9fJyh1sCBeAO42w","form_name":"Canada Product Warranty","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003e\u003cstrong\u003eForm Submitted Successfully!\u003c\/strong\u003e\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Canada Product Warranty","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","flow_trigger_integration":"yes","advance_css":".form_generater_form_div .tab {\n display: block !important;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n\n.col-sm-6 {\n padding-bottom: 0 !important;\n margin-bottom: 1.6em !important;\n}\n\n.col-sm-6 [data-blur-error] {\n position: absolute;\n bottom: 0;\n transform: translateY(100%);\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"], .required', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true' || field.classList.contains('required'),\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n });\n\n \/\/ --- SKU VALIDATION RULE ---\n BlurValidator.register('sku_strict', {\n priority: 0, \/\/ Highest priority check\n match: (field) =\u003e field.name === \"Product SKU or Product Name\" || field.id === 'form_input_9' || field.id === 'form_input_10',\n test: (value, field) =\u003e {\n \/\/ Must have a valid selection from dropdown\n if (!skuAutoComplete.validated || !skuAutoComplete.selectedSku) {\n return false;\n }\n \/\/ The field value must match the selected SKU exactly\n if (value.trim() !== skuAutoComplete.selectedSku) {\n return false;\n }\n return true;\n },\n message: 'Please select a valid product from the dropdown list.'\n });\n \/\/ --------------------------------------------------\n \n window.addEventListener('message', function(event) {\n if((event.data.form_name == \"prefillForm\")){\n var customerData = event.data;\n \/\/ Fill in the customerData as values of relevant fields\n $(\"#first_name\").val(customerData.firstName).attr('readonly', true);\n $(\"#last_name\").val(customerData.lastName).attr('readonly', true);\n $(\"#email\").val(customerData.email).attr('readonly', true);\n }\n }, false);\n \n function setFormAttributes() {\n const attributes = [\n { selector: '#form_input_0', attributes: { maxlength: '40' } },\n { selector: '#form_input_1', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Phone\"]', attributes: { maxlength: '15' } },\n { selector: '#form_input_3', attributes: { maxlength: '80' } },\n { selector: '#form_input_4', attributes: { maxlength: '100' } },\n { selector: 'input[name=\"Address line 1\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"Address line 2\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"City\"]', attributes: { maxlength: '40' } },\n { selector: 'input[name=\"Province\"]', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Zip code\"]', attributes: { maxlength: '20' } },\n { selector: 'select[name=\"Product SKU or Product Name\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"Product Name\"]', attributes: { maxlength: '4000' } },\n { selector: '#form_input_11', attributes: { min: '0', max: '10' } },\n { selector: 'input[name=\"Place of Purchase\"]', attributes: { maxlength: '50' } },\n { selector: 'input[name=\"Installed By\"]', attributes: { maxlength: '50' } }\n ];
1420\n \n attributes.forEach(({ selector, attributes }) =\u003e {\n const element = document.querySelector(selector);\n if (element) {\n Object.entries(attributes).forEach(([key, value]) =\u003e {\n element.setAttribute(key, value);\n });\n } else {\n console.log(`Selector not found: ${selector}`);\n }\n });\n \n }\n \n function replaceCountryField() {\n const countryField = document.querySelector('[name=\"Country\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"Canada\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\");\n newCountryField.classList.add(\"required\");\n newCountryField.setAttribute(\"name\", \"Displayed Country\");\n countryField.replaceWith(newCountryField);\n \n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"Canada\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\");\n countryFieldHidden.classList.add(\"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"Country\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Province\"]');\n if (provinceField) {\n const states = [\n { name: \"Alberta\", code: \"AB\" },\n { name: \"British Columbia\", code: \"BC\" },\n { name: \"Manitoba\", code: \"MB\" },\n { name: \"New Brunswick\", code: \"NB\" },\n { name: \"Newfoundland and Labrador\", code: \"NL\" },\n { name: \"Northwest Territories\", code: \"NT\" },\n { name: \"Nova Scotia\", code: \"NS\" },\n { name: \"Nunavut\", code: \"NU\" },\n { name: \"Ontario\", code: \"ON\" },\n { name: \"Prince Edward Island\", code: \"PE\" },\n { name: \"Quebec\", code: \"QC\" },\n { name: \"Saskatchewan\", code: \"SK\" },\n { name: \"Yukon\", code: \"YT\" }\n ];\n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n \n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Province\");\n \n provinceField.replaceWith(newProvinceField);\n \n const labelElement = document.querySelector('label[aria-label=\"Province\"]');\n if (labelElement) {\n labelElement.textContent = \"State.*\";\n }\n \n }\n }\n \n function disableLabelTabbing() {\n document.querySelectorAll('#formGeneratorForm label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function phoneNumberLimit () {\n const phoneNumberInput = document.querySelector('#formGeneratorForm input[name=\"Phone\"]');\n \n if (!phoneNumberInput) {\n console.warn(\"Phone number input not found.\");\n return;\n }\n \n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 15;\n e.target.value = e.target.value.slice(0, maxLength);\n });\n }\n \n function normalizeCountryCode(countryCode) {\n const countryMap = {\n 'United States': 'US',\n 'Canada': 'CA',\n 'Mexico': 'MX'\n };\n return countryMap[countryCode] || countryCode;\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: normalizeCountryCode(countryInput?.value || 'United States')\n };\n \n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n \n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();
1420\n \n function handleAddressValidation() {\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: normalizeCountryCode(countryInput?.value || 'United States')\n };\n \n if (\n addressInfo.streetLines[0] \u0026\u0026\n addressInfo.city \u0026\u0026\n addressInfo.postalCode \u0026\u0026\n addressInfo.stateOrProvinceCode\n ) {\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n }\n \n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n \n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n countryInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n }\n \n function listenToAddressValidationEvents() {\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return {\n \"disableForm\": handleDisableForm,\n \"enableForm\": handleEnableForm,\n \"addressValidated\": handleAddressValidated\n }\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = true;\n });\n }\n \n function handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = false;\n });\n }\n \n function handleAddressValidated(data) {\n console.log(\"handleAddressValidated\", data);\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n \n addressInput.value = data.streetLinesToken[0];\n addressInput2.value = data.streetLinesToken[1] || '';\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'United States';\n \n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n const addressFormStatus = { validated: false }\n const skuAutoComplete = { validated: false, selectedSku: null }\n \n function getFormAddressFields() {\n return {\n addressInput: document.querySelector('[name=\"Address line 1\"]'),\n addressInput2: document.querySelector('[name=\"Address line 2\"]'),\n cityInput: document.querySelector('[name=\"City\"]'),\n provinceInput: document.querySelector('[name=\"Province\"]'),\n zipInput: document.querySelector('[name=\"Zip code\"]'),\n countryInput: document.querySelector('[name=\"Country\"]')\n }\n }\n \n function addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n if (!buttonSubmit) {\n console.error('[ERROR] Submit button not found!');\n return;\n }\n buttonSubmit.addEventListener('click', (e) =\u003e {\n console.log('[DEBUG] Form submit clicked');\n const productField = document.querySelector('select[name=\"Product SKU or Product Name\"]') || document.querySelector('input[name=\"Product SKU or Product Name\"]') || document.querySelector('#form_input_9');\n const productVisibleField = document.querySelector('#product_sku_search_input') || productField;
1420\n \n console.log('[DEBUG] skuAutoComplete:', skuAutoComplete);\n console.log('[DEBUG] productField.value:', productField?.value);\n console.log('[DEBUG] productVisibleField:', productVisibleField);\n \n \/\/ --- CRITICAL: STRICT SKU VALIDATION BEFORE SUBMISSION ---\n \/\/ 1. Must have validated flag set\n if (!skuAutoComplete.validated) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \n \/\/ 2. Must have selected SKU stored\n if (!skuAutoComplete.selectedSku) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \n \/\/ 3. Field value must match selected SKU (prevents manual edits post-selection)\n if (productField.value.trim() !== skuAutoComplete.selectedSku) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \n \/\/ 4. Field cannot be empty\n if (!productField.value || productField.value.trim() === '') {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \/\/ ---------------------------------------------------------\n \n const validations = [\n {\n validated: addressFormStatus.validated,\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getFormAddressFields();\n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n }\n ];\n \n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n }\n \n function initSkuDropdown() {\n const productField = document.querySelector('select[name=\"Product SKU or Product Name\"]') || document.querySelector('input[name=\"Product SKU or Product Name\"]')\n console.log('[DEBUG] Product field:', productField);\n if (!productField) {\n console.error('[ERROR] Product field not found! Looking for: select[name=\"Product SKU or Product Name\"]');\n return;\n }\n const productnameField = document.querySelector('input[name=\"Product Name\"]')\n const searchInputId = 'product_sku_search_input';\n const suggestionListId = 'product_sku_suggestion_list';\n const suggestionItemClass = 'product-sku-suggestion-item';\n let searchDebounceTimer = null;\n let activeSearchRequestId = 0;\n let productsByDisplayText = new Map();\n let suppressSearchReset = false;\n let currentSuggestions = [];\n \n productField.classList.add('product-sku-select-hidden');\n productField.setAttribute('tabindex', '-1');\n productField.setAttribute('aria-hidden', 'true');\n \n const productFieldContainer = productField.parentElement;\n if (productFieldContainer \u0026\u0026 getComputedStyle(productFieldContainer).position === 'static') {\n productFieldContainer.style.position = 'relative';\n }\n \n function getOrCreateSearchInput() {\n let searchInput = document.querySelector(`#${searchInputId}`);\n if (searchInput) return searchInput;\n \n searchInput = document.createElement('input');\n searchInput.type = 'text';\n searchInput.id = searchInputId;\n searchInput.className = 'form-control product-sku-search';\n searchInput.placeholder = 'Type to search by product name or model number';\n searchInput.setAttribute('autocomplete', 'off');\n searchInput.setAttribute('aria-label', 'Search product for dropdown');\n \n productField.insertAdjacentElement('beforebegin', searchInput);\n return searchInput;\n }\n \n function getOrCreateSuggestionList() {\n let suggestionList = document.querySelector(`#${suggestionListId}`);\n if (suggestionList) return suggestionList;\n \n suggestionList = document.createElement('ul');\n suggestionList.id = suggestionListId;\n suggestionList.className = 'product-sku-suggestion-list';\n suggestionList.hidden = true;\n productField.insertAdjacentElement('beforebegin', suggestionList);\n return suggestionList;\n }\n \n const searchInput = getOrCreateSearchInput();\n const suggestionList = getOrCreateSuggestionList();\n \n function hideSuggestionList() {\n suggestionList.hidden = true;\n suggestionList.innerHTML = '';\n currentSuggestions = [];\n }\n \n function showLoadingSuggestions() {\n suggestionList.innerHTML = '';\n \n const loadingItem = document.createElement('li');\n loadingItem.className = 'product-sku-suggestion-item product-sku-suggestion-item--loading';\n loadingItem.setAttribute('aria-disabled', 'true');\n loadingItem.innerHTML = `\n \u003cspan class=\"product-sku-loading-dot\"\u003e\u003c\/span\u003e\n \u003cspan\u003eLoading results...\u003c\/span\u003e\n `;\n \n suggestionList.appendChild(loadingItem);\n suggestionList.hidden = false;\n }
1420\n \n function renderSuggestionList(products) {\n currentSuggestions = products;\n suggestionList.innerHTML = '';\n \n if (!products.length) {\n const noResults = document.createElement('li');\n noResults.className = suggestionItemClass;\n noResults.textContent = 'No results found';\n noResults.setAttribute('aria-disabled', 'true');\n suggestionList.appendChild(noResults);\n suggestionList.hidden = false;\n return;\n }\n \n products.slice(0, 20).forEach((item, index) =\u003e {\n const option = document.createElement('li');\n option.className = suggestionItemClass;\n option.setAttribute('role', 'option');\n option.setAttribute('aria-selected', 'false');\n option.dataset.displayText = item.displayText;\n option.dataset.sku = item.sku;\n option.dataset.title = item.title || '';\n option.textContent = item.displayText;\n \n option.addEventListener('pointerdown', (event) =\u003e {\n event.preventDefault();\n event.stopPropagation();\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: item.sku, title: item.title || '' });\n searchInput.value = item.displayText;\n BlurValidator.clearError(searchInput);\n hideSuggestionList();\n });\n \n option.addEventListener('mouseenter', () =\u003e {\n suggestionList.querySelectorAll('[aria-selected=\"true\"]').forEach((selected) =\u003e {\n selected.setAttribute('aria-selected', 'false');\n });\n option.setAttribute('aria-selected', 'true');\n });\n \n suggestionList.appendChild(option);\n });\n \n suggestionList.hidden = false;\n }\n \n function selectProduct({ sku, title }) {\n console.log('[DEBUG] selectProduct called:', { sku, title });\n productField.value = sku;\n if (productnameField) productnameField.value = title;\n skuAutoComplete.validated = true;\n skuAutoComplete.selectedSku = sku;\n console.log('[DEBUG] skuAutoComplete updated:', skuAutoComplete);\n BlurValidator.clearError(productField);\n }\n \n function resetDropdownOptions(placeholderText = 'Please Select') {\n productField.innerHTML = '';\n hideSuggestionList();\n productsByDisplayText = new Map();\n const placeholder = document.createElement('option');\n placeholder.value = '';\n placeholder.textContent = placeholderText;\n productField.appendChild(placeholder);\n }\n \n function addProductOptions(products) {\n const added = new Set();\n products.forEach(({ displayText, sku, title }) =\u003e {\n const normalizedSku = (sku || '').trim();\n if (!normalizedSku || added.has(normalizedSku)) return;\n const option = document.createElement('option');\n option.value = normalizedSku;\n option.textContent = displayText;\n option.dataset.productTitle = title || '';\n productField.appendChild(option);\n \n productsByDisplayText.set(displayText, {\n sku: normalizedSku,\n title: title || '',\n displayText\n });\n \n added.add(normalizedSku);\n });\n }\n \n function applySelectionFromInput() {\n const typedValue = (searchInput.value || '').trim();\n if (!typedValue) return false;\n \n const directMatch = productsByDisplayText.get(typedValue);\n if (directMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: directMatch.sku, title: directMatch.title });\n BlurValidator.clearError(searchInput);\n return true;\n }\n \n const caseInsensitiveMatch = Array.from(productsByDisplayText.values()).find(\n (item) =\u003e item.displayText.toLowerCase() === typedValue.toLowerCase()\n );\n \n if (caseInsensitiveMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: caseInsensitiveMatch.sku, title: caseInsensitiveMatch.title });\n searchInput.value = caseInsensitiveMatch.displayText;\n BlurValidator.clearError(searchInput);\n return true;\n }\n \n return false;\n }\n \n async function populateProductDropdown() {\n const requestId = activeSearchRequestId;\n console.log('[DEBUG] populateProductDropdown called, requestId:', requestId);\n if (requestId === 0) return;\n \n resetDropdownOptions('Loading products...');\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n if ((searchInput.value || '').trim().length \u003e 0) {\n showLoadingSuggestions();\n } else {\n hideSuggestionList();\n }\n \n try {\n const products = await getProducts(searchInput.value || '');\n console.log('[DEBUG] Products loaded:', products?.length, 'items');\n \n resetDropdownOptions('Please Select');\n \n if (!products.length) {\n if ((searchInput.value || '').trim().length \u003e 0) {\n renderSuggestionList([]);\n } else {\n hideSuggestionList();\n }\n return;\n }\n \n addProductOptions(products);\n const inputValue = (searchInput.value || '').trim().toLowerCase();\n const suggestions = products.filter((item) =\u003e {\n if (!inputValue) return true;\n return item.displayText.toLowerCase().includes(inputValue);\n });\n if (inputValue.length \u003e 0) {\n renderSuggestionList(suggestions);\n } else {\n hideSuggestionList();\n }\n } catch (error) {\n resetDropdownOptions('Please Select');\n hideSuggestionList();\n }
1420\n \n Array.from(productField.options).forEach((option) =\u003e {\n if (option.value \u0026\u0026 option.value.trim().toLowerCase() === 'test') option.remove();\n });\n }\n \n activeSearchRequestId += 1;\n populateProductDropdown();\n \n searchInput.addEventListener('input', () =\u003e {\n if (suppressSearchReset) return;\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n if (productnameField) productnameField.value = '';\n BlurValidator.clearError(productField);\n BlurValidator.clearError(searchInput);\n \n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n searchDebounceTimer = setTimeout(() =\u003e {\n populateProductDropdown();\n }, 300);\n });\n \n searchInput.addEventListener('change', () =\u003e {\n if (!applySelectionFromInput()) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n if (productnameField) productnameField.value = '';\n }\n });\n \n searchInput.addEventListener('blur', () =\u003e {\n setTimeout(() =\u003e {\n if (document.activeElement === suggestionList || suggestionList.contains(document.activeElement)) return;\n const hasSelection = applySelectionFromInput();\n if (!hasSelection) {\n BlurValidator.showError(searchInput, 'Please select a product from the dropdown list.');\n hideSuggestionList();\n return;\n }\n hideSuggestionList();\n }, 120);\n });\n \n searchInput.addEventListener('focus', () =\u003e {\n if ((searchInput.value || '').trim().length === 0) hideSuggestionList();\n });\n \n searchInput.addEventListener('keydown', (event) =\u003e {\n if (event.key === 'Escape') {\n hideSuggestionList();\n return;\n }\n \n if (event.key === 'Enter') {\n const matched = applySelectionFromInput();\n if (matched) {\n hideSuggestionList();\n }\n }\n });\n \n productField.addEventListener('change', () =\u003e {\n const selectedOption = productField.options[productField.selectedIndex];\n if (!selectedOption || !selectedOption.value) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n if (productnameField) productnameField.value = '';\n BlurValidator.showError(productField, 'Please select a product from the dropdown list.');\n return;\n }\n \n suppressSearchReset = true;\n selectProduct({ sku: selectedOption.value, title: selectedOption.dataset.productTitle || '' });\n searchInput.value = selectedOption.textContent || '';\n suppressSearchReset = false;\n });\n }\n \n const PRODUCTS_ENDPOINT = 'https:\/\/storage.googleapis.com\/lixil-products\/form-assets\/products-as-ca.json';\n let cachedProducts = null;\n let cachedProductsPromise = null;\n\n async function fetchAllProducts() {\n if (cachedProducts) {\n console.log('[DEBUG] fetchAllProducts: returning cached products');\n return cachedProducts;\n }\n if (!cachedProductsPromise) {\n console.log('[DEBUG] fetchAllProducts: fetching from', PRODUCTS_ENDPOINT);\n cachedProductsPromise = fetch(PRODUCTS_ENDPOINT)\n .then((response) =\u003e {\n console.log('[DEBUG] fetch response status:', response.status);\n if (!response.ok) throw new Error(`Failed to load products: ${response.status}`);\n return response.json();\n })\n .then((items) =\u003e {\n console.log('[DEBUG] JSON parsed, items count:', items?.length);\n cachedProducts = (Array.isArray(items) ? items : []).map((item) =\u003e {\n const sku = String(item.Model || '').trim();\n const title = String(item.Title || '').trim();\n const color = String(item.Color || '').trim();
1420\n const displayText = `${[title, color].filter(Boolean).join(' ')}${sku ? `, ${sku}` : ''}`;\n return { displayText, sku, title };\n });\n console.log('[DEBUG] cachedProducts ready:', cachedProducts.length, 'items');\n return cachedProducts;\n })\n .catch((error) =\u003e {\n console.error('[ERROR] fetchAllProducts error:', error);\n cachedProductsPromise = null;\n throw error;\n });\n }\n return cachedProductsPromise;\n }\n \n async function getProducts(productQuery) {\n const allProducts = await fetchAllProducts();\n const query = String(productQuery || '').trim().toLowerCase();\n if (!query) return allProducts;\n return allProducts.filter((item) =\u003e item.displayText.toLowerCase().includes(query));\n }\n \n function addDropzoneConfigs() {\n const dz = Dropzone.forElement(\".dropzone\");\n if(!dz) {\n console.error(\"Dropzone not found\");\n return;\n }\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n \n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n }\n \n function addPurchaseDateListener() {\n const $purchaseInput = $('input[name=\"Purchase Date\"]');\n const $installationInput = $('input[name=\"Date of Installation\"]');\n \n $purchaseInput.on('dp.change', function (event) {\n const purchaseDate = event.date;\n $installationInput?.data('DateTimePicker')?.minDate(purchaseDate);\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = \"EN\";\n }\n \n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n function changeTermsAndConditionsText() {\n const termsAndConditions = document.querySelector('#terms_conditions')?.closest('label');\n if (termsAndConditions) {\n const span = termsAndConditions.querySelector('#terms_conditions');\n termsAndConditions.innerHTML = '';\n termsAndConditions.appendChild(span);\n termsAndConditions.insertAdjacentHTML('beforeend', `\n I have read and agree to the \n \u003ca href=\"https:\/\/americanstandard.ca\/pages\/terms-of-use\"\u003eTerms and Conditions\u003c\/a\u003e and \n \u003ca href=\"https:\/\/americanstandard.ca\/pages\/privacy-policy\"\u003ePrivacy Policy\u003c\/a\u003e.\n `);\n }\n }\n \n document.addEventListener('DOMContentLoaded', function () {\/\/ Add CSS styling for autocomplete suggestions\n console.log('[DEBUG] DOMContentLoaded fired');\n const styleEl = document.createElement('style');\n styleEl.textContent = `\n input.error {\n border-color: #dc3545 !important;\n }\n \n select.error {\n border-color: #dc3545 !important;\n }\n \n .product-sku-search {\n margin-bottom: 8px;\n position: relative;\n background: #fff;\n border: 1px solid #c9c9c9;\n border-radius: 0;\n box-shadow: none;\n color: #111;\n }\n \n .product-sku-select-hidden {\n display: none !important;\n }\n \n .product-sku-suggestion-list {\n position: absolute;\n left: 0;\n right: 0;\n top: calc(100% + 4px);\n z-index: 10000;\n margin: 0;\n padding: 0;\n list-style: none;\n background: #fff;\n border: 1px solid #d0d0d0;\n border-radius: 0;\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);\n max-height: 280px;\n overflow-y: auto;\n }\n \n .product-sku-suggestion-item {\n padding: 12px 14px;\n color: #111;\n font-size: 14px;\n line-height: 1.35;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: 1px solid #eee;\n }\n \n .product-sku-suggestion-item:hover,\n .product-sku-suggestion-item[aria-selected=\"true\"] {\n background: #f3f3f3;\n }\n \n .product-sku-suggestion-item[aria-disabled=\"true\"] {\n color: #777;\n cursor: default;\n }\n \n .product-sku-suggestion-item--loading {\n display: flex;\n align-items: center;\n gap: 10px;\n justify-content: flex-start;\n }\n \n .product-sku-loading-dot {\n width: 10px;\n height: 10px;\n border-radius: 999px;\n background: #111;\n opacity: 0.2;\n animation: productSkuPulse 1s ease-in-out infinite;\n }\n \n @keyframes productSkuPulse {\n 0%, 100% {\n transform: scale(0.75);\n opacity: 0.2;\n }\n 50% {\n transform: scale(1.1);\n opacity: 0.8;\n }\n }\n \n .error-message {\n color: #dc3545;\n font-size: 12px;\n margin-top: 5px;\n }\n `;\n document.head.appendChild(styleEl);\n replaceCountryField();\n replaceProvinceField(); \n setFormAttributes();\n disableLabelTabbing();\n changeTermsAndConditionsText();\n phoneNumberLimit();\n validationAddress();\n addSubmitButtonCustomAction();\n listenToAddressValidationEvents();\n initSkuDropdown();\n addDropzoneConfigs();\n addPurchaseDateListener();\n getParentHref();\n BlurValidator.init();\n console.log('[DEBUG] DOMContentLoaded initialization complete');\n });\n \/\/ hulkforms.prefill = {\n \/\/ first_name: \"{{ customer.first_name | escape }}\",\n \/\/ last_name: \"{{ customer.last_name | escape }}\",\n \/\/ email: \"{{ customer.email | escape }}\"\n \/\/ };\n \n \n document.querySelectorAll('label').forEach(label =\u003e {\n if (label.textContent.includes('*')) {\n const text = label.textContent.replace('*', '').trim();\n label.innerHTML = `${text} \u003cspan aria-hidden=\"true\"\u003e*\u003c\/span\u003e`;\n }\n });","after_submit_script":"let redirectUrl = \"https:\/\/americanstandard.ca\/pages\/thank-you-page-warranty\";\n\nconst createAccountCheckbox = document.querySelector('label[for=\"createAccount\"]')?.querySelector('input');\n\nif (createAccountCheckbox \u0026\u0026 createAccountCheckbox.checked) {\n redirectUrl += \"?accountCreated=true\";\n}\n\nwindow.top.location.href = redirectUrl;","formElements":[{"Conditions":{},"type":"text","position":0,"label":"First Name","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"Last Name","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{},"type":"phone","position":2,"label":"Phone","page_number":1,"phone_validate_field":"no","default_country_code":"Canada +1"},{"type":"email","position":3,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Company","page_number":1},{"Conditions":{},"type":"address","position":5,"label":"Address Information","page_number":1,"required":"yes"},{"Conditions":{},"type":"newdate","position":6,"label":"Purchase Date","disable_future_dates":"yes","date_limit":"no","required":"yes","page_number":1},{"Conditions":{},"type":"newdate","position":7,"label":"Date of Installation","page_number":1,"disable_future_dates":"yes","date_limit":"no","required":"no"},{"Conditions":{},"type":"text","position":8,"label":"Installed By","required":"yes","customID":"installedBy","page_number":1},{"Conditions":{},"type":"select","position":9,"label":"Product SKU or Product Name","
1420infoMessage":"Enter a product name or model number and select a match from the dropdown list. If no matches are found please use the name or numbers found on the packaging.","required":"yes","values":"Test 1\nTest 2\nTest 3","elementCost":{},"page_number":1},{"Conditions":{},"type":"text","position":10,"label":"Serial Number","infoMessage":"Serial numbers are applicable to Walk-In Tubs only. You can find your serial number in a plastic bag attached to the inside frame of your Walk-In Tub.","page_number":1},{"Conditions":{},"type":"number","position":11,"label":"Quantity Purchased","required":"yes","page_number":1},{"Conditions":{},"type":"select","position":12,"label":"Place of Purchase","values":"Trade\/Showroom\nHome Depot\nLowes\/Rona\nMenards\nPlumber\nBuilder\nBrand Website\nOthers","elementCost":{},"page_number":1,"required":"yes"},{"Conditions":{},"type":"file","position":13,"label":"Upload Purchase Receipt*","imageMultiple":"yes","imagenoMultiple":"5","enable_drag_and_drop":"yes","required":"yes","page_number":1,"infoMessage":"Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,"},{"Conditions":{},"type":"checkbox","position":14,"label":"Please sign me up to receive the American Standard Newsletter","page_number":1},{"Conditions":{},"type":"radio","position":15,"label":"How likely are you to recommend American Standard to a colleague or friend?","values":"1\n2\n3\n4\n5\n6\n7\n8\n9\n10","elementCost":{},"page_number":1},{"Conditions":{},"type":"checkbox","position":16,"label":"Click here to create an account to easily manage your warranty.","customID":"createAccount","page_number":1},{"Conditions":{"SelectedElemenet":"Click here to create an account to easily manage your warranty.","SelectedElemenetCount":16,"SelectedValues":["On"]},"type":"checkbox","position":17,"label":"I agree to the Terms and Conditions","customID":"terms_conditions","required":"yes","page_number":1},{"Conditions":{},"type":"hidden","position":18,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":19,"label":"Language","page_number":1},{"Conditions":{},"type":"hidden","position":20,"label":"Product Name","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_9nTQgPbRJ4uHNwkBkyFm8w":{"uuid":"9nTQgPbRJ4uHNwkBkyFm8w","form_name":"Product Warranty","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003e\u003cstrong\u003eForm Submitted Successfully!\u003c\/strong\u003e\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Product Warranty","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","flow_trigger_integration":"yes","advance_css":".form_generater_form_div .tab {\n display: block !important;\n}\n\nlabel[for=\"createAccount\"] label {\n font-size: 14px !important;\n font-weight: 600;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\n.col-sm-6 {\n padding-bottom: 0 !important;\n margin-bottom: 1.6em !important;\n}\n\n.col-sm-6 [data-blur-error] {\n position: absolute;\n bottom: 0;\n transform: translateY(100%);\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"], .required', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true' || field.classList.contains('required'),\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n });\n \n \/\/ --- SKU VALIDATION RULE ---\n BlurValidator.register('sku_strict', {\n priority: 0, \/\/ Highest priority check\n match: (field) =\u003e field.name === \"Product SKU or Product Name\" || field.id === 'form_input_10',\n test: (value, field) =\u003e {\n \/\/ Must have a valid selection from dropdown\n if (!skuAutoComplete.validated || !skuAutoComplete.selectedSku) {\n return false;\n }\n \/\/ The field value must match the selected SKU exactly\n if (value.trim() !== skuAutoComplete.selectedSku) {\n return false;\n }\n return true;\n },\n message: 'Please select a valid product from the dropdown list.'\n });\n \/\/ --------------------------------------------------\n \n window.addEventListener('message', function(event) {\n if((event.data.form_name == \"prefillForm\")){\n var customerData = event.data;\n $(\"#first_name\").val(customerData.firstName).attr('readonly', true);\n $(\"#last_name\").val(customerData.lastName).attr('readonly', true);\n $(\"#email\").val(customerData.email).attr('readonly', true);\n }\n }, false);\n \n function setFormAttributes() {\n const attributes = [\n { selector: '#form_input_0', attributes: { maxlength: '40' } },\n { selector: '#form_input_1', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Phone\"]', attributes: { maxlength: '15' } },\n { selector: '#form_input_3', attributes: { maxlength: '80' } },\n { selector: '#form_input_4', attributes: { maxlength: '100' } },\n { selector: 'input[name=\"Address line 1\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"Address line 2\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"City\"]', attributes: { maxlength: '40' } },\n { selector: 'input[name=\"Province\"]', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Zip code\"]', attributes: { maxlength: '20' } },\n { selector: 'select[name=\"Product SKU or Product Name\"]', attributes: { } },\n { selector: 'input[name=\"Product Name\"]', attributes: { maxlength: '4000' } },\n { selector: '#form_input_11', attributes: { min: '0', max: '10' } },\n { selector: 'input[name=\"Place of Purchase\"]', attributes: { maxlength: '50' } },\n { selector: 'input[name=\"Installed By\"]', attributes: { maxlength: '50' } }\n ];
1420\n \n attributes.forEach(({ selector, attributes }) =\u003e {\n const element = document.querySelector(selector);\n if (element) {\n Object.entries(attributes).forEach(([key, value]) =\u003e {\n element.setAttribute(key, value);\n });\n }\n });\n }\n \n function replaceCountryField() {\n const countryField = document.querySelector('[name=\"Country\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"United States\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\");\n newCountryField.classList.add(\"required\");\n newCountryField.setAttribute(\"name\", \"Displayed Country\");\n countryField.replaceWith(newCountryField);\n \n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"United States\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\");\n countryFieldHidden.classList.add(\"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"Country\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Province\"]');\n if (provinceField) {\n const states = [\n { name: \"Alabama\", code: \"AL\" }, { name: \"Alaska\", code: \"AK\" }, { name: \"Arizona\", code: \"AZ\" }, { name: \"Arkansas\", code: \"AR\" }, { name: \"California\", code: \"CA\" }, { name: \"Colorado\", code: \"CO\" }
1420, { name: \"Connecticut\", code: \"CT\" }, { name: \"Delaware\", code: \"DE\" }, { name: \"Florida\", code: \"FL\" }, { name: \"Georgia\", code: \"GA\" }, { name: \"Hawaii\", code: \"HI\" }, { name: \"Idaho\", code: \"ID\" }, { name: \"Illinois\", code: \"IL\" }, { name: \"Indiana\", code: \"IN\" }, { name: \"Iowa\", code: \"IA\" }, { name: \"Kansas\", code: \"KS\" }, { name: \"Kentucky\", code: \"KY\" }, { name: \"Louisiana\", code: \"LA\" }, { name: \"Maine\", code: \"ME\" }, { name: \"Maryland\", code: \"MD\" }, { name: \"Massachusetts\", code: \"MA\" }, { name: \"Michigan\", code: \"MI\" }, { name: \"Minnesota\", code: \"MN\" }, { name: \"Mississippi\", code: \"MS\" }, { name: \"Missouri\", code: \"MO\" }, { name: \"Montana\", code: \"MT\" }, { name: \"Nebraska\", code: \"NE\" }, { name: \"Nevada\", code: \"NV\" }, { name: \"New Hampshire\", code: \"NH\" }, { name: \"New Jersey\", code: \"NJ\" }, { name: \"New Mexico\", code: \"NM\" }, { name: \"New York\", code: \"NY\" }, { name: \"North Carolina\", code: \"NC\" }, { name: \"North Dakota\", code: \"ND\" }, { name: \"Ohio\", code: \"OH\" }, { name: \"Oklahoma\", code: \"OK\" }, { name: \"Oregon\", code: \"OR\" }, { name: \"Pennsylvania\", code: \"PA\" }, { name: \"Rhode Island\", code: \"RI\" }, { name: \"South Carolina\", code: \"SC\" }, { name: \"South Dakota\", code: \"SD\" }, { name: \"Tennessee\", code: \"TN\" }, { name: \"Texas\", code: \"TX\" }, { name: \"Utah\", code: \"UT\" }, { name: \"Vermont\", code: \"VT\" }, { name: \"Virginia\", code: \"VA\" }, { name: \"Washington\", code: \"WA\" }, { name: \"Washington DC\", code: \"DC\" }, { name: \"West Virginia\", code: \"WV\" }, { name: \"Wisconsin\", code: \"WI\" }, { name: \"Wyoming\", code: \"WY\" }\n ];\n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Province\");\n provinceField.replaceWith(newProvinceField);\n \n const labelElement = document.querySelector('label[for=\"address_province\"]');\n if (labelElement) { labelElement.textContent = \"State\"; }\n }\n }\n \n function disableLabelTabbing() {\n document.querySelectorAll('#formGeneratorForm label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function phoneNumberLimit () {\n const phoneNumberInput = document.querySelector('#formGeneratorForm input[name=\"Phone\"]');\n if (!phoneNumberInput) return;\n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 15;\n e.target.value = e.target.value.slice(0, maxLength);\n });\n }\n \n function normalizeCountryCode(countryCode) {\n const countryMap = { 'United States': 'US', 'Canada': 'CA', 'Mexico': 'MX' };\n return countryMap[countryCode] || countryCode;\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: normalizeCountryCode(countryInput?.value || 'United States')\n };\n window.parent.postMessage({ type: 'addressUpdate', data: addressInfo }, '*');\n }\n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n function handleAddressValidation() {\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: normalizeCountryCode(countryInput?.value || 'United States')\n };\n if (addressInfo.streetLines[0] \u0026\u0026 addressInfo.city \u0026\u0026 addressInfo.postalCode \u0026\u0026 addressInfo.stateOrProvinceCode) {\n window.parent.postMessage({ type: 'addressUpdate', data: addressInfo }, '*');\n }\n }
1420\n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e { updateFormStatus(); handleAddressValidation(); });\n countryInput?.addEventListener('change', () =\u003e { updateFormStatus(); handleAddressValidation(); });\n }\n \n function listenToAddressValidationEvents() {\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return { \"disableForm\": handleDisableForm, \"enableForm\": handleEnableForm, \"addressValidated\": handleAddressValidated }\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e { element.disabled = true; });\n }\n \n function handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e { element.disabled = false; });\n }\n \n function handleAddressValidated(data) {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n addressInput.value = data.streetLinesToken[0];\n addressInput2.value = data.streetLinesToken[1] || '';\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'United States';\n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n const addressFormStatus = { validated: false }\n const skuAutoComplete = { validated: false, selectedSku: null }\n \n function getFormAddressFields() {\n return {\n addressInput: document.querySelector('[name=\"Address line 1\"]'),\n addressInput2: document.querySelector('[name=\"Address line 2\"]'),\n cityInput: document.querySelector('[name=\"City\"]'),\n provinceInput: document.querySelector('[name=\"Province\"]'),\n zipInput: document.querySelector('[name=\"Zip code\"]'),\n countryInput: document.querySelector('[name=\"Country\"]')\n }\n }\n \n function addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n buttonSubmit.addEventListener('click', (e) =\u003e {\n const productField = document.querySelector('select[name=\"Product SKU or Product Name\"]') || document.querySelector('#form_input_10');\n const productVisibleField = document.querySelector('#product_sku_search_input') || productField;\n \n \/\/ --- CRITICAL: STRICT SKU VALIDATION BEFORE SUBMISSION ---\n \/\/ 1. Must have validated flag set\n if (!skuAutoComplete.validated) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \n \/\/ 2. Must have selected SKU stored\n if (!skuAutoComplete.selectedSku) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \n \/\/ 3. Field value must match selected SKU (prevents manual edits post-selection)\n if (productField.value.trim() !== skuAutoComplete.selectedSku) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \n \/\/ 4. Field cannot be empty\n if (!productField.value || productField.value.trim() === '') {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(productVisibleField, 'Please select a product from the dropdown list.');\n productVisibleField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productVisibleField.focus();\n return;\n }\n \/\/ ---------------------------------------------------------\n \n const validations = [\n {\n validated: addressFormStatus.val
1420idated,\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getFormAddressFields();\n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n }\n ];\n \n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n }\n \n function initSkuDropdown() {\n const productField = document.querySelector('select[name=\"Product SKU or Product Name\"]') || document.querySelector('#form_input_10');\n if (!productField) return;\n const productnameField = document.querySelector('input[name=\"Product Name\"]')\n const searchInputId = 'product_sku_search_input';\n const suggestionListId = 'product_sku_suggestion_list';\n const suggestionItemClass = 'product-sku-suggestion-item';\n let searchDebounceTimer = null;\n let activeSearchRequestId = 0;\n let productsByDisplayText = new Map();\n let suppressSearchReset = false;\n let currentSuggestions = [];\n \n productField.classList.add('product-sku-select-hidden');\n productField.setAttribute('tabindex', '-1');\n productField.setAttribute('aria-hidden', 'true');\n \n const productFieldContainer = productField.parentElement;\n if (productFieldContainer \u0026\u0026 getComputedStyle(productFieldContainer).position === 'static') {\n productFieldContainer.style.position = 'relative';\n }\n \n function getOrCreateSearchInput() {\n let searchInput = document.querySelector(`#${searchInputId}`);\n if (searchInput) return searchInput;\n \n searchInput = document.createElement('input');\n searchInput.type = 'text';\n searchInput.id = searchInputId;\n searchInput.className = 'form-control product-sku-search';\n searchInput.placeholder = 'Type to search by product name or model number';\n searchInput.setAttribute('autocomplete', 'off');\n searchInput.setAttribute('aria-label', 'Search product for dropdown');\n \n productField.insertAdjacentElement('beforebegin', searchInput);\n return searchInput;\n }\n \n function getOrCreateSuggestionList() {\n let suggestionList = document.querySelector(`#${suggestionListId}`);\n if (suggestionList) return suggestionList;\n \n suggestionList = document.createElement('ul');\n suggestionList.id = suggestionListId;\n suggestionList.className = 'product-sku-suggestion-list';\n suggestionList.hidden = true;\n productField.insertAdjacentElement('beforebegin', suggestionList);\n return suggestionList;\n }\n \n const searchInput = getOrCreateSearchInput();\n const suggestionList = getOrCreateSuggestionList();\n \n function hideSuggestionList() {\n suggestionList.hidden = true;\n suggestionList.innerHTML = '';\n currentSuggestions = [];\n }\n \n function showLoadingSuggestions() {\n suggestionList.innerHTML = '';\n \n const loadingItem = document.createElement('li');\n loadingItem.className = 'product-sku-suggestion-item product-sku-suggestion-item--loading';\n loadingItem.setAttribute('aria-disabled', 'true');\n loadingItem.innerHTML = `\n \u003cspan class=\"product-sku-loading-dot\"\u003e\u003c\/span\u003e\n \u003cspan\u003eLoading results...\u003c\/span\u003e\n `;\n \n suggestionList.appendChild(loadingItem);\n suggestionList.hidden = false;\n }
1420\n \n function renderSuggestionList(products) {\n currentSuggestions = products;\n suggestionList.innerHTML = '';\n \n if (!products.length) {\n const noResults = document.createElement('li');\n noResults.className = suggestionItemClass;\n noResults.textContent = 'No results found';\n noResults.setAttribute('aria-disabled', 'true');\n suggestionList.appendChild(noResults);\n suggestionList.hidden = false;\n return;\n }\n \n products.slice(0, 20).forEach((item, index) =\u003e {\n const option = document.createElement('li');\n option.className = suggestionItemClass;\n option.setAttribute('role', 'option');\n option.setAttribute('aria-selected', 'false');\n option.dataset.displayText = item.displayText;\n option.dataset.sku = item.sku;\n option.dataset.title = item.title || '';\n option.textContent = item.displayText;\n \n option.addEventListener('pointerdown', (event) =\u003e {\n event.preventDefault();\n event.stopPropagation();\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: item.sku, title: item.title || '' });\n searchInput.value = item.displayText;\n BlurValidator.clearError(searchInput);\n hideSuggestionList();\n });\n \n option.addEventListener('mouseenter', () =\u003e {\n suggestionList.querySelectorAll('[aria-selected=\"true\"]').forEach((selected) =\u003e {\n selected.setAttribute('aria-selected', 'false');\n });\n option.setAttribute('aria-selected', 'true');\n });\n \n suggestionList.appendChild(option);\n });\n \n suggestionList.hidden = false;\n }\n \n function selectProduct({ sku, title }) {\n productField.value = sku;\n if (productnameField) productnameField.value = title;\n skuAutoComplete.validated = true;\n skuAutoComplete.selectedSku = sku;\n BlurValidator.clearError(productField);\n }\n \n function resetDropdownOptions(placeholderText = 'Please Select') {\n productField.innerHTML = '';\n hideSuggestionList();\n productsByDisplayText = new Map();\n const placeholder = document.createElement('option');\n placeholder.value = '';\n placeholder.textContent = placeholderText;\n productField.appendChild(placeholder);\n }\n \n function addProductOptions(products) {\n const added = new Set();\n products.forEach(({ displayText, sku, title }) =\u003e {\n const normalizedSku = (sku || '').trim();\n if (!normalizedSku || added.has(normalizedSku)) return;\n const option = document.createElement('option');\n option.value = normalizedSku;\n option.textContent = displayText;\n option.dataset.productTitle = title || '';\n productField.appendChild(option);\n \n productsByDisplayText.set(displayText, {\n sku: normalizedSku,\n title: title || '',\n displayText\n });\n \n added.add(normalizedSku);\n });\n }\n \n function applySelectionFromInput() {\n const typedValue = (searchInput.value || '').trim();\n if (!typedValue) return false;\n \n const directMatch = productsByDisplayText.get(typedValue);\n if (directMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: directMatch.sku, title: directMatch.title });\n BlurValidator.clearError(searchInput);\n return true;\n }\n \n const caseInsensitiveMatch = Array.from(productsByDisplayText.values()).find(\n (item) =\u003e item.displayText.toLowerCase() === typedValue.toLowerCase()\n );\n \n if (caseInsensitiveMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: caseInsensitiveMatch.sku, title: caseInsensitiveMatch.title });\n searchInput.value = caseInsensitiveMatch.displayText;\n BlurValidator.clearError(searchInput);\n return true;\n }\n \n return false;\n }\n \n async function populateProductDropdown() {\n const requestId = activeSearchRequestId;\n if (requestId === 0) return;\n \n resetDropdownOptions('Loading products...');\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n if ((searchInput.value || '').trim().length \u003e 0) {\n showLoadingSuggestions();\n } else {\n hideSuggestionList();\n }\n \n try {\n const products = await getProducts(searchInput.value || '');\n \n if (requestId !== activeSearchRequestId) return;\n \n resetDropdownOptions('Please Select');\n \n if (!products.length) {\n if ((searchInput.value || '').trim().length \u003e 0) {\n renderSuggestionList([]);\n } else {\n hideSuggestionList();\n }\n return;\n }\n \n addProductOptions(products);\n const inputValue = (searchInput.value || '').trim().toLowerCase();\n const suggestions = products.filter((item) =\u003e {\n if (!inputValue) return true;\n return item.displayText.toLowerCase().includes(inputValue);\n });\n if (inputValue.length \u003e 0) {\n renderSuggestionList(suggestions);\n } else {\n hideSuggestionList();\n }\n } catch (error) {\n resetDropdownOptions('Please Select');\n hideSuggestionList();\n }
1420\n \n Array.from(productField.options).forEach((option) =\u003e {\n if (option.value \u0026\u0026 option.value.trim().toLowerCase() === 'test') option.remove();\n });\n }\n \n activeSearchRequestId += 1;\n populateProductDropdown();\n \n searchInput.addEventListener('input', () =\u003e {\n if (suppressSearchReset) return;\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n if (productnameField) productnameField.value = '';\n BlurValidator.clearError(productField);\n BlurValidator.clearError(searchInput);\n \n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n searchDebounceTimer = setTimeout(() =\u003e {\n populateProductDropdown();\n }, 300);\n });\n \n searchInput.addEventListener('change', () =\u003e {\n if (!applySelectionFromInput()) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n if (productnameField) productnameField.value = '';\n }\n });\n \n searchInput.addEventListener('blur', () =\u003e {\n setTimeout(() =\u003e {\n if (document.activeElement === suggestionList || suggestionList.contains(document.activeElement)) return;\n const hasSelection = applySelectionFromInput();\n if (!hasSelection) {\n BlurValidator.showError(searchInput, 'Please select a product from the dropdown list.');\n hideSuggestionList();\n return;\n }\n hideSuggestionList();\n }, 120);\n });\n \n searchInput.addEventListener('focus', () =\u003e {\n if ((searchInput.value || '').trim().length === 0) hideSuggestionList();\n });\n \n searchInput.addEventListener('keydown', (event) =\u003e {\n if (event.key === 'Escape') {\n hideSuggestionList();\n return;\n }\n \n if (event.key === 'Enter') {\n const matched = applySelectionFromInput();\n if (matched) {\n hideSuggestionList();\n }\n }\n });\n \n productField.addEventListener('change', () =\u003e {\n const selectedOption = productField.options[productField.selectedIndex];\n if (!selectedOption || !selectedOption.value) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n if (productnameField) productnameField.value = '';\n BlurValidator.showError(productField, 'Please select a product from the dropdown list.');\n return;\n }\n \n suppressSearchReset = true;\n selectProduct({ sku: selectedOption.value, title: selectedOption.dataset.productTitle || '' });\n searchInput.value = selectedOption.textContent || '';\n suppressSearchReset = false;\n });\n }\n \n const PRODUCTS_ENDPOINT = 'https:\/\/storage.googleapis.com\/lixil-products\/form-assets\/products-as-us.json';\n let cachedProducts = null;\n let cachedProductsPromise = null;\n\n async function fetchAllProducts() {\n if (cachedProducts) return cachedProducts;\n if (!cachedProductsPromise) {\n cachedProductsPromise = fetch(PRODUCTS_ENDPOINT)\n .then((response) =\u003e {\n if (!response.ok) throw new Error(`Failed to load products: ${response.status}`);\n return response.json();\n })\n .then((items) =\u003e {\n cachedProducts = (Array.isArray(items) ? items : []).map((item) =\u003e {\n const sku = String(item.Model || '').trim();\n const title = String(item.Title || '').trim();\n const color = String(item.Color || '').trim();
1420\n const displayText = `${[title, color].filter(Boolean).join(' ')}${sku ? `, ${sku}` : ''}`;\n return { displayText, sku, title };\n });\n return cachedProducts;\n })\n .catch((error) =\u003e {\n cachedProductsPromise = null;\n throw error;\n });\n }\n return cachedProductsPromise;\n }\n \n async function getProducts(productQuery) {\n const allProducts = await fetchAllProducts();\n const query = String(productQuery || '').trim().toLowerCase();\n if (!query) return allProducts;\n return allProducts.filter((item) =\u003e item.displayText.toLowerCase().includes(query));\n }\n \n function addDropzoneConfigs() {\n const dz = Dropzone.forElement(\".dropzone\");\n if(!dz) return;\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n }\n \n function addPurchaseDateListener() {\n const $purchaseInput = $('input[name=\"Purchase Date\"]');\n const $installationInput = $('input[name=\"Date of Installation\"]');\n $purchaseInput.on('dp.change', function (event) {\n const purchaseDate = event.date;\n $installationInput?.data('DateTimePicker')?.minDate(purchaseDate);\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) { language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\"; }\n else if (hostname.includes(\"americanstandard.mx\")) { language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\"; }\n else if (hostname.includes(\"americanstandard-us.com\")) { language = \"EN\"; }\n \n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) webUrlInput.value = hostname;\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) languageInput.value = language;\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') { setWebUrl(event.data.href); }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n function changeTermsAndConditionsText() {\n const termsAndConditions = document.querySelector('#terms_conditions')?.closest('label');\n if (termsAndConditions) {\n const span = termsAndConditions.querySelector('#terms_conditions');\n termsAndConditions.innerHTML = '';\n termsAndConditions.appendChild(span);\n termsAndConditions.insertAdjacentHTML('beforeend', `\n I have read and agree to the \n \u003ca href=\"https:\/\/americanstandard-us.com\/pages\/terms-of-use\"\u003eTerms and Conditions\u003c\/a\u003e and \n \u003ca href=\"https:\/\/americanstandard-us.com\/pages\/privacy-policy\"\u003ePrivacy Policy\u003c\/a\u003e.\n `);\n }\n }\n \n document.addEventListener('DOMContentLoaded', function () {\/\/ Add CSS styling for autocomplete suggestions\n const styleEl = document.createElement('style');\n styleEl.textContent = `\n input.error {\n border-color: #dc3545 !important;\n }\n \n select.error {\n border-color: #dc3545 !important;\n }\n \n .product-sku-search {\n margin-bottom: 8px;\n position: relative;\n background: #fff;\n border: 1px solid #c9c9c9;\n border-radius: 0;\n box-shadow: none;\n color: #111;\n }\n \n .product-sku-select-hidden {\n display: none !important;\n }\n \n .product-sku-suggestion-list {\n position: absolute;\n left: 0;\n right: 0;\n top: calc(100% + 4px);\n z-index: 10000;\n margin: 0;\n padding: 0;\n list-style: none;\n background: #fff;\n border: 1px solid #d0d0d0;\n border-radius: 0;\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);\n max-height: 280px;\n overflow-y: auto;\n }\n \n .product-sku-suggestion-item {\n padding: 12px 14px;\n color: #111;\n font-size: 14px;\n line-height: 1.35;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: 1px solid #eee;\n }\n \n .product-sku-suggestion-item:hover,\n .product-sku-suggestion-item[aria-selected=\"true\"] {\n background: #f3f3f3;\n }\n \n .product-sku-suggestion-item[aria-disabled=\"true\"] {\n color: #777;\n cursor: default;\n }\n \n .product-sku-suggestion-item--loading {\n display: flex;\n align-items: center;\n gap: 10px;\n justify-content: flex-start;\n }\n \n .product-sku-loading-dot {\n width: 10px;\n height: 10px;\n border-radius: 999px;\n background: #111;\n opacity: 0.2;\n animation: productSkuPulse 1s ease-in-out infinite;\n }\n \n @keyframes productSkuPulse {\n 0%, 100% {\n transform: scale(0.75);\n opacity: 0.2;\n }\n 50% {\n transform: scale(1.1);\n opacity: 0.8;\n }\n }\n \n .error-message {\n color: #dc3545;\n font-size: 12px;\n margin-top: 5px;\n }\n `;\n document.head.appendChild(styleEl);\n replaceCountryField();\n replaceProvinceField(); \n setFormAttributes();\n disableLabelTabbing();\n changeTermsAndConditionsText();\n phoneNumberLimit();\n validationAddress();\n addSubmitButtonCustomAction();\n listenToAddressValidationEvents();\n initSkuDropdown();\n addDropzoneConfigs();\n addPurchaseDateListener();\n getParentHref();\n BlurValidator.init();\n \n document.querySelectorAll('label').forEach(label =\u003e {\n if (label.textContent.includes('*')) {\n const text = label.textContent.replace('*', '').trim();\n label.innerHTML = `${text} \u003cspan aria-hidden=\"true\"\u003e*\u003c\/span\u003e`;\n }\n });\n });","after_submit_script":"let redirectUrl = \"https:\/\/www.americanstandard-us.com\/pages\/thank-you-page-warranty\";\n\nconst createAccountCheckbox = document.querySelector('label[for=\"createAccount\"]')?.querySelector('input');\n\nif (createAccountCheckbox \u0026\u0026 createAccountCheckbox.checked) {\n redirectUrl += \"?accountCreated=true\";\n}\n\nwindow.top.location.href = redirectUrl;","custommessage":{"province":"Province"},"formElements":[{"Conditions":{},"type":"text","position":0,"label":"First Name","halfwidth":"yes","required":"yes","page_number":1,"customID":"first_name","shopifyField":"first_name"},{"Conditions":{},"type":"text","position":1,"label":"Last Name","halfwidth":"yes","required":"yes","page_number":1,"customID":"last_name","shopifyField":"last_name"},{"Conditions":{},"type":"phone","position":2,"label":"Phone","page_number":1,"phone_validate_field":"no"},{"type":"email","position":3,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1,"customID":"email"},{"Conditions":{},"type":"text","position":4,"label":"Company","page_number":1},{"Conditions":{},"type":"address","position":5,"label":"Address Information","page_number":1,"required":"yes"},{"Conditions":{},"type":"newdate","position":6,"label":"Purchase Date","disable_future_dates":"yes","date_limit":"no","required":"yes","page_number":1,"customID":"purchase_date"},{"Conditions":{},"type":"newdate","position":7,"label":"Date of Installation","page_number":1,"disable_future_dates":"yes","date_limit":"no","required":"yes","customID":"installation_date"},{"Conditions":{},"type":"text","position":8,"label":"Installed By","required":"yes","customID":"installedBy","page_number":1},{"Conditions":{},"type":"select","position":9,"label":"Product SKU or Product Name","
1420infoMessage":"Enter a product name or model number and select a match from the dropdown list. If no matches are found please use the name or numbers found on the packaging.","required":"yes","values":"Test1\nTest2\nTest3","elementCost":{},"page_number":1},{"Conditions":{},"type":"text","position":10,"label":"Serial Number","infoMessage":"Serial numbers are applicable to Walk-In Tubs only. You can find your serial number in a plastic bag attached to the inside frame of your Walk-In Tub.","page_number":1},{"Conditions":{},"type":"number","position":11,"label":"Quantity Purchased","required":"yes","page_number":1},{"Conditions":{},"type":"select","position":12,"label":"Place of Purchase","values":"Trade\/Showroom\nHome Depot\nLowes\/Rona\nMenards\nPlumber\nBuilder\nBrand Website\nOthers","elementCost":{},"page_number":1,"required":"yes"},{"Conditions":{},"type":"file","position":13,"label":"Upload Purchase Receipt*","imageMultiple":"yes","imagenoMultiple":"5","enable_drag_and_drop":"yes","required":"yes","page_number":1,"infoMessage":"Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,"},{"Conditions":{},"type":"checkbox","position":14,"label":"Please sign me up to receive the American Standard Newsletter","page_number":1},{"Conditions":{},"type":"radio","position":15,"label":"How likely are you to recommend American Standard to a colleague or friend?","values":"1\n2\n3\n4\n5\n6\n7\n8\n9\n10","elementCost":{},"page_number":1},{"Conditions":{},"type":"checkbox","position":16,"label":"Create a free account now to save and access your warranty details in the future.","customID":"createAccount","page_number":1},{"Conditions":{"SelectedElemenet":"","SelectedElemenetCount":16,"SelectedValues":["On"]},"type":"checkbox","position":17,"label":"I agree to the Terms and Conditions","required":"yes","customID":"terms_conditions","page_number":1},{"Conditions":{},"type":"hidden","position":18,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":19,"label":"Language","page_number":1},{"Conditions":{},"type":"hidden","position":20,"label":"Product Name","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_cAVVuC7XLLFca_A7xtjehA":{"uuid":"cAVVuC7XLLFca_A7xtjehA","form_name":"Canada Contact Us Form","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003ch1\u003e\u003cstrong\u003eForm Submitted Successfully!\u003c\/strong\u003e\u003c\/h1\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#e70026","button_border_radius":"2","form_width":"100%","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"1","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":0,"form_name":"Canada Contact Us Form","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"","flow_trigger_integration":"yes","advance_css":".hidden_field {\ndisplay: none;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n.hidden_field {\ndisplay: none;\n}\n\n.pxFormGenerator iframe {\n height: auto;\n}\n\niframe {\nheight: 100% !important;\n}\n\n.hidden_field {\ndisplay: none;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true',\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n });\n\ndocument.querySelector(\"button[type='submit']\")?.addEventListener(\"click\", function (e) {\n const message = {\n event: \"contactUsClick\",\n element: e.target.tagName,\n href: e.target.href || null\n };\n window.parent.postMessage(message, \"*\");\n });\n \n function hideAllFields() {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n \n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n } = getAddressFormFields();\n \n firstName?.parentElement?.classList.add('hidden_field');\n lastName?.parentElement?.classList.add('hidden_field');\n phone?.parentElement?.classList.add('hidden_field');\n email?.parentElement?.classList.add('hidden_field');\n orderNumber?.parentElement?.classList.add('hidden_field');\n productModelNumber?.parentElement?.classList.add('hidden_field');\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n message?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n submitDiv?.classList.add('hidden_field');\n \n [\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n ].forEach(field =\u003e field?.parentElement?.classList.add('hidden_field'));\n }\n \n function showFieldsForTopic(topic) {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n \n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n } = getAddressFormFields();\n \n const show = (el) =\u003e el?.parentElement?.classList.remove('hidden_field');\n const hide = (el) =\u003e el?.parentElement?.classList.add('hidden_field');\n \n const showAddress = () =\u003e {\n [addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput]\n .forEach(field =\u003e show(field));\n };\n \n showAddress();\n submitDiv?.classList.remove('hidden_field');\n \n switch (topic) {\n case 'Literature Request':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n break;\n case 'Help with a product I have':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.remove('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n case 'Help with orders and\/or returns':\n [firstName, lastName, phone, email, orderNumber, message].forEach(show);\n hide(productModelNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n hideProductSkuErrorMessage();\n break;\n case 'Help with purchasing a product':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n case 'Other':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n }\n \n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: { height: document.body.scrollHeight }\n }, '*');\n }
1420\n \n function replaceCountryField() {\n const countryField = document.querySelector('[name=\"Country\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"Canada\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\", \"required\");\n newCountryField.setAttribute(\"name\", \"Displayed Country\");\n countryField.replaceWith(newCountryField);\n \n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"CA\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\", \"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"Country\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Province\"]');\n if (provinceField) {\n const states = [\n { name: \"Alberta\", code: \"AB\" }, { name: \"British Columbia\", code: \"BC\" }, { name: \"Manitoba\", code: \"MB\" },\n { name: \"New Brunswick\", code: \"NB\" }, { name: \"Newfoundland and Labrador\", code: \"NL\" }, { name: \"Northwest Territories\", code: \"NT\" },\n { name: \"Nova Scotia\", code: \"NS\" }, { name: \"Nunavut\", code: \"NU\" }, { name: \"Ontario\", code: \"ON\" },\n { name: \"Prince Edward Island\", code: \"PE\" }, { name: \"Quebec\", code: \"QC\" }, { name: \"Saskatchewan\", code: \"SK\" },\n { name: \"Yukon\", code: \"YT\" }\n ];\n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n \n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\", \"required\");\n newProvinceField.setAttribute(\"name\", \"Province\");\n provinceField.replaceWith(newProvinceField);\n }\n }\n \n function initSkuDropdown() {\n const productField = document.querySelector('input[name=\"Product Model Number\"]');\n if (!productField) {\n console.error('Product Model Number field not found');\n return;\n }\n productField.setAttribute('autocomplete', 'off');\n const suggestionClass = 'autocomplete-suggestions';\n \n function createSuggestionList(suggestions) {\n const list = document.createElement('ul');\n list.classList.add(suggestionClass);\n \n suggestions.forEach(({ displayText, sku }) =\u003e {\n const item = document.createElement('li');\n item.textContent = displayText;\n item.addEventListener('click', () =\u003e {\n productField.value = sku;\n skuAutoComplete.validated = true;\n removeSuggestionList();\n hideProductSkuErrorMessage();\n productField.classList.remove('error');\n });\n list.appendChild(item);\n });\n return list;\n }\n \n function removeSuggestionList() {\n const existing = document.querySelector(`.${suggestionClass}`);\n if (existing) existing.remove();\n }\n \n function showSuggestions(suggestions) {\n removeSuggestionList();\n if(!suggestions.length) return;\n const list = createSuggestionList(suggestions);\n productField.insertAdjacentElement('afterend', list);\n }\n \n productField.addEventListener('input', async (e) =\u003e {\n hideProductSkuErrorMessage();\n const products = await getProducts(e.target.value);\n showSuggestions(products);\n skuAutoComplete.validated = false;\n });\n \n productField.addEventListener('focus', async () =\u003e {\n const products = await getProducts(productField.value || '');\n showSuggestions(products);\n });\n \n document.addEventListener('click', (e) =\u003e {\n const suggestionBox = document.querySelector(`.${suggestionClass}`);\n if (suggestionBox \u0026\u0026 !suggestionBox.contains(e.target) \u0026\u0026 e.target !== productField) {\
1420n removeSuggestionList();\n }\n });\n \n window.addEventListener('blur', removeSuggestionList);\n }\n \n async function getProducts(productQuery) {\n const query = getSearchProductsQuery(productQuery);\n const response = await fetch('https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n },\n body: JSON.stringify({ query })\n });\n \n if (!response.ok) {\n console.error('Error fetching products:', response.statusText);\n return [];\n }\n \n const data = await response.json();\n return data.data.products.edges.flatMap(({ node: product }) =\u003e\n product.variants.edges.map(({ node: variant }) =\u003e {\n const optionsText = variant.selectedOptions.map(({ value }) =\u003e value).join(' ');\n return {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${variant.sku}`,\n sku: variant.sku,\n title: product.title,\n };\n })\n );\n }\n \n function getSearchProductsQuery(productQuery) {\n return `\n query getProducts {\n products(first: 30, query: \"${productQuery}\") {\n edges {\n node {\n title\n variants(first: 10) {\n edges {\n node {\n sku\n title\n selectedOptions { name value }\n }\n }\n }\n }\n }\n }\n }\n `;\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'CA'\n };\n window.parent.postMessage({ type: 'addressUpdate', data: addressInfo }, '*');\n }\n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n function handleAddressValidation() {\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'CA'\n };\n if (addressInfo.streetLines[0] \u0026\u0026 addressInfo.city \u0026\u0026 addressInfo.postalCode \u0026\u0026 addressInfo.stateOrProvinceCode) {\n window.parent.postMessage({ type: 'addressUpdate', data: addressInfo }, '*');\n }\n }\n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e { updateFormStatus(); handleAddressValidation(); });\n countryInput?.addEventListener('change', () =\u003e { updateFormStatus(); handleAddressValidation(); });\n }\n \n function listenToAddressValidationEvents() {\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return {\n disableForm: handleDisableForm,\n enableForm: handleEnableForm,\n addressValidated: handleAddressValidated,\n selectTopicByUrl: handleSelectTopicByUrl\n };\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n if(!form) return;
1420\n Array.from(form.elements).forEach(el =\u003e { el.disabled = true; });\n }\n function handleEnableForm() {\n const form = document.querySelector('form');\n if(!form) return;\n Array.from(form.elements).forEach(el =\u003e { el.disabled = false; });\n }\n function handleAddressValidated(data) {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n addressInput.value = data.streetLinesToken[0];\n if (data.streetLinesToken[1]) addressInput2.value = data.streetLinesToken[1];\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'CA';\n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n function getFormFields() {\n return {\n firstName: document.getElementById('first_name'),\n lastName: document.getElementById('last_name'),\n phone: document.getElementById('phone'),\n email: document.getElementById('email'),\n orderNumber: document.getElementById('order_number'),\n productModelNumber: document.getElementById('product_model_number'),\n purchaseDate: document.getElementById('purchase_date'),\n message: document.getElementById('message'),\n fileInput: document.getElementsByClassName('file')[0],\n submitButtonContainer: document.getElementsByClassName('form_submit_div')[0],\n submitDiv: document.querySelector('.form_submit_div'),\n };\n }\n \n function getAddressFormFields() {\n return {\n addressInput: document.querySelector('[name=\"Address 1\"]'),\n addressInput2: document.querySelector('[name=\"Address 2\"]'),\n cityInput: document.querySelector('[name=\"City\"]'),\n provinceInput: document.querySelector('[name=\"Province\"]'),\n zipInput: document.querySelector('[name=\"Postal Code\"]'),\n countryInput: document.querySelector('[name=\"Country\"]')\n };\n }\n \n const addressFormStatus = { validated: false };\n const skuAutoComplete = { validated: false };\n \n function addPhoneNumberValidation() {\n const phoneNumberInput = document.querySelector('input[name=\"Phone\"]');\n if (!phoneNumberInput) return;\n phoneNumberInput.addEventListener('input', (e) =\u003e {\n const maxLength = 10;\n if (e.target.value.length \u003e maxLength) {\n e.target.value = e.target.value.slice(0, maxLength);\n }\n });\n }\n \n function handleProductSkuErrorMessage() {\n const { productModelNumber } = getFormFields();\n if(!productModelNumber) return;\n productModelNumber.scrollIntoView({ behavior: 'smooth', block: 'center' });\n productModelNumber.focus();\n productModelNumber.classList.add('error');\n showProductSkuErrorMessage();\n }\n function showProductSkuErrorMessage() {\n let errorMessage = document.querySelector('[data-product-sku-error-message]');\n if(errorMessage) return;\n const { productModelNumber } = getFormFields();\n if(!productModelNumber) return;\n errorMessage = document.createElement('div');\n errorMessage.classList.add('error-message');\n errorMessage.setAttribute('data-product-sku-error-message', '');\n errorMessage.textContent = 'Please select a product from the list.';\n errorMessage.style.color = 'red';\n productModelNumber.insertAdjacentElement('afterend', errorMessage);\n }\n function hideProductSkuErrorMessage() {\n const errorMessage = document.querySelector('[data-product-sku-error-message]');\n if(errorMessage) errorMessage.remove();\n }\n \n function addSubmitButtonCustomAction() {\n const buttonSubmit = document.querySelector('.form_submit_div button');\n if(!buttonSubmit) return;\n buttonSubmit.addEventListener('click', (e) =\u003e {\n const { productModelNumber } = getFormFields();\n const formTest = document.querySelector('form');\n if(formTest) {\n const formData = new FormData(formTest);\n for (const [name, value] of formData.entries()) {\n \/\/ Debug logging, can remove later\n console.log(`${name}: ${value}`);\n }\n }\n const validations = [\n {\n validated: addressFormStatus.val
1420idated,\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getAddressFormFields();\n addressInput?.scrollIntoView({ behavior: 'smooth', block: 'center' });\n }\n },\n {\n validated: skuAutoComplete.validated || !productModelNumber || productModelNumber.value.trim() === '',\n onError: handleProductSkuErrorMessage\n }\n ];\n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n });\n }\n \n function addDropzoneConfigs() {\n const dz = window.Dropzone ? Dropzone.forElement('.dropzone') : null;\n if (!dz) { console.error('Dropzone not found'); return; }\n dz.options.acceptedFiles = 'image\/*,application\/pdf';\n document.querySelectorAll('.dz-hidden-input').forEach(input =\u003e {\n input.setAttribute('accept', dz.options.acceptedFiles);\n });\n }\n \n function handleSelectTopicByUrl() {\n const setOption = () =\u003e {\n const selectElement = document.getElementById('topic');\n if (selectElement) {\n selectElement.value = 'Help with purchasing a product';\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n selectElement.dispatchEvent(new Event('input', { bubbles: true }));\n const option = selectElement.querySelector('option[value=\"Help with purchasing a product\"]');\n if (option) {\n option.selected = true;\n option.dispatchEvent(new Event('change', { bubbles: true }));\n }\n } else {\n setTimeout(setOption, 100);\n }\n };\n setOption();\n setTimeout(setOption, 1000);\n }\n \n function handleTopicSelection() {\n const topicSelect = document.getElementById('topic');\n topicSelect?.addEventListener('change', (event) =\u003e {\n showFieldsForTopic(event.target.value);\n });\n }\n \n function addTabindexToformFields() {\n document.querySelectorAll('.form_generater_form_div label').forEach(label =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = 'EN';\n if (hostname.includes('americanstandard.ca')) {\n language = path.startsWith('\/fr') ? 'FR' : 'EN';\n } else if (hostname.includes('americanstandard.mx')) {\n language = path.startsWith('\/en') ? 'EN' : 'ES';\n } else if (hostname.includes('americanstandard-us.com')) {\n language = 'EN';\n }\n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) webUrlInput.value = hostname; else console.warn('Web URL input not found.');\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) languageInput.value = language; else console.warn('Language input not found.');\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') setWebUrl(event.data.href);\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n document.addEventListener('DOMContentLoaded', function () {\n hideAllFields();\n handleTopicSelection();\n addTabindexToformFields();\n replaceCountryField();\n replaceProvinceField();\n addSubmitButtonCustomAction();\n validationAddress();\n listenToAddressValidationEvents();\n addDropzoneConfigs();\n initSkuDropdown();\n getParentHref();\n addPhoneNumberValidation();\n BlurValidator.init();\n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: { height: document.body.scrollHeight }\n }, '*');\n });\n ","formElements":[{"Conditions":{},"type":"select","position":0,"label":"Select a Topic","placeholder":"Select a Topic","required":"yes","values":"Literature Request\nHelp with a product I have\nOther","elementCost":{},"customID":"topic","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"First Name","halfwidth":"yes","required":"yes","customID":"first_name","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Last Name","halfwidth":"yes","required":"yes","customID":"last_name","page_number":1},{"type":"text","position":3,"label":"Address 1","required":"yes","customID":"addressline1","page_number":1,"Conditions":{}},{"Conditions":{},"type":"text","position":4,"label":"Address 2","customID":"addressline2","page_number":1},{"type":"text","position":5,"label":"City","halfwidth":"yes","required":"yes","customID":"city","page_number":1,"Conditions":{}},{"type":"textarea","position":6,"label":"State","limitCharacters":"2","halfwidth":"yes","inputHeight":"32","required":"yes","customID":"province","page_number":1,"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Literature Request","Help with a product I have","Other"],"SelectedValue":"Literature Request"}},{"type":"text","position":7,"label":"Postal Code","halfwidth":"yes","required":"yes","customID":"zipcode","page_number":1,"Conditions":{}},{"type":"textarea","position":8,"label":"Country","limitCharacters":"3","halfwidth":"yes","required":"yes","inputHeight":"32","customID":"country","page_number":1,"Conditions":{}},{"type":"phone","position":9,"label":"Phone","customID":"phone","page_number":1,"phone_validate_field":"no","required":"yes","Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Literature Request","Help with a product I have","Other"],"SelectedValue":"Literature Request"},"default_country_code":"Canada +1"},{"Conditions":{},"type":"email","position":10,"required":"yes","email_confirm":"yes","label":"Email","customID":"email","page_number":1},{"Conditions":{},"type":"text","position":11,"label":"Product Model Number","customID":"product_model_number","infoMessage":"(Model Number can be found on the Installation Guide or Purchase Receipt)","page_number":1},{"Conditions":{},"type":"newdate","position":12,"label":"Purchase Date","disable_future_dates":"yes","date_limit":"no","page_number":1,"placeholder":"mm\/dd\/yyyy","customID":"purchase_date"},{"Conditions":{},"type":"textarea","position":13,"label":"Message","placeholder":"Enter Your Message Here","required":"yes","customID":"message","page_number":1},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"Operator":"ONE","SelectedValues":["Help with a product I have"],"SelectedValue":"Help with a product I have"},"type":"file","position":14,"label":"Drag and Drop Files","imageMultiple":"yes","enable_drag_and_drop":"yes","customID":"file_drag_drop","customClass":"files","page_number":1,"placeholder":"Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,","infoMessage":"Images should total less than 10MB","required":"yes"},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"SelectedValues":["Other"],"SelectedValue":"Other"},"type":"file","position":15,"label":"Drag and Drop Files ","imageMultiple":"yes","enable_drag_and_drop":"yes","placeholder":"Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted.","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,","customClass":"files","customID":"file_drag_drop","page_number":1},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"SelectedValues":["Help with a product I have","Other"],"SelectedValue":"Help with a product I have","Operator":"OR"},"type":"paragraph","position":16,"label":"Label (17)","paragraph":"\u003cp\u003ePhotos are required for product identification. They should include clear, well-lit photos of the entire American Standard product and close-ups of any visible numbers.\u0026nbsp;\u003ca data-href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/p
1420ortlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\" href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/portlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\"\u003e\u003cstrong\u003eHere\u0026rsquo;s\u003c\/strong\u003e\u003c\/a\u003e\u0026nbsp;some further guidance for the quickest response.\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"hidden","position":17,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":18,"label":"Language","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_DQY6ACMdaPX4_bmRyed2jQ":{"uuid":"DQY6ACMdaPX4_bmRyed2jQ","form_name":"Become an Authorized American Standard Dealer","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003ch2\u003e\u003cstrong\u003eThank you for your interest in selling American Standard products!\u003c\/strong\u003e\u003cbr \/\u003e\n\u003cbr \/\u003e\nWe will review your request and get back to you within 2 weeks.\u003c\/h2\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#000000","input_font_clr":"#000000","button_align":"leftBtn","button_clr":"#fff","button_back_clr":"#e70025","button_border_radius":"2","form_width":"1340px","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":0,"label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#e70025","btn_border_size":"1","form_name":"Become an Authorized American Standard Dealer","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","custommessage":{"province":"State"},"input_placeholder_clr":"#000000","advance_css":".formElement_6 {width: 50% !important;}\n\nli {\n margin-left: 24px;\n}\n\n.form_generater_form_div {\nfont-size: 16px;\nfont-family: sans-serif !important\ncolor: #1C1C1E;\nletter-spacing: 0;\n}\n\n.form_generater_form_div p {\nfont-size: 16px;\nfont-family: 'Helvetica' !important;\ncolor: #1C1C1E !important;\nletter-spacing: 0;\nfont-weight: 200;\n}\n\n.radio-inline {\ndisplay: block;\n font-size: 16px;\n}\n\n.radio-inline label {\n font-size: 14px;\npadding: 4px 0;\n}\n\ninput, textarea, select:focus, .checkbox-inline label, .checkbox-inline input[type=\"checkbox\"] + label, .radio-inline label, .radio-inline input[type=\"radio\"] + label, .image label, .file label, .signature label {\n color: #1C1C1E;\n font-size: 14px;\nfont-family: sans-serif !important\n}\n\n.only_label.bold {\nfont-weight: bold;\n}\n\n.block_label, .header_column1, .header_column2 {\nfont-family: sans-serif !important\n}\n\n.formElement_29,\n.formElement_35 {\ndisplay: none;\n}\n\n.col-sm-6 {\n padding-bottom: 0 !important;\n margin-bottom: 1.6em !important;\n}\n\n.col-sm-6 [data-blur-error] {\n position: absolute;\n bottom: 0;\n transform: translateY(100%);\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n})();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true',\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n });\n\nfunction setAllAddressFormRequiredFields() {\n const addressFormElements = document.querySelectorAll(\".address\");\n const requiredAddressFormElements = Array.from(addressFormElements).filter(formElement =\u003e {\n const label = formElement.querySelector(\"label\");\n return label?.textContent.trim().endsWith(\"*\");\n });
1420\n \n requiredAddressFormElements.forEach(formElement =\u003e {\n setAddressFormRequiredFields(formElement);\n });\n }\n \n function setAddressFormRequiredFields(addressFormElement) {\n const requiredFields = [\"Address line 1\", \"City\", \"Province\", \"Zip code\", \"Country\"];\n \n requiredFields.forEach(fieldName =\u003e {\n const field = addressFormElement.querySelector(\n `input[name=\"${fieldName}\"], select[name=\"${fieldName}\"]`\n );\n if (!field) return;\n \n field.setAttribute(\"required\", \"required\");\n field.setAttribute(\"aria-required\", \"true\");\n field.classList.add(\"required\");\n \n const label = field.closest(\".form-group\")?.querySelector(\"label\");\n if (label \u0026\u0026 !label.textContent.trim().endsWith(\"*\")) {\n label.textContent = label.textContent.trim() + \"*\";\n }\n });\n }\n \n function removeLabelTabindex() {\n const labels = document.querySelectorAll(\"form label[tabindex]\");\n labels.forEach(label =\u003e {\n label.removeAttribute(\"tabindex\");\n });\n }\n \n function addPhoneNumberLimit() {\n const phoneNumberInputs = document.querySelectorAll(\".form_phone input\");\n \n phoneNumberInputs.forEach(input =\u003e {\n input.setAttribute(\"maxlength\", \"10\");\n });\n \n phoneNumberInputs.forEach(input =\u003e {\n input.addEventListener(\"input\", function(e) {\n const value = e.target.value.toString();\n const numericValue = value.replace(\/\\D\/g, \"\");\n \n if (numericValue.length \u003e 10) {\n e.target.value = numericValue.slice(0, 10);\n } else {\n e.target.value = numericValue;\n }\n });\n });\n }\n \n function addZipCodeLimit() {\n const zipCodeInputs = document.querySelectorAll(\"input[name='Zip code']\");\n \n zipCodeInputs.forEach(input =\u003e {\n input.setAttribute(\"maxlength\", \"10\");\n });\n }\n \n function syncCheckbox(companyInputSelector, checkboxSelector) {\n const companyInput = document.querySelector(companyInputSelector);\n const checkbox = document.querySelector(checkboxSelector);\n \n if (!companyInput || !checkbox) return;\n \n function sync() {\n const hasValue = companyInput.value.trim() !== \"\";\n if (checkbox.checked !== hasValue) {\n checkbox.checked = hasValue;\n checkbox.setAttribute(\"aria-checked\", hasValue.toString());\n checkbox.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n }\n \n companyInput.addEventListener(\"input\", sync);\n sync();\n }\n \n document.addEventListener(\"DOMContentLoaded\", function () {\n setAllAddressFormRequiredFields();\n removeLabelTabindex();\n addPhoneNumberLimit();\n addZipCodeLimit();\n syncCheckbox(\"#company_name_supplier_a\", \"[for='checkbox_supplier_a'] input\");\n syncCheckbox(\"#company_name_supplier_b\", \"[for='checkbox_supplier_b'] input\");\n BlurValidator.init();\n });","formElements":[{"Conditions":{},"type":"paragraph","position":0,"label":"Label (1)","paragraph":"\u003cp\u003e\u003cspan style=\"color:#000000;\"\u003e\u003cstrong\u003eBusiness Contact Information \u0026ndash; Required Section\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cp\u003e\u003cspan style=\"color:#000000;\"\u003ePlease complete all required fields below. Incomplete entries may delay your application or may not be accepted.\u003c\/span\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"headings","position":1,"label":"Label (1)","headings":"\u003cp\u003e\u003cspan style=\"color:#000000;\"\u003e\u003cstrong data-end=\"279\" data-start=\"250\"\u003eCompany \u0026amp; Contact Details\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Registered Business Name","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":3,"label":"Full Name of Designated Company Representative","required":"yes","page_number":1,"halfwidth":"yes"},{"Conditions":{},"type":"text","position":4,"label":"Representativeâs Title\/Position","required":"yes","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"email","position":5,"required":"yes","email_confirm":"yes","label":"Representativeâs Email","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"phone","position":6,"label":"Business Phone Number","required":"yes","customClass":"form_phone","customID":"business_phone_number","page_number":1},{"Conditions":{},"type":"address","position":7,"label":"Business Location Details","required":"yes","page_number":1},{"Conditions":{},"type":"radio","position":8,"label":"Where do you intend to sell American Standard products?","required":"yes","values":"In a physical store\nOnline\nBoth","elementCost":{},"page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"space","position":9,"label":"Label (9)","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"paragraph","position":10,"label":"Label (10)","paragraph":"\u003cp data-end=\"236\" data-start=\"52\"\u003e\u003cspan style=\"color:#000000;\"\u003e\u003cstrong data-end=\"95\" data-start=\"52\"\u003eWebsite Details for American Standard Product Sales\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cp data-end=\"236\" data-start=\"52\"\u003e\u003cspan style=\"color:#000000;\"\u003ePlease provide names(s) and URL(s) of the websites that you would like to sell American Standard\u0026nbsp;on, including all owned (DTC) sites and marketplaces.\u003c\/span\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"label","position":11,"label":"Site A","customClass":"bold","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"SelectedValues":["Online","Both"],"SelectedValue":"Online","Operator":"OR"},"type":"text","position":12,"label":"Website Name","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"url","position":13,"label":"Website URL","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"label","position":14,"label":"Site B","customClass":"bold","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"SelectedValues":["Online","Both"],"SelectedValue":"Online","Operator":"OR"},"type":"text","position":15,"label":"Website Name","halfwidth":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"url","position":16,"label":"Website URL","halfwidth":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"label","position":17,"label":"Site C","customClass":"bold","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"SelectedValues":["Online","Both"],"SelectedValue":"Online","Operator":"OR"},"type":"text","position":18,"label":"Website Name","halfwidth":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"SelectedValues":["Online","Both"],"SelectedValue":"Online","Operator":"OR"},"type":"url","position":19,"label":"Website URL","halfwidth":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"SelectedValues":["Online","Both"],"SelectedValue":"Online","Operator":"OR"},"type":"label","position":20,"label":"Site D","customClass":"bold","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"text","position":21,"label":"Website Name","halfwidth":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Where do you intend to sell American Standard products?","SelectedElemenetCount":8,"Operator":"OR","SelectedValues":["Online","Both"],"SelectedValue":"Online"},"type":"url","position":22,"label":"Website URL","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"space","position":23,"label":"Label (23)","page_number":1},{"Conditions":{},"type":"paragraph","position":24,"label":"Label (24)","paragraph":"\u003cp data-end=\"253\" data-start=\"76\"\u003e\u003cspan style=\"color:#000000;\"\u003e\u003cstrong data-end=\"138\" data-start=\"76\"\u003eSupplier Information for American Standard Products \u0026ndash; Required Section\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cp data-end=\"253\" data-start=\"76\"\u003e\u003cspan style=\"color:#000000;\"\u003ePlease complete all required fields below. Incomplete entries may delay your application or may not be accepted.\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cp data-end=\"525\" data-start=\"255\"\u003e\u003cspan style=\"color:#000000;\"\u003eYou are required to provide complete details for all individuals or businesses from whom you currently source American Standard products. Include full legal names and complete mailing addresses. If you have more than one supplier please fill out all fields for additional suppliers.\u003c\/span\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"headings","position":25,"label":"Label (25)","headings":"\u003cp\u003e\u003cstrong data-end=\"544\" data-start=\"527\"\u003eMain Supplier\u003c\/strong\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"text","position":26,"label":"Full Company Name","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{},"type":"address","position":27,"label":"Company Address","required":"yes","page_number":1},{"Conditions":{},"type":"headings","position":28,"label":"Label (28)","headings":"\u003cp\u003e\u003cspan style=\"color:#000000;\"\u003e\u003cstrong data-end=\"712\" data-start=\"687\"\u003eAdditional Supplier A\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"checkbox","position":29,"label":"Additional Supplier A","customID":"checkbox_supplier_a","page_number":1},{"Conditions":{},"type":"text","position":30,"label":"Full Company Name","halfwidth":"yes","customID":"company_name_supplier_a","page_number":1},{"Conditions":{"SelectedElemenet":"Additional Supplier A","SelectedElemenetCount":29,"SelectedValues":["Off"],"SelectedValue":"Off"},"type":"address","position":31,"label":"Company Address","page_number":1},{"Conditions":{"SelectedElemenet":"Additional Supplier A","SelectedElemenetCount":29,"SelectedValues":["On"],"SelectedValue":"On"},"type":"address","position":32,"label":"Company Address","required":"yes","page_number":1},{"Conditions":{},"type":"headings","position":33,"label":"Label (33)","headings":"\u003cp\u003e\u003cspan style=\"color:#000000;\"\u003e\u003cstrong data-end=\"712\" data-start=\"687\"\u003eAdditional Supplier B\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"text","position":34,"label":"Full Company Name","halfwidth":"yes","customID":"company_name_supplier_b","page_number":1},{"Conditions":{},"type":"checkbox","position":35,"label":"Additional Supplier B","customID":"checkbox_supplier_b","page_number":1},{"Conditions":{"SelectedElemenet":"Additional Supplier B","SelectedElemenetCount":35,"SelectedValues":["Off"],"SelectedValue":"Off"},"type":"address","position":36,"label":"Company Address","page_number":1},{"Conditions":{"SelectedElemenet":"Additional Supplier B","SelectedElemenetCount":35,"SelectedValues":["On"],"SelectedValue":"On"},"type":"address","position":37,"label":"Company Address","required":"yes","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_IIFVxpkB7eH-r_uSLInNKQ":{"uuid":"IIFVxpkB7eH-r_uSLInNKQ","form_name":"Canada Product Warranty - French","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003e\u003cstrong\u003eFormulaire soumis avec succ\u0026egrave;s\u0026nbsp;!\u003c\/strong\u003e\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"leftBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Canada Product Warranty - French","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","advance_css":".autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true',\n test: (value) =\u003e value.trim() !== '',\n message: 'Ce champ est obligatoire.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Veuillez entrer une adresse courriel valide.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Veuillez entrer un numéro de téléphone valide.'\n });\n\nfunction setFormAttributes() {\n const attributes = [\n { selector: '#form_input_0', attributes: { maxlength: '40' } },\n { selector: '#form_input_1', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Prénom\"]', attributes: { maxlength: '15' } },\n { selector: '#form_input_3', attributes: { maxlength: '80' } },\n { selector: '#form_input_4', attributes: { maxlength: '100' } },\n { selector: 'input[name=\"Address line 1\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"Address line 2\"]', attributes: { maxlength: '255' } },\n { selector: 'input[name=\"City\"]', attributes: { maxlength: '40' } },\n { selector: 'input[name=\"Province\"]', attributes: { maxlength: '80' } },\n { selector: 'input[name=\"Zip code\"]', attributes: { maxlength: '20' } },\n { selector: 'select[name=\"SKU ou nom de produit\"]', attributes: { } },\n { selector: 'input[name=\"Product Name\"]', attributes: { maxlength: '4000' } },\n { selector: '#form_input_11', attributes: { min: '0', max: '10' } },\n { selector: 'input[name=\"Place of Purchase\"]', attributes: { maxlength: '50' } },\n { selector: 'input[name=\"Installed By\"]', attributes: { maxlength: '50' } }\n ];
1420\n \n attributes.forEach(({ selector, attributes }) =\u003e {\n const element = document.querySelector(selector);\n if (element) {\n Object.entries(attributes).forEach(([key, value]) =\u003e {\n element.setAttribute(key, value);\n });\n } else {\n console.log(`Selector not found: ${selector}`);\n }\n });\n }\n \n function replaceCountryField() {\n const countryField = document.querySelector('[name=\"Pays\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"Canada\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\");\n newCountryField.classList.add(\"required\");\n newCountryField.setAttribute(\"name\", \"Pays affiché\");\n countryField.replaceWith(newCountryField);\n \n \n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"CA\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\");\n countryFieldHidden.classList.add(\"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"Pays\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Province\"]');\n if (provinceField) {\n const states = [\n { name: \"Alberta\", code: \"AB\" },\n { name: \"Colombie-Britannique\", code: \"BC\" },\n { name: \"Manitoba\", code: \"MB\" },\n { name: \"Nouveau-Brunswick\", code: \"NB\" },\n { name: \"Terre-Neuve-et-Labrador\", code: \"NL\" },\n { name: \"Nouvelle-Ãcosse\", code: \"NS\" },\n { name: \"Ontario\", code: \"ON\" },\n { name: \"Ãle-du-Prince-Ãdouard\", code: \"PE\" },\n { name: \"Québec\", code: \"QC\" },\n { name: \"Saskatchewan\", code: \"SK\" },\n { name: \"Territoires du Nord-Ouest\", code: \"NT\" },\n { name: \"Nunavut\", code: \"NU\" },\n { name: \"Yukon\", code: \"YT\" }\n ];\n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n \n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Province\");\n \n provinceField.replaceWith(newProvinceField);\n \n const labelElement = document.querySelector('label[aria-label=\"Province\"]');\n if (labelElement) {\n \/\/labelElement.textContent = \"State*\";\n }\n \n }\n }\n \n function disableLabelTabbing() {\n document.querySelectorAll('#formGeneratorForm label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function phoneNumberLimit () {\n const phoneNumberInput = document.querySelector('#formGeneratorForm input[name=\"Prénom\"]');\n \n if (!phoneNumberInput) {\n console.warn(\"Prénom number input not found.\");\n return;\n }\n \n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 15;\n e.target.value = e.target.value.slice(0, maxLength);\n });\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'CA'\n };\n \n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n \n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();
1420\n \n function handleAddressValidation() {\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'CA'\n };\n \n if (\n addressInfo.streetLines[0] \u0026\u0026\n addressInfo.city \u0026\u0026\n addressInfo.postalCode \u0026\u0026\n addressInfo.stateOrProvinceCode\n ) {\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n }\n \n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n \n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n countryInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n }\n \n function listenToAddressValidationEvents() {\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return {\n \"disableForm\": handleDisableForm,\n \"enableForm\": handleEnableForm,\n \"addressValidated\": handleAddressValidated\n }\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = true;\n });\n }\n \n function handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = false;\n });\n }\n \n function handleAddressValidated(data) {\n console.log(\"handleAddressValidated\", data);\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n \n addressInput.value = data.streetLinesToken[0];\n addressInput2.value = data.streetLinesToken[1] || '';\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'CA';\n \n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n const addressFormStatus = {\n validated: false\n }\n \n const skuAutoComplete = {\n validated: false,\n selectedSku: null\n }\n \n function getFormAddressFields() {\n return {\n addressInput: document.querySelector('[name=\"Rue 1\"]'),\n addressInput2: document.querySelector('[name=\"Rue 2\"]'),\n cityInput: document.querySelector('[name=\"Ville\"]'),\n provinceInput: document.querySelector('[name=\"Province\"]'),\n zipInput: document.querySelector('[name=\"Code postal\"]'),\n countryInput: document.querySelector('[name=\"Pays\"]')\n }\n }\n \n function addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n if (!buttonSubmit) {\n console.error('[ERROR] Bouton soumettre non trouvé!');\n return;\n }\n buttonSubmit.addEventListener('click', (e) =\u003e {\n console.log('[DEBUG] Clic sur le bouton soumettre');\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getFormAddressFields();\n console.log(\"submit button clicked:\", countryInput.value);\n \n \/\/ Vérification stricte du SKU avant validation des adresses\n const productField = document.querySelector('select[name=\"SKU ou nom de produit\"]') || document.querySelector('input[name=\"SKU ou nom de produit\"]');\n if (!skuAutoComplete.validated || !skuAutoComplete.selectedSku || (productField \u0026\u0026 productField.value.trim() !== skuAutoComplete.selectedSku)) {\n e.preventDefault();\n e.stopPropagation();\n handleProductSkuErrorMessage();\n return;\n }\n \n const validations = [\n {\n validated: skuAutoComplete.validated,\n onError: handleProductSkuErrorMessage,\n }
1420,\n {\n validated: addressFormStatus.validated,\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getFormAddressFields();\n \n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n }\n ];\n \n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n }\n \n function handleProductSkuErrorMessage() {\n const productField = document.querySelector('select[name=\"SKU ou nom de produit\"]') || document.querySelector('input[name=\"SKU ou nom de produit\"]');\n if (!productField) return;\n console.log('[DEBUG] handleProductSkuErrorMessage - productField:', productField);\n productField.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productField.focus();\n productField.classList.add('error');\n const errorMessage = document.createElement('div');\n errorMessage.classList.add('error-message');\n errorMessage.textContent = 'Veuillez sélectionner un produit valide dans la liste déroulante.';\n errorMessage.style.color = 'red';\n productField.insertAdjacentElement('afterend', errorMessage);\n }\n \n function removeProductSkuErrorMessage() {\n const productField = document.querySelector('select[name=\"SKU ou nom de produit\"]') || document.querySelector('input[name=\"SKU ou nom de produit\"]');\n if (!productField) return;\n const errorMessage = productField.parentNode?.querySelector('.error-message');\n if (errorMessage) {\n errorMessage.remove();\n }\n productField.classList.remove('error');\n }\n \n function initSkuDropdown() {\n let productField = document.querySelector('select[name=\"SKU ou nom de produit\"]') || document.querySelector('input[name=\"SKU ou nom de produit\"]')\n console.log('[DEBUG] Champ produit:', productField);\n if (!productField) {\n console.error('[ERROR] Champ produit non trouvé!');\n return;\n }\n const productnameField = document.querySelector('input[name=\"Product Name\"]')\n const searchInputId = 'product_sku_search_input';\n const suggestionListId = 'product_sku_suggestion_list';\n const suggestionItemClass = 'product-sku-suggestion-item';\n let searchDebounceTimer = null;\n let activeSearchRequestId = 0;\n let productsByDisplayText = new Map();\n let suppressSearchReset = false;\n let currentSuggestions = [];\n \n productField.classList.add('product-sku-select-hidden');\n productField.setAttribute('tabindex', '-1');\n productField.setAttribute('aria-hidden', 'true');\n \n const productFieldContainer = productField.parentElement;\n if (productFieldContainer \u0026\u0026 getComputedStyle(productFieldContainer).position === 'static') {\n productFieldContainer.style.position = 'relative';\n }\n \n function getOrCreateSearchInput() {\n let searchInput = document.querySelector(`#${searchInputId}`);\n if (searchInput) return searchInput;\n \n searchInput = document.createElement('input');\n searchInput.type = 'text';\n searchInput.id = searchInputId;\n searchInput.className = 'form-control product-sku-search';\n searchInput.placeholder = 'Tapez pour rechercher par nom de produit ou numéro de modèle';\n searchInput.setAttribute('autocomplete', 'off');\n searchInput.setAttribute('aria-label', 'Rechercher un produit dans la liste déroulante');\n \n productField.insertAdjacentElement('beforebegin', searchInput);\n return searchInput;\n }\n \n function getOrCreateSuggestionList() {\n let suggestionList = document.querySelector(`#${suggestionListId}`);\n if (suggestionList) return suggestionList;\n \n suggestionList = document.createElement('ul');\n suggestionList.id = suggestionListId;\n suggestionList.className = 'product-sku-suggestion-list';\n suggestionList.hidden = true;\n productField.insertAdjacentElement('beforebegin', suggestionList);\n return suggestionList;\n }\n \n const searchInput = getOrCreateSearchInput();\n const suggestionList = getOrCreateSuggestionList();\n \n function hideSuggestionList() {\n suggestionList.hidden = true;\n suggestionList.innerHTML = '';\n currentSuggestions = [];\n }\n \n function showLoadingSuggestions() {\n suggestionList.innerHTML = '';\n \n const loadingItem = document.createElement('li');\n loadingItem.className = 'product-sku-suggestion-item product-sku-suggestion-item--loading';\n loadingItem.setAttribute('aria-disabled', 'true');\n loadingItem.innerHTML = `\n \u003cspan class=\"product-sku-loading-dot\"\u003e\u003c\/span\u003e\n \u003cspan\u003eChargement des résultats...\u003c\/span\u003e\n `;\n \n suggestionList.appendChild(loadingItem);\n suggestionList.hidden = false;\n }
1420\n \n function renderSuggestionList(products) {\n currentSuggestions = products;\n suggestionList.innerHTML = '';\n \n if (!products.length) {\n const noResults = document.createElement('li');\n noResults.className = suggestionItemClass;\n noResults.textContent = 'Aucun résultat trouvé';\n noResults.setAttribute('aria-disabled', 'true');\n suggestionList.appendChild(noResults);\n suggestionList.hidden = false;\n return;\n }\n \n products.slice(0, 20).forEach((item) =\u003e {\n const option = document.createElement('li');\n option.className = suggestionItemClass;\n option.setAttribute('role', 'option');\n option.setAttribute('aria-selected', 'false');\n option.dataset.displayText = item.displayText;\n option.dataset.sku = item.sku;\n option.dataset.title = item.title || '';\n option.textContent = item.displayText;\n \n option.addEventListener('pointerdown', (event) =\u003e {\n event.preventDefault();\n event.stopPropagation();\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: item.sku, title: item.title || '' });\n searchInput.value = item.displayText;\n hideSuggestionList();\n });\n \n option.addEventListener('mouseenter', () =\u003e {\n suggestionList.querySelectorAll('[aria-selected=\"true\"]').forEach((selected) =\u003e {\n selected.setAttribute('aria-selected', 'false');\n });\n option.setAttribute('aria-selected', 'true');\n });\n \n suggestionList.appendChild(option);\n });\n \n suggestionList.hidden = false;\n }\n \n function selectProduct({ sku, title }) {\n productField.value = sku;\n if (productnameField) productnameField.value = title;\n skuAutoComplete.validated = true;\n skuAutoComplete.selectedSku = sku;\n console.log('[DEBUG] Produit sélectionné:', { sku, title });\n removeProductSkuErrorMessage();\n }\n \n function resetDropdownOptions(placeholderText = 'Veuillez Sélectionner') {\n productField.innerHTML = '';\n hideSuggestionList();\n productsByDisplayText = new Map();\n const placeholder = document.createElement('option');\n placeholder.value = '';\n placeholder.textContent = placeholderText;\n productField.appendChild(placeholder);\n }\n \n function addProductOptions(products) {\n const added = new Set();\n products.forEach(({ displayText, sku, title }) =\u003e {\n const normalizedSku = (sku || '').trim();\n if (!normalizedSku || added.has(normalizedSku)) return;\n const option = document.createElement('option');\n option.value = normalizedSku;\n option.textContent = displayText;\n option.dataset.productTitle = title || '';\n productField.appendChild(option);\n \n productsByDisplayText.set(displayText, {\n sku: normalizedSku,\n title: title || '',\n displayText\n });\n \n added.add(normalizedSku);\n });\n }\n \n function applySelectionFromInput() {\n const typedValue = (searchInput.value || '').trim();\n if (!typedValue) return false;\n \n const directMatch = productsByDisplayText.get(typedValue);\n if (directMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: directMatch.sku, title: directMatch.title });\n return true;\n }\n \n const caseInsensitiveMatch = Array.from(productsByDisplayText.values()).find(\n (item) =\u003e item.displayText.toLowerCase() === typedValue.toLowerCase()\n );\n \n if (caseInsensitiveMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct({ sku: caseInsensitiveMatch.sku, title: caseInsensitiveMatch.title });\n searchInput.value = caseInsensitiveMatch.displayText;\n return true;\n }\n \n return false;\n }\n \n async function populateProductDropdown() {\n const requestId = activeSearchRequestId;\n if (requestId === 0) return;\n \n resetDropdownOptions('Chargement des produits...');\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n if ((searchInput.value || '').trim().length \u003e 0) {\n showLoadingSuggestions();\n } else {\n hideSuggestionList();\n }
1420\n \n try {\n const products = await getProducts(searchInput.value || '');\n \n if (requestId !== activeSearchRequestId) return;\n \n resetDropdownOptions('Veuillez Sélectionner');\n \n if (!products.length) {\n if ((searchInput.value || '').trim().length \u003e 0) {\n renderSuggestionList([]);\n } else {\n hideSuggestionList();\n }\n return;\n }\n \n addProductOptions(products);\n const inputValue = (searchInput.value || '').trim().toLowerCase();\n const suggestions = products.filter((item) =\u003e {\n if (!inputValue) return true;\n return item.displayText.toLowerCase().includes(inputValue);\n });\n if (inputValue.length \u003e 0) {\n renderSuggestionList(suggestions);\n } else {\n hideSuggestionList();\n }\n } catch (error) {\n console.error('[ERROR] Erreur lors du chargement des produits:', error);\n resetDropdownOptions('Veuillez Sélectionner');\n hideSuggestionList();\n }\n }\n \n activeSearchRequestId += 1;\n populateProductDropdown();\n \n searchInput.addEventListener('input', () =\u003e {\n if (suppressSearchReset) return;\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n if (productnameField) productnameField.value = '';\n removeProductSkuErrorMessage();\n \n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n searchDebounceTimer = setTimeout(() =\u003e {\n populateProductDropdown();\n }, 300);\n });\n \n searchInput.addEventListener('change', () =\u003e {\n if (!applySelectionFromInput()) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n if (productnameField) productnameField.value = '';\n }\n });\n \n searchInput.addEventListener('blur', () =\u003e {\n setTimeout(() =\u003e {\n if (document.activeElement === suggestionList || suggestionList.contains(document.activeElement)) return;\n const hasSelection = applySelectionFromInput();\n if (!hasSelection) {\n hideSuggestionList();\n return;\n }\n hideSuggestionList();\n }, 120);\n });\n \n searchInput.addEventListener('focus', () =\u003e {\n if ((searchInput.value || '').trim().length === 0) hideSuggestionList();\n });\n \n searchInput.addEventListener('keydown', (event) =\u003e {\n if (event.key === 'Escape') {\n hideSuggestionList();\n return;\n }\n \n if (event.key === 'Enter') {\n const matched = applySelectionFromInput();\n if (matched) {\n hideSuggestionList();\n }\n }\n });\n \n productField.addEventListener('change', () =\u003e {\n const selectedOption = productField.options[productField.selectedIndex];\n if (!selectedOption || !selectedOption.value) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n if (productnameField) productnameField.value = '';\n return;\n }\n \n suppressSearchReset = true;\n selectProduct({ sku: selectedOption.value, title: selectedOption.dataset.productTitle || '' });\n searchInput.value = selectedOption.textContent || '';\n suppressSearchReset = false;\n });\n }\n \n async function getProducts(productQuery) {\n console.log('[DEBUG] getProducts appelé avec requête:', productQuery);\n const endpoint = 'https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json';\n const headers = {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n };\n \n const allProducts = [];
1420\n let afterCursor = null;\n let hasNextPage = true;\n let pageCount = 0;\n const maxPages = 20;\n \n while (hasNextPage \u0026\u0026 pageCount \u003c maxPages) {\n const query = getSearchProductsQuery(productQuery, afterCursor);\n console.log('[DEBUG] Envoi de la requête GraphQL, page:', pageCount + 1);\n const response = await fetch(endpoint, {\n method: 'POST',\n headers,\n body: JSON.stringify({ query })\n });\n \n if (!response.ok) {\n console.error('[ERROR] Réponse API non OK:', response.status);\n break;\n }\n const data = await response.json();\n console.log('[DEBUG] Réponse reçue, erreurs:', data?.errors?.length || 0);\n \n const productsConnection = data?.data?.products;\n if (!productsConnection?.edges) {\n console.warn('[WARN] Pas d\\'edges dans la réponse');\n break;\n }\n \n allProducts.push(...productsConnection.edges);\n hasNextPage = Boolean(productsConnection.pageInfo?.hasNextPage);\n afterCursor = productsConnection.pageInfo?.endCursor || null;\n pageCount += 1;\n }\n \n console.log('[DEBUG] Total d\\'éléments chargés:', allProducts.length);\n const result = allProducts.flatMap(({ node: product }) =\u003e\n (product.variants?.edges || []).map(({ node: variant }) =\u003e {\n const optionsText = (variant.selectedOptions || []).map(({ value }) =\u003e value).join(' ');\n return {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${variant.sku}`,\n sku: variant.sku,\n title: product.title,\n };\n })\n );\n \n console.log('[DEBUG] Variantes retournées:', result.length);\n return result;\n }\n \n function getSearchProductsQuery(productQuery, afterCursor = null) { \n const escapedQuery = String(productQuery || '').replace(\/\"\/g, '\\\\\"');\n const queryFilter = escapedQuery.trim().length \u003e 0 ? `, query: \"${escapedQuery}\"` : '';\n const afterFilter = afterCursor ? `, after: \\\"${afterCursor}\\\"` : '';\n return `query getProducts { products(first: 250${queryFilter}${afterFilter}) { pageInfo { hasNextPage endCursor } edges { node { title variants(first: 250) { edges { node { sku title selectedOptions { name value } } } } } } } }`\n }\n \n function addDropzoneConfigs() {\n const dz = Dropzone.forElement(\".dropzone\");\n if(!dz) {\n console.error(\"Dropzone not found\");\n return;\n }\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n \n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n }\n \n function addPurchaseDateListener() {\n const $purchaseInput = $('input[name=\"Date dâachat\"]');\n const $installationInput = $('input[name=\"Date dâinstallation\"]');\n \n $installationInput.prop('disabled', true);\n \n $purchaseInput.on('dp.change', function (event) {\n const purchaseDate = event.date;\n $installationInput?.data('DateTimePicker')?.minDate(purchaseDate);\n $installationInput.prop('disabled', false);\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = \"EN\";\n }\n \n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n function changeTermsAndConditionsText() {\n const termsAndConditions = document.querySelector('#terms_conditions')?.closest('label');\n if (termsAndConditions) {\n const span = termsAndConditions.querySelector('#terms_conditions');\n termsAndConditions.innerHTML = '';\n termsAndConditions.appendChild(span);\n termsAndConditions.insertAdjacentHTML('beforeend', `\n Jâai lu et jâaccepte les \n \u003ca href=\"https:\/\/fr.americanstandard.ca\/pages\/terms-of-use\"\u003eConditions dâutilisation\u003c\/a\u003e et la \n \u003ca href=\"https:\/\/fr.americanstandard.ca\/pages\/privacy-policy\"\u003ePolitique de confidentialité\u003c\/a\u003e.\n `);\n }\n }\n \n document.addEventListener('DOMContentLoaded', function () {\n \/\/ Add CSS styling for autocomplete suggestions\n console.log('[DEBUG] DOMContentLoaded fired');\n const styleEl = document.createElement('style');\n styleEl.textContent = `\n input.error {\n border-color: #dc3545 !important;\n }\n \n select.error {\n border-color: #dc3545 !important;\n }\n \n .product-sku-search {\n margin-bottom: 8px;\n position: relative;\n background: #fff;\n border: 1px solid #c9c9c9;\n border-radius: 0;\n box-shadow: none;\n color: #111;\n }\n \n .product-sku-select-hidden {\n display: none !important;\n }\n \n .product-sku-suggestion-list {\n position: absolute;\n left: 0;\n right: 0;\n top: calc(100% + 4px);\n z-index: 10000;\n margin: 0;\n padding: 0;\n list-style: none;\n background: #fff;\n border: 1px solid #d0d0d0;\n border-radius: 0;\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);\n max-height: 280px;\n overflow-y: auto;\n }\n \n .product-sku-suggestion-item {\n padding: 12px 14px;\n color: #111;\n font-size: 14px;\n line-height: 1.35;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: 1px solid #eee;\n }\n \n .product-sku-suggestion-item:hover,\n .product-sku-suggestion-item[aria-selected=\"true\"] {\n background: #f3f3f3;\n }\n \n .product-sku-suggestion-item[aria-disabled=\"true\"] {\n color: #777;\n cursor: default;\n }\n \n .product-sku-suggestion-item--loading {\n display: flex;\n align-items: center;\n gap: 10px;\n justify-content: flex-start;\n }\n \n .product-sku-loading-dot {\n width: 10px;\n height: 10px;\n border-radius: 999px;\n background: #111;\n opacity: 0.2;\n animation: productSkuPulse 1s ease-in-out infinite;\n }\n \n @keyframes productSkuPulse {\n 0%, 100% {\n transform: scale(0.75);\n opacity: 0.2;\n }\n 50% {\n transform: scale(1.1);\n opacity: 0.8;\n }\n }\n \n .error-message {\n color: #dc3545;\n font-size: 12px;\n margin-top: 5px;\n }\n `;\n document.head.appendChild(styleEl);\n replaceCountryField();\n replaceProvinceField(); \n setFormAttributes();\n disableLabelTabbing();\n changeTermsAndConditionsText();\n phoneNumberLimit();\n validationAddress();\n addSubmitButtonCustomAction();\n listenToAddressValidationEvents();\n initSkuDropdown();\n addDropzoneConfigs();\n addPurchaseDateListener();\n getParentHref();\n BlurValidator.init();\n console.log('[DEBUG] DOMContentLoaded initialization complete');\n });","flow_trigger_integration":"yes","after_submit_script":"let redirectUrl = \"https:\/\/fr.americanstandard.ca\/pages\/thank-you-page-warranty\";\n\nconst createAccountCheckbox = document.querySelector('label[for=\"createAccount\"]')?.querySelector('input');\n\nif (createAccountCheckbox \u0026\u0026 createAccountCheckbox.checked) {\n redirectUrl += \"?accountCreated=true\";\n}\n\nwindow.top.location.href = redirectUrl;","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Prénom","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"Nom de famille","halfwidth":"yes","required":"yes","page_number":1},{"Conditions":{},"type":"phone","position":2,"label":"Téléphone","default_country_code":"Canada +1","required":"yes","page_number":1},{"type":"email","position":3,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Entreprise","page_number":1},{"Conditions":{},"type":"text","position":5,"label":"Rue 1","customID":"addressline1","page_number":1,"required":"yes"},{"Conditions":{},"type":"text","position":6,"label":"Rue 2","customID":"addressline2","page_number":1},{"Conditions":{},"type":"text","position":7,"label":"Ville","halfwidth":"yes","customID":"city","page_number":1,"required":"yes"},{"Conditions":{},"type":"textarea","position":8,"label":"Province","inputHeight":"32","limitCharacters":"2","halfwidth":"yes","customID":"province","page_number":1,"required":"yes"},{"Conditions":{},"type":"text","position":9,"label":"Code postal","centerfield":"no","halfwidth":"yes","customID":"zipcode","page_number":1,"required":"yes"},{"Conditions":{},"type":"textarea","position":10,"label":"Pays","limitCharacters":"3","halfwidth":"yes","inputHeight":"32","customID":"country","page_number":1,"required":"yes"},{"Conditions":{},"type":"newdate","position":11,"label":"Date dâachat","language":"fr","disable_future_dates":"yes","date_limit":"no","required":"yes","page_number":1},{"Conditions":{},"type":"newdate","position":12,"label":"Date dâinstallation","language":"fr","disable_future_dates":"yes","date_limit":"no","page_number":1},{"Conditions":{},"type":"text","position":13,"label":"Installé par","required":"yes","customID":"installedBy","page_number":1},{"Conditions":{},"type":"select","position":14,"label":"SKU ou nom de produit","infoMessage":"Entrez un nom de produit ou un numéro de modèle et sélectionnez une correspondance dans la liste déroulante. Si aucune correspondance nâest trouvée, veuillez utiliser le nom ou les numéros figurant sur lâemballage","values":"Test 1\nTest 2\nTest 3","elementCost":{},"required":"yes","page_number":1},{"Conditions":{},"type":"text","position":15,"label":"Numéro de série","infoMessage":"Les numéros de série s'appliquent uniquement aux baignoires à porte. Vous trouverez votre numéro de série dans un sac en plastique fixé au cadre intérieur de votre baignoire à porte.","page_number":1},{"Conditions":{},"type":"select","position":16,"label":"Lieu dâachat","values":"Trade\/Showroom\nHome Depot\nLowes\/Rona\nMenards\nPlumber\nBuilder\nBrand Website\nOthers","elementCost":{},"page_number":1,"required":"yes"},{"Conditions":{},"type":"number","position":17,"label":"Quantité achetée","required":"yes","page_number":1},{"Conditions":{},"type":"file","position":18,"label":"Télécharger le reçu dâachat","imageMultiple":"yes","imagenoMultiple":"5","infoMessage":"Seuls les fichiers image (JPG, PNG, TIFF, etc.) et les fichiers PDF sont acceptés.Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted","enable_drag_and_drop":"yes","required":"yes","page_number":1,"allow_type":".Jpeg, .jpg, .pdf, .png, .tif,"},{"Conditions":{},"type":"checkbox","position":19,"label":"Veuillez mâinscrire pour recevoir lâinfolettre dâAmerican Standard.","page_number":1},{"Conditions":{},"type":"radio","position":20,"label":"Quelle est la probabilité que vous recommandiez American Standard à un collègue ou un amiâ¯?","values":"1\n2\n3\n4\n5\n6\n7\n8\n9\n10","elementCost":{},"page_number":1},{"Conditions":{},"type":"checkbox","position":21,"label":"Cliquez ici pour créer un compte et gérer facilement votre garantie.","customID":"createAccount","page_number":1},{"Conditions":{"SelectedElemenet":"Cliquez ici pour créer un compte et gérer facilement votre garantie.","SelectedElemenetCount":21,"SelectedValues":["On"]},"type":"checkbox","position":22,"label":"Jâaccepte les Conditions dâutilisation","customID":"terms_conditions","page_number":1,"required":"yes"},{"Conditions":{},"type":"hidden","position":23,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":24,"label":"Language","page_number":1},{"Conditions":{},"type":"hidden","position":25,"label":"Product Name","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_ktrqFIvkq8kWuZncsvU8yg":{"uuid":"ktrqFIvkq8kWuZncsvU8yg","form_name":"Newsletter Subscription","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003eSUBSCRIBE TO THE AMERICAN STANDARD NEWSLETTER\u003c\/h3\u003e\n","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003ch1\u003eForm Submitted Successfully!\u003c\/h1\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Newsletter Subscription","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","banner_img_height":"200","banner_img_width":"800","form_description":"\u003cp\u003eWe\u0026rsquo;ll send you the latest news about American Standard\u0026nbsp;products, innovations and services, as well as useful home improvement tips.\u003c\/p\u003e\n","flow_trigger_integration":"yes","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true',\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n });\n\nfunction setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"es_MX\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n }\n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n}\n\nfunction getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n}
1420\n\ndocument.addEventListener('DOMContentLoaded', function() {\n getParentHref();\n BlurValidator.init();\n});","formElements":[{"type":"email","position":0,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1,"customID":"Field_17__c"},{"Conditions":{},"type":"text","position":1,"label":"First Name","halfwidth":"yes","customID":"Field_3__c","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Last Name","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"select","position":3,"label":"I am interested in content as a:","placeholder":"Select one","required":"yes","values":"Homeowner\nContractor\nDesigner\nRetailer","elementCost":{},"page_number":1},{"Conditions":{},"type":"phone","position":4,"label":"Phone","page_number":1},{"Conditions":{},"type":"radio","position":5,"label":"I would like to receive text messages.","required":"yes","values":"Yes\nNo","elementCost":{},"page_number":1},{"Conditions":{},"type":"multipleCheckbox","position":6,"label":"Choose which emails you want to receive:","required":"yes","values":"Exclusive Deals and Promotions\nBrand News and the Latest Designs","elementCost":{},"page_number":1},{"Conditions":{},"type":"paragraph","position":7,"label":"Label (8)","paragraph":"\u003cp\u003e\u003csmall\u003e*By selecting Text Messaging, you agree to our\u0026nbsp;\u003ca data-linkto=\"https:\/\/\" href=\"https:\/\/www.grohe.us\/terms-of-use\" title=\"SMS terms\"\u003eSMS terms\u003c\/a\u003e,\u0026nbsp;\u003ca data-linkto=\"https:\/\/\" href=\"https:\/\/www.grohe.us\/privacy-policy\" title=\"privacy policy\"\u003eprivacy policy\u003c\/a\u003e, and to receive notifications related to GROHE at the phone number above. Message and rates may apply. Frequency may vary. Text STOP to 85864 to opt out or HELP for help.\u0026nbsp;\u003c\/small\u003e\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"hidden","position":8,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":9,"label":"Language","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_lvsP5ICdwF3rE5phgVYwvA":{"uuid":"lvsP5ICdwF3rE5phgVYwvA","form_name":"Returns","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003ch1\u003e\u003cstrong\u003eForm Submitted Successfully!\u003c\/strong\u003e\u003c\/h1\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#be0324","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#be0324","btn_border_size":"1","form_name":"Returns","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","flow_trigger_integration":"yes","advance_css":".autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 180px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n\n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n\n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n\n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n\n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n\n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n\n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n\n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n\n function init(selector = '[aria-required=\"true\"], .required', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n\n return { register, init, validate, showError, clearError };\n})();\n\nBlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true' || field.classList.contains('required'),\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n});\n\nBlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n});\n\nBlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n});\n\n\/\/ Customer PO (Order Number): EAS-###### (6 digits)\nconst PO_PATTERN = \/^(EAS-\\d{6,})$\/;\n\nBlurValidator.register('customerPO', {\n priority: 2,\n match: (field) =\u003e field.name === 'Customer PO (Order Number)',\n test: (value) =\u003e value === '' || PO_PATTERN.test(value.trim().toUpperCase()),\n message: 'Please enter a valid Order Number (EAS-######).'\n});\n\nconst skuAutoComplete = { validated: false, selectedSku: null };\n\nfunction injectSkuDropdownStyles() {\n if (document.getElementById('returns-sku-dropdown-styles')) return;\n\n const styleEl = document.createElement('style');\n styleEl.id = 'returns-sku-dropdown-styles';\n styleEl.textContent = `\n input.error {\n border-color: #dc3545 !important;\n }\n\n select.error {\n border-color: #dc3545 !important;\n }\n\n .product-sku-search {\n margin-top: 8px;\n margin-bottom: 8px;\n position: relative;\n background: #fff;\n border: 1px solid #c9c9c9;\n border-radius: 0;\n box-shadow: none;\n color: #111;\n width: 100%;\n }\n\n .product-sku-select-hidden {\n display: none !important;\n }\n\n .product-sku-suggestion-list {\n position: absolute;\n left: 0;\n right: 0;\n top: calc(100% + 4px);\n z-index: 10000;\n margin: 0;\n padding: 0;\n list-style: none;\n background: #fff;\n border: 1px solid #d0d0d0;\n border-radius: 0;\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);\n max-height: 280px;\n overflow-y: auto;\n }\n\n .product-sku-suggestion-item {\n padding: 12px 14px;\n color: #111;\n font-size: 14px;\n line-height: 1.35;\n cursor: pointer;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n border-bottom: 1px solid #eee;\n list-style: none;\n }\n\n .product-sku-suggestion-item:hover,\n .product-sku-suggestion-item[aria-selected=\"true\"] {\n background: #f3f3f3;\n }\n\n .product-sku-suggestion-item[aria-disabled=\"true\"] {\n color: #777;\n cursor: default;\n }\n\n .product-sku-suggestion-item--loading {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n }\n\n .error-message {\n color: #dc3545;\n font-size: 12px;\n margin-top: 5px;\n }\n `;\n\n document.head.appendChild(styleEl);\n}\n\nBlurValidator.register('sku_strict', {\n priority: 0,\n match: (field) =\u003e field.name === 'Product SKU' || field.id === 'product-sku-select',\n test: (value) =\u003e {\n if (!skuAutoComplete.validated || !skuAutoComplete.selectedSku) {\n return false;\n }\n\n return value.trim() === skuAutoComplete.selectedSku;\n },\n message: 'Please select a valid product from the dropdown list.'\n});\n\ndocument.addEventListener('DOMContentLoaded', function () {\n const productField = document.querySelector('select[name=\"Product SKU\"]') || document.querySelector('input[name=\"Product SKU\"]');\n if (!productField) return;\n injectSkuDropdownStyles();\n initSkuDropdown(productField);\n addSkuSubmitGuard(productField);\n});
1420\n\nfunction addSkuSubmitGuard(productField) {\n const form = document.getElementById('formGeneratorForm') || productField.closest('form');\n const submitButton = (form \u0026\u0026 form.querySelector('button[type=submit], input[type=submit]'))\n || document.querySelector('.form_submit_div button[type=submit]');\n\n function guardSkuSelection(event) {\n const visibleField = document.querySelector('#product_sku_search_input') || productField;\n const value = (productField.value || '').trim();\n\n if (!skuAutoComplete.validated || !skuAutoComplete.selectedSku || value !== skuAutoComplete.selectedSku) {\n event.preventDefault();\n event.stopPropagation();\n BlurValidator.showError(visibleField, 'Please select a valid product from the dropdown list.');\n visibleField.focus();\n return false;\n }\n }\n\n if (submitButton) {\n submitButton.addEventListener('click', guardSkuSelection, true);\n }\n\n if (form) {\n form.addEventListener('submit', guardSkuSelection, true);\n }\n}\n\nfunction initSkuDropdown(productField) {\n const searchInputId = 'product_sku_search_input';\n const suggestionListId = 'product_sku_suggestion_list';\n const suggestionItemClass = 'product-sku-suggestion-item';\n let searchDebounceTimer = null;\n let activeSearchRequestId = 0;\n let productsByDisplayText = new Map();\n let suppressSearchReset = false;\n\n productField.id = productField.id || 'product-sku-select';\n productField.classList.add('product-sku-select-hidden');\n productField.setAttribute('tabindex', '-1');\n productField.setAttribute('aria-hidden', 'true');\n\n const productFieldContainer = productField.parentElement;\n if (productFieldContainer \u0026\u0026 getComputedStyle(productFieldContainer).position === 'static') {\n productFieldContainer.style.position = 'relative';\n }\n\n function getOrCreateSearchInput() {\n let searchInput = document.querySelector(`#${searchInputId}`);\n if (searchInput) return searchInput;\n\n searchInput = document.createElement('input');\n searchInput.type = 'text';\n searchInput.id = searchInputId;\n searchInput.className = 'form-control product-sku-search required';\n searchInput.placeholder = 'Type to search by product name or model number';\n searchInput.setAttribute('autocomplete', 'off');\n searchInput.setAttribute('aria-label', 'Search product for dropdown');\n\n productField.insertAdjacentElement('beforebegin', searchInput);\n return searchInput;\n }\n\n function getOrCreateSuggestionList() {\n let suggestionList = document.querySelector(`#${suggestionListId}`);\n if (suggestionList) return suggestionList;\n\n suggestionList = document.createElement('ul');\n suggestionList.id = suggestionListId;\n suggestionList.className = 'product-sku-suggestion-list';\n suggestionList.hidden = true;\n productField.insertAdjacentElement('beforebegin', suggestionList);\n return suggestionList;\n }\n\n const searchInput = getOrCreateSearchInput();\n const suggestionList = getOrCreateSuggestionList();\n\n function hideSuggestionList() {\n suggestionList.hidden = true;\n suggestionList.innerHTML = '';\n }\n\n function showLoadingSuggestions() {\n suggestionList.innerHTML = '';\n\n const loadingItem = document.createElement('li');\n loadingItem.className = `${suggestionItemClass} ${suggestionItemClass}--loading`;\n loadingItem.setAttribute('aria-disabled', 'true');\n loadingItem.textContent = 'Loading results...';\n\n suggestionList.appendChild(loadingItem);\n suggestionList.hidden = false;\n }\n\n function selectProduct(product) {\n productField.value = product.sku;\n skuAutoComplete.validated = true;\n skuAutoComplete.selectedSku = product.sku;\n BlurValidator.clearError(productField);\n BlurValidator.clearError(searchInput);\n }\n\n function resetDropdownOptions(placeholderText = 'Please Select') {\n if (productField.tagName !== 'SELECT') return;\n\n productField.innerHTML = '';\n productsByDisplayText = new Map();\n const placeholder = document.createElement('option');\n placeholder.value = '';\n placeholder.textContent = placeholderText;\n productField.appendChild(placeholder);\n }\n\n function addProductOptions(products) {\n const added = new Set();
1420\n products.forEach((product) =\u003e {\n const normalizedSku = (product.sku || '').trim();\n if (!normalizedSku || added.has(normalizedSku)) return;\n\n if (productField.tagName === 'SELECT') {\n const option = document.createElement('option');\n option.value = normalizedSku;\n option.textContent = product.displayText;\n productField.appendChild(option);\n }\n\n productsByDisplayText.set(product.displayText, product);\n added.add(normalizedSku);\n });\n }\n\n function renderSuggestionList(products) {\n suggestionList.innerHTML = '';\n\n if (!products.length) {\n const noResults = document.createElement('li');\n noResults.className = suggestionItemClass;\n noResults.textContent = 'No results found';\n noResults.setAttribute('aria-disabled', 'true');\n suggestionList.appendChild(noResults);\n suggestionList.hidden = false;\n return;\n }\n\n products.slice(0, 20).forEach((product) =\u003e {\n const option = document.createElement('li');\n option.className = suggestionItemClass;\n option.textContent = product.displayText;\n\n option.addEventListener('pointerdown', (event) =\u003e {\n event.preventDefault();\n event.stopPropagation();\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct(product);\n searchInput.value = product.displayText;\n hideSuggestionList();\n });\n\n suggestionList.appendChild(option);\n });\n\n suggestionList.hidden = false;\n }\n\n function applySelectionFromInput() {\n const typedValue = (searchInput.value || '').trim();\n if (!typedValue) return false;\n\n const directMatch = productsByDisplayText.get(typedValue);\n if (directMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct(directMatch);\n return true;\n }\n\n const caseInsensitiveMatch = Array.from(productsByDisplayText.values()).find((item) =\u003e {\n return item.displayText.toLowerCase() === typedValue.toLowerCase();\n });\n\n if (caseInsensitiveMatch) {\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n selectProduct(caseInsensitiveMatch);\n searchInput.value = caseInsensitiveMatch.displayText;\n return true;\n }\n\n return false;\n }\n\n async function populateProductDropdown() {\n const requestId = activeSearchRequestId;\n if (requestId === 0) return;\n\n resetDropdownOptions('Loading products...');\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n\n if ((searchInput.value || '').trim().length \u003e 0) {\n showLoadingSuggestions();\n } else {\n hideSuggestionList();\n }\n\n try {\n const products = await getProducts(searchInput.value || '');\n\n if (requestId !== activeSearchRequestId) return;\n\n resetDropdownOptions('Please Select');\n addProductOptions(products);\n\n if ((searchInput.value || '').trim().length \u003e 0) {\n renderSuggestionList(products);\n } else {\n hideSuggestionList();\n }\n } catch (error) {\n if (requestId !== activeSearchRequestId) return;\n resetDropdownOptions('Please Select');\n hideSuggestionList();\n console.error('Error fetching products:', error);\n }\n }\n\n activeSearchRequestId += 1;\n populateProductDropdown();\n\n searchInput.addEventListener('input', () =\u003e {\n if (suppressSearchReset) return;\n\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n BlurValidator.clearError(productField);\n BlurValidator.clearError(searchInput);\n\n activeSearchRequestId += 1;\n clearTimeout(searchDebounceTimer);\n searchDebounceTimer = setTimeout(() =\u003e {\n populateProductDropdown();\n }, 300);\n });\n\n searchInput.addEventListener('change', () =\u003e {\n if (!applySelectionFromInput()) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n productField.value = '';\n }\n });\n\n searchInput.addEventListener('blur', () =\u003e {\n setTimeout(() =\u003e {\n if (document.activeElement === suggestionList || suggestionList.contains(document.activeElement)) return;\n const hasSelection = applySelectionFromInput();\n if (!hasSelection) {\n BlurValidator.showError(searchInput, 'Please select a valid product from the dropdown list.');\n hideSuggestionList();\n return;\n }\n hideSuggestionList();\n }, 120);\n });\n\n searchInput.addEventListener('keydown', (event) =\u003e {\n if (event.key === 'Escape') {\n hideSuggestionList();\n return;\n }\n\n if (event.key === 'Enter' \u0026\u0026 applySelectionFromInput()) {\n hideSuggestionList();\n }\n });\n\n productField.addEventListener('change', () =\u003e {\n const selectedOption = productField.options ? productField.options[productField.selectedIndex] : null;\n if (!selectedOption || !selectedOption.value) {\n skuAutoComplete.validated = false;\n skuAutoComplete.selectedSku = null;\n BlurValidator.showError(searchInput, 'Please select a valid product from the dropdown list.');\n return;\n }\n\n suppressSearchReset = true;\n selectProduct({\n sku: selectedOption.value,\n displayText: selectedOption.textContent || selectedOption.value,\n });\n searchInput.value = selectedOption.textContent || '';\n suppressSearchReset = false;\n });\n}\n\nasync function getProducts(productQuery) {\n const endpoint = 'https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json';\n const headers = {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n };\n\n const allProducts = [];
1420\n let afterCursor = null;\n let hasNextPage = true;\n let pageCount = 0;\n const maxPages = 20;\n\n while (hasNextPage \u0026\u0026 pageCount \u003c maxPages) {\n const query = getSearchProductsQuery(productQuery, afterCursor);\n const response = await fetch(endpoint, {\n method: 'POST',\n headers,\n body: JSON.stringify({ query })\n });\n\n if (!response.ok) break;\n const data = await response.json();\n const productsConnection = data?.data?.products;\n if (!productsConnection?.edges) break;\n\n allProducts.push(...productsConnection.edges);\n hasNextPage = Boolean(productsConnection.pageInfo?.hasNextPage);\n afterCursor = productsConnection.pageInfo?.endCursor || null;\n pageCount += 1;\n }\n\n const uniqueBySku = new Map();\n\n allProducts.forEach(({ node: product }) =\u003e {\n (product.variants?.edges || []).forEach(({ node: variant }) =\u003e {\n const sku = (variant.sku || '').trim();\n if (!sku || uniqueBySku.has(sku)) return;\n\n const optionsText = (variant.selectedOptions || []).map(({ value }) =\u003e value).join(' ');\n uniqueBySku.set(sku, {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${sku}`,\n sku,\n title: product.title,\n });\n });\n });\n\n return Array.from(uniqueBySku.values());\n}\n\nfunction getSearchProductsQuery(productQuery, afterCursor = null) {\n const escapedQuery = String(productQuery || '').replace(\/\"\/g, '\\\\\"');\n const queryFilter = escapedQuery.trim().length \u003e 0 ? `, query: \"${escapedQuery}\"` : '';\n const afterFilter = afterCursor ? `, after: \\\"${afterCursor}\\\"` : '';\n\n return `query getProducts { products(first: 250${queryFilter}${afterFilter}) { pageInfo { hasNextPage endCursor } edges { node { title variants(first: 250) { edges { node { sku title selectedOptions { name value } } } } } } } }`;\n}\n\nfunction setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = \"EN\";\n }\n const country = hostname.includes(\"americanstandard.ca\") ? \"CA\" :\n hostname.includes(\"americanstandard.mx\") ? \"MX\" : \"US\";\n \n const countryInput = document.querySelector('input[name=\"Country\"]');\n if (countryInput) {\n countryInput.value = country;\n } else {\n console.warn(\"Country input not found.\");\n }\n\n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n}\n\nfunction getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n}\n\ndocument.addEventListener('DOMContentLoaded', function() {\n \/\/ Make labels non-focusable\n const labels = document.querySelectorAll('label');\n labels.forEach(label =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n getParentHref();\n BlurValidator.init();\n\n const poField = document.querySelector('input[name=\"Customer PO (Order Number)\"]');\n if (poField) {\n \/\/ Normalize to uppercase as the user types (eas-123456 -\u003e EAS-123456)\n poField.addEventListener('input', () =\u003e {\n const pos = poField.selectionStart;\n poField.value = poField.value.toUpperCase();\n poField.setSelectionRange(pos, pos);\n });\n\n \/\/ Block submission when the PO is empty or malformed.\n \/\/ Guard both the submit button click (captured before any submit handler)\n \/\/ and the native form submit (Enter key), since the form may be sent via\n \/\/ the button's click rather than a
1420native submit event.\n function guardSubmit(e) {\n if (poField.value.trim() === '') {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(poField, 'This field is required.');\n poField.focus();\n return false;\n }\n const result = BlurValidator.validate(poField);\n if (!result.valid) {\n e.preventDefault();\n e.stopPropagation();\n BlurValidator.showError(poField, result.message);\n poField.focus();\n return false;\n }\n }\n\n const form = document.getElementById('formGeneratorForm') || poField.closest('form');\n const submitButton = (form \u0026\u0026 form.querySelector('button[type=submit], input[type=submit]'))\n || document.querySelector('.form_submit_div button[type=submit]');\n\n if (submitButton) {\n submitButton.addEventListener('click', guardSubmit, true);\n }\n if (form) {\n form.addEventListener('submit', guardSubmit, true);\n }\n }\n});\n\ndocument.querySelectorAll('label').forEach(label =\u003e {\n if (label.textContent.includes('*')) {\n const text = label.textContent.replace('*', '').trim();\n label.innerHTML = `${text} \u003cspan aria-hidden=\"true\"\u003e*\u003c\/span\u003e`;\n }\n});","custommessage":{"thank_you":"Your response has been sent. Thank you very much.","processing":"Processing..."},"formElements":[{"Conditions":{},"type":"text","position":0,"label":"First Name","halfwidth":"yes","required":"yes","page_number":1,"customClass":"label-text"},{"Conditions":{},"type":"text","position":1,"label":"Last Name","halfwidth":"yes","required":"yes","page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"text","position":3,"label":"Customer PO (Order Number)","required":"yes","page_number":1,"customID":"customer-po-number"},{"Conditions":{},"type":"select","position":4,"label":"Product SKU","required":"yes","values":"Test 1\nTest 2\nTest 3","elementCost":{},"page_number":1},{"Conditions":{},"type":"select","position":5,"label":"Reason for Return","values":"I donât need it anymore\nInaccurate website description\nPackage arrived damaged\nProduct defective or doesnât work\nWrong item shipped","elementCost":{},"page_number":1,"required":"yes"},{"Conditions":{"SelectedElemenet":"Reason for Return","SelectedElemenetCount":5,"SelectedValues":["Inaccurate website description"]},"type":"select","position":6,"label":"What was inaccurate","required":"yes","values":"Incorrect Image\nIncorrect Dimension\nIncorrect Color\nIncorrect Specifications","elementCost":{},"page_number":1},{"Conditions":{},"type":"number","position":7,"label":"Quantity","required":"yes","page_number":1},{"Conditions":{},"type":"hidden","position":8,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":9,"label":"Language","page_number":1},{"Conditions":{},"type":"hidden","position":10,"label":"Country","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_nkDiGRBiFrlrUOq_D8-hkg":{"uuid":"nkDiGRBiFrlrUOq_D8-hkg","form_name":"Contact Us Form","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"\u003ch1\u003e\u003cstrong\u003eForm Submitted Successfully!\u003c\/strong\u003e\u003c\/h1\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#e70026","button_border_radius":"2","form_width":"100%","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"1","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":0,"form_name":"Contact Us Form","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","form_description":"","flow_trigger_integration":"yes","advance_css":".hidden_field {\ndisplay: none;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n.hidden_field {\ndisplay: none;\n}\n\n.pxFormGenerator iframe {\n height: auto;\n}\n\niframe {\nheight: 100% !important;\n}\n\n.hidden_field {\ndisplay: none;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n\n.col-sm-6 {\n padding-bottom: 0 !important;\n margin-bottom: 1.6em !important;\n}\n\n.col-sm-6 [data-blur-error] {\n position: absolute;\n bottom: 0;\n transform: translateY(100%);\n}","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n \/**\n * Register a new validator.\n * @param {string} name\n * @param {Object} config\n * @param {Function} config.match - (field: HTMLElement) =\u003e boolean â does this validator apply?\n * @param {Function} config.test - (value: string, field: HTMLElement) =\u003e boolean â is value valid?\n * @param {string|Function} config.message - error string or (field) =\u003e string\n * @param {number} [config.priority=10] - lower runs first\n *\/\n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n \/**\n * Initialise listeners on every field that matches the selector.\n * Safe to call multiple times â already-bound fields are skipped.\n * @param {string} [selector='[aria-required=\"true\"]']\n * @param {HTMLElement} [scope=document]\n *\/\n function init(selector = '[aria-required=\"true\"], .required', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true' || field.classList.contains('required'),\n test: (value) =\u003e value.trim() !== '',\n message: 'This field is required.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Please enter a valid email address.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Please enter a valid phone number.'\n });\n\nfunction hideAllFields() {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n\n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput, addressTitle\n } = getAddressFormFields();\n\n firstName?.parentElement?.classList.add('hidden_field');\n lastName?.parentElement?.classList.add('hidden_field');\n phone?.parentElement?.classList.add('hidden_field');\n email?.parentElement?.classList.add('hidden_field');\n orderNumber?.parentElement?.classList.add('hidden_field');\n productModelNumber?.parentElement?.classList.add('hidden_field');\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n message?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n submitDiv?.classList.add('hidden_field');\n addressTitle?.classList.add('hidden_field');\n\n [\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n ].forEach(field =\u003e field?.parentElement?.classList.add('hidden_field'));\n}\n\nfunction showFieldsForTopic(topic) {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n\n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput, addressTitle\n } = getAddressFormFields();\n\n const show = (el) =\u003e el?.parentElement?.classList.remove('hidden_field');\n const hide = (el) =\u003e el?.parentElement?.classList.add('hidden_field');\n\n const showAddress = () =\u003e {\n [addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput]\n .forEach(field =\u003e show(field));\n addressTitle?.classList.remove('hidden_field');\n };\n\n showAddress();\n submitDiv?.classList.remove('hidden_field');\n\n switch (topic) {\n case 'Literature Request':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n break;\n\n case 'Help with a product I have':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.remove('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n\n case 'Help with orders and\/or returns':\n [firstName, lastName, phone, email, orderNumber, message].forEach(show);\n hide(productModelNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n hideProductSkuErrorMessage();\n break;\n\n case 'Help with purchasing a product':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n\n case 'Other':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n }\n\n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: {\n height: document.body.scrollHeight\n }\n }, '*');\n}
1420\n\nfunction replaceCountryField() {\n const countryField = document.querySelector('[name=\"Country\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"United States\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\");\n newCountryField.classList.add(\"required\");\n newCountryField.setAttribute(\"name\", \"Displayed Country\");\n countryField.replaceWith(newCountryField);\n\n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"US\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\");\n countryFieldHidden.classList.add(\"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"Country\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n}\n\nfunction replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Province\"]');\n if (provinceField) {\n const states = [\n { name: \"Alabama\", code: \"AL\" }, { name: \"Alaska\", code: \"AK\" }, { name: \"Arizona\", code: \"AZ\" },\n { name: \"Arkansas\", code: \"AR\" }, { name: \"California\", code: \"CA\" }, { name: \"Colorado\", code: \"CO\" }
1420,\n { name: \"Connecticut\", code: \"CT\" }, { name: \"Delaware\", code: \"DE\" }, { name: \"Florida\", code: \"FL\" },\n { name: \"Georgia\", code: \"GA\" }, { name: \"Hawaii\", code: \"HI\" }, { name: \"Idaho\", code: \"ID\" },\n { name: \"Illinois\", code: \"IL\" }, { name: \"Indiana\", code: \"IN\" }, { name: \"Iowa\", code: \"IA\" },\n { name: \"Kansas\", code: \"KS\" }, { name: \"Kentucky\", code: \"KY\" }, { name: \"Louisiana\", code: \"LA\" },\n { name: \"Maine\", code: \"ME\" }, { name: \"Maryland\", code: \"MD\" }, { name: \"Massachusetts\", code: \"MA\" },\n { name: \"Michigan\", code: \"MI\" }, { name: \"Minnesota\", code: \"MN\" }, { name: \"Mississippi\", code: \"MS\" },\n { name: \"Missouri\", code: \"MO\" }, { name: \"Montana\", code: \"MT\" }, { name: \"Nebraska\", code: \"NE\" },\n { name: \"Nevada\", code: \"NV\" }, { name: \"New Hampshire\", code: \"NH\" }, { name: \"New Jersey\", code: \"NJ\" },\n { name: \"New Mexico\", code: \"NM\" }, { name: \"New York\", code: \"NY\" }, { name: \"North Carolina\", code: \"NC\" },\n { name: \"North Dakota\", code: \"ND\" }, { name: \"Ohio\", code: \"OH\" }, { name: \"Oklahoma\", code: \"OK\" },\n { name: \"Oregon\", code: \"OR\" }, { name: \"Pennsylvania\", code: \"PA\" }, { name: \"Rhode Island\", code: \"RI\" },\n { name: \"South Carolina\", code: \"SC\" }, { name: \"South Dakota\", code: \"SD\" }, { name: \"Tennessee\", code: \"TN\" },\n { name: \"Texas\", code: \"TX\" }, { name: \"Utah\", code: \"UT\" }, { name: \"Vermont\", code: \"VT\" }, { name: \"Virginia\", code: \"VA\" },\n { name: \"Washington\", code: \"WA\" }, { name: \"Washington DC\", code: \"DC\" }, { name: \"West Virginia\", code: \"WV\" },\n { name: \"Wisconsin\", code: \"WI\" }, { name: \"Wyoming\", code: \"WY\" }\n ];\n\n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n\n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n\n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Province\");\n\n provinceField.replaceWith(newProvinceField);\n\n const labelElement = document.querySelector('label[for=\"address_province\"]');\n if (labelElement) {\n labelElement.textContent = \"State*\";\n labelElement.htmlFor = newProvinceField.id;\n }\n }\n}\n\nfunction initSkuDropdown() {\n const { productModelNumber } = getFormFields();\n if(!productModelNumber) return;\n productModelNumber.setAttribute('autocomplete', 'off');\n const suggestionClass = 'autocomplete-suggestions';\n\n function createSuggestionList(suggestions) {\n const list = document.createElement('ul');\n list.classList.add(suggestionClass);\n\n suggestions.forEach(({ displayText, sku }) =\u003e {\n const item = document.createElement('li');\n item.textContent = displayText;\n item.addEventListener('click', () =\u003e {\n productModelNumber.value = sku;\n skuAutoComplete.validated = true;\n removeSuggestionList();\n hideProductSkuErrorMessage();\n productModelNumber.classList.remove('error');\n });\n list.appendChild(item);\n });\n\n return list;\n }\n \n function removeSuggestionList() {\n const existing = document.querySelector(`.${suggestionClass}`);\n if (existing) existing.remove();\n }\n \n function showSuggestions(suggestions) {\n removeSuggestionList();\n if(!suggestions.length) return;\n const list = createSuggestionList(suggestions);\n productModelNumber.insertAdjacentElement('afterend', list);\n }\n \n productModelNumber.addEventListener('input', async (e) =\u003e {\n hideProductSkuErrorMessage();\n const products = await getProducts(e.target.value);\n showSuggestions(products);\n skuAutoComplete.validated = false;\n });\n \n productModelNumber.addEventListener('focus', async () =\u003e {\n const products = await getProducts(productModelNumber.value || '');\n showSuggestions(products);\n });\n \n document.addEventListener('click', (e) =\u003e {\n const suggestionBox = document.querySelector(`.${suggestionClass}`);\n if (\n suggestionBox \u0026\u0026\n !suggestionBox.contains(e.target) \u0026\u0026\n e.target !== productModelNumber\n ) {\n removeSuggestionList();\n }\n });\n\n window.addEventListener('blur', () =\u003e {\n removeSuggestionList();\n });\n}\n\nasync function getProducts(productQuery) {\n const query = getSearchProductsQuery(productQuery);\n const response = await fetch('https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n },\n body: JSON.stringify({ query })\n });\n\n if (!response.ok) {\n console.error('Error fetching products:', response.statusText);\n return [];\n }\n\n const data = await response.json();\n return data.data.products.edges.flatMap(({ node: product }) =\u003e\n product.variants.edges.map(({ node: variant }) =\u003e {\n const optionsText = variant.selectedOptions\n .map(({ value }) =\u003e value)\n .join(' ');\n \n return {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${variant.sku}`,\n sku: variant.sku,\n title: product.title,\n };\n })\n );\n}\n\nfunction getSearchProductsQuery(productQuery) { \n return `\n query getProducts {\n products(first: 3
14200, query: \"${productQuery}\") {\n edges {\n node {\n title\n variants(first: 10) {\n edges {\n node {\n sku\n title\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n }\n }\n `\n}\n\nfunction emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n\n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'US'\n };\n\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n}\n\nfunction validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n\n function handleAddressValidation() {\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n\n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'US'\n };\n\n if (\n addressInfo.streetLines[0] \u0026\u0026\n addressInfo.city \u0026\u0026\n addressInfo.postalCode \u0026\u0026\n addressInfo.stateOrProvinceCode\n ) {\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n }\n\n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n addressFormStatus.pendingSubmit = false;\n }\n\n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n countryInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n}\n\nfunction listenToAddressValidationEvents() {\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n\n \/\/ Listen for topic preselect events sent from parent page\n if (type === 'preselectTopic' \u0026\u0026 event.data.preselect === 'purchasing') {\n handlePreselectedTopicFromUrlParams();\n }\n });\n}\n\nfunction getEvents() {\n return {\n \"disableForm\": handleDisableForm,\n \"enableForm\": handleEnableForm,\n \"addressValidated\": handleAddressValidated,\n \"selectTopicByUrl\": handleSelectTopicByUrl\n }\n}\n\nfunction handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = true;\n });\n}\n\nfunction handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = false;\n });\n if (addressFormStatus.pendingSubmit) {\n addressFormStatus.pendingSubmit = false;\n if (addressFormStatus.validated) {\n document.querySelector('.form_submit_div button')?.click();\n }\n }\n}
1420\n\nfunction handleAddressValidated(data) {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n\n addressInput.value = data.streetLinesToken[0];\n if(data.streetLinesToken[1]) {\n addressInput2.value = data.streetLinesToken[1];\n }\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'US';\n\n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n}\n\nfunction getFormFields() {\n return {\n firstName: document.getElementById('first_name'),\n lastName: document.getElementById('last_name'),\n phone: document.getElementById('phone'),\n email: document.getElementById('email'),\n orderNumber: document.getElementById('order_number'),\n productModelNumber: document.getElementById('product_model_number'),\n purchaseDate: document.getElementById('purchase_date'),\n message: document.getElementById('message'),\n fileInput: document.getElementsByClassName('file')[0],\n submitButtonContainer: document.getElementsByClassName('form_submit_div')[0],\n submitDiv: document.querySelector('.form_submit_div'),\n };\n}\n\nfunction getAddressFormFields() {\n return {\n addressInput: document.getElementById('address_line1'),\n addressInput2: document.getElementById('address_line2'),\n cityInput: document.querySelector('[name=\"City\"]'),\n provinceInput: document.querySelector('[name=\"Province\"]'),\n zipInput: document.getElementById('address_zipcode'),\n countryInput: document.querySelector('[name=\"Country\"]'),\n addressTitle: document.querySelector('.address')\n }\n}\n\nconst addressFormStatus = {\n validated: false,\n pendingSubmit: false\n}\n\nconst skuAutoComplete = {\n validated: false\n}\n\nfunction addPhoneNumberValidation() {\n const phoneNumberInput = document.querySelector('input[name=\"Phone\"]'); \n if(!phoneNumberInput) return;\n\n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 10;\n if (e.target.value.length \u003e maxLength) {\n e.target.value = e.target.value.slice(0, maxLength);\n }\n });\n}\n\nfunction handleProductSkuErrorMessage() {\n const { productModelNumber } = getFormFields();\n if(!productModelNumber) return;\n productModelNumber.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n productModelNumber.focus();\n productModelNumber.classList.add('error');\n showProductSkuErrorMessage();\n}\n\nfunction showProductSkuErrorMessage() { \n let errorMessage = document.querySelector('[data-product-sku-error-message]');\n if(errorMessage) return;\n const { productModelNumber } = getFormFields();\n if(!productModelNumber) return;\n errorMessage = document.createElement('div');\n errorMessage.classList.add('error-message');\n errorMessage.setAttribute('data-product-sku-error-message', '');\n errorMessage.textContent = 'Please select a product from the list.';\n errorMessage.style.color = 'red';\n productModelNumber.insertAdjacentElement('afterend', errorMessage);\n}\n\nfunction hideProductSkuErrorMessage() {\n const errorMessage = document.querySelector('[data-product-sku-error-message]');\n if(errorMessage) errorMessage.remove();\n}\n\nfunction addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n if(!buttonSubmit) return;\n buttonSubmit.addEventListener('click', (e) =\u003e {\n const { productModelNumber } = getFormFields();\n const validations = [\n {\n validated: (addressFormStatus.validated),\n onError: () =\u003e {\n addressFormStatus.pendingSubmit = true;\n emitAddressValidationEvent();\n const { addressInput } = getAddressFormFields();\n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n },\n {\n validated: skuAutoComplete.validated || !productModelNumber || productModelNumber.value.trim() === '',\n onError: handleProductSkuErrorMessage,\n }\n ];\n\n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n}\n\nfunction addDropzoneConfigs() {\n const dz = window.Dropzone ? Dropzone.forElement(\".dropzone\") : null;\n if(!dz) {\n console.error(\"Dropzone not found\");\n return;\n }\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n\n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n}\n\nfunction handleSelectTopicByUrl () {\n const setOption = () =\u003e {\n const selectElement = document.getElementById('topic');\n if (selectElement) {\n selectElement.value = 'Help with purchasing a product';\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n selectElement.dispatchEvent(new Event('input', { bubbles: true }));\n const option = selectElement.querySelector('option[value=\"Help with purchasing a product\"]');\n if(option){\n option.selected = true;\n option.dispatchEvent(new Event('change', { bubbles: true }));\n }\n } else {\n setTimeout(setOption, 100);\n }\n };\n setOption();\n setTimeout(setOption, 1000);\n}
1420\n\nfunction handleTopicSelection() {\n const topicSelect = document.getElementById('topic');\n topicSelect?.addEventListener('change', (event) =\u003e {\n showFieldsForTopic(event.target.value);\n });\n}\n\nfunction handlePreselectedTopicFromUrl() {\n const urlParams = new URLSearchParams(window.location.search);\n const preselect = urlParams.get('preselect');\n\n if (preselect === 'purchasing') {\n handlePreselectedTopicFromUrlParams();\n }\n}\n\nfunction handlePreselectedTopicFromUrlParams() {\n const setOption = () =\u003e {\n const selectElement = document.getElementById('topic');\n if (selectElement) {\n selectElement.value = 'Help with purchasing a product';\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n selectElement.dispatchEvent(new Event('input', { bubbles: true }));\n showFieldsForTopic('Help with purchasing a product');\n } else {\n setTimeout(setOption, 100);\n }\n };\n setOption();\n}\n\nfunction addTabindexToformFields() {\n document.querySelectorAll('.form_generater_form_div label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n}\n\nfunction setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = \"EN\";\n }\n\n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n\n \/\/ Check preselect param from parent page URL\n const urlParams = new URLSearchParams(url.search);\n const preselect = urlParams.get('preselect');\n\n if (preselect === 'purchasing') {\n handlePreselectedTopicFromUrlParams();\n }\n}\n\nfunction getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n hideAllFields();\n handleTopicSelection();\n handlePreselectedTopicFromUrl();\n addTabindexToformFields();\n replaceCountryField();\n replaceProvinceField();\n addSubmitButtonCustomAction();\n validationAddress();\n listenToAddressValidationEvents();\n addDropzoneConfigs();\n initSkuDropdown();\n getParentHref();\n addPhoneNumberValidation();\n BlurValidator.init();\n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: {\n height: document.body.scrollHeight\n }\n }, '*');\n});\n","formElements":[{"Conditions":{},"type":"select","position":0,"label":"Select a Topic","placeholder":"Select a Topic","required":"yes","values":"Literature Request\nHelp with a product I have\nHelp with orders and\/or returns\nHelp with purchasing a product\nOther","elementCost":{},"customID":"topic","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"First Name","halfwidth":"yes","required":"yes","customID":"first_name","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Last Name","halfwidth":"yes","required":"yes","customID":"last_name","page_number":1},{"Conditions":{},"type":"address","position":3,"label":"Address Information","required":"yes","page_number":1},{"type":"phone","position":4,"label":"Phone","customID":"phone","page_number":1,"phone_validate_field":"no","required":"yes","Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Literature Request","Help with a product I have","Help with orders and\/or returns","Help with purchasing a product","Other"],"SelectedValue":"Literature Request"}},{"Conditions":{},"type":"email","position":5,"required":"yes","email_confirm":"yes","label":"Email","customID":"email","page_number":1},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"SelectedValues":["Help with orders and\/or returns"]},"type":"text","position":6,"label":"Order Number","customID":"order_number","page_number":1,"required":"yes"},{"Conditions":{},"type":"text","position":7,"label":"Product Model Number","infoMessage":"(Model Number can be found on the Installation Guide or Purchase Receipt)","customID":"product_model_number","page_number":1,"required":"no"},{"Conditions":{},"type":"newdate","position":8,"label":"Purchase Date","placeholder":"mm\/dd\/yyyy","customID":"purchase_date","page_number":1,"disable_future_dates":"yes","date_limit":"no"},{"Conditions":{},"type":"textarea","position":9,"label":"Message","placeholder":"Enter Your Message Here","required":"yes","customID":"message","page_number":1},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Help with purchasing a product","Other"],"SelectedValue":"Help with purchasing a product"},"type":"file","position":10,"label":"Drag and Drop Files","imageMultiple":"yes","enable_drag_and_drop":"yes","customID":"file_drag_drop","customClass":"files","page_number":1,"placeholder":"Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted.","infoMessage":"Images should total less than 10MB","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,","required":"no"},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"SelectedValues":["Help with a product I have"],"SelectedValue":"Help with a product I have"},"type":"file","position":11,"label":"Drag and Drop Files ","imageMultiple":"yes","enable_drag_and_drop":"yes","placeholder":"Only image files (JPG, PNG, TIFF, etc.) and PDFs are accepted.","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,","customClass":"files","customID":"file_drag_drop","required":"yes","page_number":1},{"Conditions":{"SelectedElemenet":"Select a Topic","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Help with a product I have","Help with purchasing a product","Other"],"SelectedValue":"Help with a product I have"},"type":"paragraph","position":12,"label":"Label (18)","paragraph":"\u003cp\u003ePhotos are required for product identification. They should include clear, well-lit photos of the entire American Standard product and close-ups of any visible numbers. \u003ca data-renderer-mark=\"true\" href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/p
1420ortlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\" title=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/portlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\"\u003e\u003cstrong data-renderer-mark=\"true\"\u003eHere\u0026#39;s\u003c\/strong\u003e\u003c\/a\u003e\u0026nbsp;some further guidance for the quickest response.\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"hidden","position":13,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":14,"label":"Language","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_NRYcuM6MrHI-fTkpRQng3Q":{"uuid":"NRYcuM6MrHI-fTkpRQng3Q","form_name":"Become an Installer","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Submit","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"leftBtn","button_clr":"#fff","button_back_clr":"#e70025","button_border_radius":"2","form_width":"1360px","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"40","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#e70025","btn_border_size":"1","form_name":"Become an Installer","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","inline_validation":"yes","custommessage":{"province":"State"},"advance_js":"document.addEventListener('DOMContentLoaded', function () {\n const form = document.querySelector('#formGeneratorForm');\n const zipCodeField = document.querySelector('#address_zipcode');\n const countryField = document.querySelector('#address_country');\n const provinceField = document.querySelector('#address_province');\n const submitButton = form?.querySelector('button[type=\"submit\"]');\n\n if (!form || !zipCodeField || !countryField || !submitButton) {\n console.warn('Form elements not found');\n return;\n }\n\n \/**\n * Changes the Province field name to State\n *\/\n function updateProvinceFieldName() {\n if (provinceField) {\n provinceField.setAttribute('name', 'State');\n }\n }\n\n \/\/ Run immediately when the form loads\n updateProvinceFieldName();\n\n const postalCodePatterns = {\n 'United States': \/^\\d{5}(-\\d{4})?$\/,\n 'Canada': \/^[A-Za-z]\\d[A-Za-z][ -]?\\d[A-Za-z]\\d$\/,\n 'Mexico': \/^\\d{5}$\/,\n 'United Kingdom': \/^[A-Z]{1,2}\\d[A-Z\\d]?\\s?\\d[A-Z]{2}$\/i,\n 'Brazil': \/^\\d{5}-?\\d{3}$\/\n };\n\n function validatePostalCode() {\n const country = countryField.value.trim();\n const zipCode = zipCodeField.value.trim();\n\n \/\/ Reset validation\n zipCodeField.setCustomValidity('');\n\n if (!zipCode) {\n zipCodeField.setCustomValidity(\n 'Please enter a ZIP\/Postal Code.'\n );\n\n return false;\n }\n\n const pattern = postalCodePatterns[country];\n\n \/\/ Validate ZIP\/Postal Code based on selected country\n if (pattern \u0026\u0026 !pattern.test(zipCode)) {\n zipCodeField.setCustomValidity(\n `Please enter a valid ZIP\/Postal Code for ${country}.`\n );\n\n return false;\n }\n\n return true;\n }\n\n function blockSubmission(event) {\n const isValid = validatePostalCode();\n\n if (!isValid) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n\n zipCodeField.reportValidity();\n zipCodeField.focus();\n\n console.log('Submission blocked: invalid ZIP code');\n\n return false;\n }\n }\n\n \/\/ Validate while typing\n zipCodeField.addEventListener('input', function () {\n validatePostalCode();\n });\n\n \/\/ Validate when leaving the ZIP field\n zipCodeField.addEventListener('blur', function () {\n validatePostalCode();\n\n if (!zipCodeField.validity.valid) {\n zipCodeField.reportValidity();\n }\n });\n\n \/\/ Revalidate when country changes\n countryField.addEventListener('change', function () {\n validatePostalCode();\n });\n\n \/\/ Intercept button click\n submitButton.addEventListener('click', blockSubmission, true);\n\n \/\/ Intercept form submission\n form.addEventListener('submit', blockSubmission, true);\n});","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Name","required":"yes","page_number":1},{"Conditions":{},"type":"phone","position":1,"label":"Phone Number","required":"yes","page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"Conditions":{},"type":"address","position":3,"label":"Address","required":"yes","page_number":1},{"Conditions":{},"type":"radio","position":4,"label":"Do you have a plumbing license?","required":"yes","values":"Yes\nNo","elementCost":{},"page_number":1},{"Conditions":{},"type":"radio","position":5,"label":"Do you have an electrical license?","required":"yes","values":"Yes\nNo","elementCost":{},"count":6,"page_number":1},{"Conditions":{},"type":"radio","position":6,"label":"Do you have a building contractor license?","required":"yes","values":"Yes\nNo","elementCost":{},"count":7,"page_number":1},{"Conditions":{},"type":"radio","position":7,"label":"Do you have general liability insurance?","required":"yes","values":"Yes\nNo","elementCost":{},"count":8,"page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_Ovn_KLmx75OWrSRwE0GiMw":{"uuid":"Ovn_KLmx75OWrSRwE0GiMw","form_name":"Mexico Contact Us Form","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Enviar","after_submit":"hideAndmessage","after_submit_msg":"\u003ch1\u003e\u003cstrong\u003e\u0026iexcl;
1420Formulario enviado con \u0026eacute;xito!\u003c\/strong\u003e\u003c\/h1\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"100%","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":0,"input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Mexico Contact Us Form","form_access_message":"\u003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","advance_css":".hidden_field {\ndisplay: none;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n })();\n \n BlurValidator.register('required', {\n priority: 1,\n match: (field) =\u003e field.getAttribute('aria-required') === 'true',\n test: (value) =\u003e value.trim() !== '',\n message: 'Este campo es obligatorio.'\n });\n \n BlurValidator.register('email', {\n priority: 2,\n match: (field) =\u003e field.type === 'email',\n test: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\n message: 'Por favor ingresa un correo electrónico válido.'\n });\n \n BlurValidator.register('phone', {\n priority: 2,\n match: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\n test: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\n message: 'Por favor ingresa un número de teléfono válido.'\n });\n\nfunction hideAllFields() {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n \n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n } = getAddressFormFields();\n \n firstName?.parentElement?.classList.add('hidden_field');\n lastName?.parentElement?.classList.add('hidden_field');\n phone?.parentElement?.classList.add('hidden_field');\n email?.parentElement?.classList.add('hidden_field');\n orderNumber?.parentElement?.classList.add('hidden_field');\n productModelNumber?.parentElement?.classList.add('hidden_field');\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n message?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n submitDiv?.classList.add('hidden_field');\n \n [\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n ].forEach(field =\u003e field?.parentElement?.classList.add('hidden_field'));\n }\n \n function showFieldsForTopic(topic) {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n \n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n } = getAddressFormFields();\n \n const show = (el) =\u003e el?.parentElement?.classList.remove('hidden_field');\n const hide = (el) =\u003e el?.parentElement?.classList.add('hidden_field');\n \n const showAddress = () =\u003e {\n [addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput]\n .forEach(field =\u003e show(field));\n };\n \n showAddress();\n submitDiv?.classList.remove('hidden_field');\n console.log('topic-------\u003e', topic);\n switch (topic) {\n case 'Solicitud de folleto':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n break;\n \n case 'Ayuda con un producto que tengo':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.remove('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n \n case 'Help with orders and\/or returns':\n [firstName, lastName, phone, email, orderNumber, message].forEach(show);\n hide(productModelNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n break;\n \n case 'Ayuda para comprar un producto':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n \n case 'Otro':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n }\n \n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: {\n height: document.body.scrollHeight\n }\n }, '*');\n }
1420\n \n function replaceCountryField() {\n const countryField = document.querySelector('[name=\"PaÃs\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"México\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\");\n newCountryField.classList.add(\"required\");\n newCountryField.setAttribute(\"name\", \"Displayed Country\");\n countryField.replaceWith(newCountryField);\n \n \n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"MX\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\");\n countryFieldHidden.classList.add(\"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"PaÃs\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Estado\"]');\n if (provinceField) {\n const states = [\n { name: \"Aguascalientes\", code: \"AG\" },\n { name: \"Baja California\", code: \"BC\" },\n { name: \"Baja California Sur\", code: \"BS\" },\n { name: \"Campeche\", code: \"CM\" },\n { name: \"Chiapas\", code: \"CS\" },\n { name: \"Chihuahua\", code: \"CH\" }
1420,\n { name: \"Ciudad de México\", code: \"DF\" },\n { name: \"Coahuila\", code: \"CO\" },\n { name: \"Colima\", code: \"CL\" },\n { name: \"Durango\", code: \"DG\" },\n { name: \"Guanajuato\", code: \"GT\" },\n { name: \"Guerrero\", code: \"GR\" },\n { name: \"Hidalgo\", code: \"HG\" },\n { name: \"Jalisco\", code: \"JA\" },\n { name: \"Estado de México\", code: \"EM\" },\n { name: \"Michoacán\", code: \"MI\" },\n { name: \"Morelos\", code: \"MO\" },\n { name: \"Nayarit\", code: \"NA\" },\n { name: \"Nuevo León\", code: \"NL\" },\n { name: \"Oaxaca\", code: \"OA\" },\n { name: \"Puebla\", code: \"PU\" },\n { name: \"Querétaro\", code: \"QE\" },\n { name: \"Quintana Roo\", code: \"QR\" },\n { name: \"San Luis PotosÃ\", code: \"SL\" },\n { name: \"Sinaloa\", code: \"SI\" },\n { name: \"Sonora\", code: \"SO\" },\n { name: \"Tabasco\", code: \"TB\" },\n { name: \"Tamaulipas\", code: \"TM\" },\n { name: \"Tlaxcala\", code: \"TL\" },\n { name: \"Veracruz\", code: \"VE\" },\n { name: \"Yucatán\", code: \"YU\" },\n { name: \"Zacatecas\", code: \"ZA\" }\n ];\n \n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"Estado\";\n \n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Estado\");\n \n provinceField.replaceWith(newProvinceField);\n \n const labelElement = document.querySelector('label[aria-label=\"Estado\"]');\n if (labelElement) {\n \/\/labelElement.textContent = \"State*\";\n }\n }\n }\n \n function initSkuDropdown() {\n const productField = document.querySelector('#product_model_number');\n if (!productField) {\n console.error('Product Model Number field not found');\n return;\n }\n productField.setAttribute('autocomplete', 'one-time-code')\n const suggestionClass = 'autocomplete-suggestions';\n \n function createSuggestionList(suggestions) {\n const list = document.createElement('ul');\n list.classList.add(suggestionClass);\n \n suggestions.forEach(({ displayText, sku }) =\u003e {\n const item = document.createElement('li');\n item.textContent = displayText;\n item.addEventListener('click', () =\u003e {\n productField.value = sku;\n skuAutoComplete.validated = true;\n removeSuggestionList();\n });\n list.appendChild(item);\n });\n \n return list;\n }\n \n function removeSuggestionList() {\n const existing = document.querySelector(`.${suggestionClass}`);\n if (existing) existing.remove();\n }\n \n function showSuggestions(suggestions) {\n removeSuggestionList();\n const list = createSuggestionList(suggestions);\n productField.insertAdjacentElement('afterend', list);\n }\n \n productField.addEventListener('input', async (e) =\u003e {\n const products = await getProducts(e.target.value);\n showSuggestions(products);\n skuAutoComplete.validated = false;\n });\n \n productField.addEventListener('focus', async () =\u003e {\n const products = await getProducts(productField.value || '');\n showSuggestions(products);\n });\n \n document.addEventListener('click', (e) =\u003e {\n const suggestionBox = document.querySelector(`.${suggestionClass}`);\n if (\n suggestionBox \u0026\u0026\n !suggestionBox.contains(e.target) \u0026\u0026\n e.target !== productField\n ) {\n removeSuggestionList();\n }\n });\n \n window.addEventListener('blur', () =\u003e {\n removeSuggestionList();\n });\n }\n \n async function getProducts(productQuery) {\n const query = getSearchProductsQuery(productQuery);\n const response = await fetch('https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n },\n body: JSON.stringify({ query })\n });\n \n if (!response.ok) {\n console.error('Error fetching products:', response.statusText);\n return [];\n }\n \n const data = await response.json();\n return data.data.products.edges.flatMap(({ node: product }) =\u003e\n product.variants.edges.map(({ node: variant }) =\u003e {\n const optionsText = variant.selectedOptions\n .map(({ value }) =\u003e value)\n .join(' ');\n \n return {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${variant.sku}`,\n sku: variant.sku,\n title: product.title,\n };\n })\n );\n }\n \n function getSearchProductsQuery(productQuery) { \n return `\n query getProducts @inContext(country: MX, language: ES) {\n products(first: 3
14200, query: \"${productQuery}\") {\n edges {\n node {\n title\n variants(first: 10) {\n edges {\n node {\n sku\n title\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n }\n }\n `\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'MX'\n };\n \n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n \n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n \n function handleAddressValidation() {\n console.log('handleAddressValidation');\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'MX'\n };\n console.log(\"addressInfo: \", addressInfo);\n \n if (\n addressInfo.streetLines[0] \u0026\u0026\n addressInfo.city \u0026\u0026\n addressInfo.postalCode \u0026\u0026\n addressInfo.stateOrProvinceCode\n ) {\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n }\n \n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n \n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n countryInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n }\n \n function listenToAddressValidationEvents() {\n console.log('listenToAddressValidationEvents');\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return {\n \"disableForm\": handleDisableForm,\n \"enableForm\": handleEnableForm,\n \"addressValidated\": handleAddressValidated,\n \"selectTopicByUrl\": handleSelectTopicByUrl\n }\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = true;\n });\n }\n \n function handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = false;\n });\n }\n \n function handleAddressValidated(data) {\n console.log(\"handleAddressValidated\", data);\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n \n addressInput.value = data.streetLinesToken[0];\n if(data.streetLinesToken[1]) {\n addressInput2.value = data.streetLinesToken[1];\n }\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'CA';
1420\n \n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n function getFormFields() {\n return {\n firstName: document.getElementById('first_name'),\n lastName: document.getElementById('last_name'),\n phone: document.getElementById('phone'),\n email: document.getElementById('email'),\n orderNumber: document.getElementById('order_number'),\n productModelNumber: document.getElementById('product_model_number'),\n purchaseDate: document.getElementById('purchase_date'),\n message: document.getElementById('message'),\n fileInput: document.getElementsByClassName('file')[0],\n submitButtonContainer: document.getElementsByClassName('form_submit_div')[0],\n submitDiv: document.querySelector('.form_submit_div'),\n };\n }\n \n function getAddressFormFields() {\n return {\n addressInput: document.querySelector('[name=\"Dirección 1\"]'),\n addressInput2: document.querySelector('[name=\"Dirección 2\"]'),\n cityInput: document.querySelector('[name=\"Ciudad\"]'),\n provinceInput: document.querySelector('[name=\"Estado\"]'),\n zipInput: document.querySelector('[name=\"Código Postal\"]'),\n countryInput: document.querySelector('[name=\"PaÃs\"]')\n }\n }\n \n const addressFormStatus = {\n validated: false\n }\n \n const skuAutoComplete = {\n validated: false\n }\n \n function addPhoneNumberValidation() {\n const phoneNumberInput = document.querySelector('input[name=\"Teléfono\"]'); \n \n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 10;\n if (e.target.value.length \u003e maxLength) {\n e.target.value = e.target.value.slice(0, maxLength);\n }\n });\n }\n \n function addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n buttonSubmit.addEventListener('click', (e) =\u003e {\n const validations = [\n {\n validated: (addressFormStatus.validated),\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getAddressFormFields();\n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n }\n ];\n \n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n }\n \n \n \n function addDropzoneConfigs() {\n const dz = Dropzone.forElement(\".dropzone\");\n if(!dz) {\n console.error(\"Dropzone not found\");\n return;\n }\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n \n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n }\n \n function handleSelectTopicByUrl () {\n const setOption = () =\u003e {\n const selectElement = document.getElementById('topic');\n if (selectElement) {\n selectElement.value = 'Ayuda para comprar un producto';\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n selectElement.dispatchEvent(new Event('input', { bubbles: true }));\n const option = selectElement.querySelector('option[value=\"Ayuda para comprar un producto\"]');\n if(option){\n option.selected = true;\n option.dispatchEvent(new Event('change', { bubbles: true }));\n }\n } else {\n setTimeout(setOption, 100);\n }\n };\n setOption();\n setTimeout(setOption, 1000);\n }\n \n function handleTopicSelection() {\n const topicSelect = document.getElementById('topic');\n topicSelect?.addEventListener('change', (event) =\u003e {\n showFieldsForTopic(event.target.value);\n });\n }\n \n function addTabindexToformFields() {\n document.querySelectorAll('.form_generater_form_div label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n }\n \n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n document.addEventListener('DOMContentLoaded', function () {\n hideAllFields();\n handleTopicSelection();\n addTabindexToformFields();\n replaceCountryField();\n replaceProvinceField();\n addSubmitButtonCustomAction();\n validationAddress();\n listenToAddressValidationEvents();\n addDropzoneConfigs();\n initSkuDropdown();\n BlurValidator.init();\n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: {\n height: document.body.scrollHeight\n }\n }, '*');\n \n getParentHref();\n });","flow_trigger_integration":"yes","formElements":[{"Conditions":{},"type":"select","position":0,"label":"Selecciona un tema","placeholder":"Selecciona un tema","required":"yes","values":"Solicitud de folleto\nAyuda con un producto que tengo\nAyuda para comprar un producto\nOtro","elementCost":{},"customID":"topic","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"Nombre (s)","halfwidth":"yes","required":"yes","customID":"first_name","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Apellido","halfwidth":"yes","required":"yes","customID":"last_name","page_number":1},{"Conditions":{},"type":"text","position":3,"label":"Dirección 1","required":"yes","customID":"addressline1","page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Dirección 2","customID":"addressline2","page_number":1},{"Conditions":{},"type":"text","position":5,"label":"Ciudad","required":"yes","halfwidth":"yes","customID":"city","page_number":1},{"Conditions":{},"type":"textarea","position":6,"label":"Estado","limitCharacters":"2","halfwidth":"yes","required":"yes","inputHeight":"32","customID":"province","page_number":1},{"Conditions":{},"type":"text","position":7,"label":"Código Postal","halfwidth":"yes","required":"yes","customID":"zipcode","page_number":1},{"Conditions":{},"type":"textarea","position":8,"label":"PaÃs","limitCharacters":"3","halfwidth":"yes","required":"yes","inputHeight":"32","customID":"country","page_number":1},{"Conditions":{},"type":"phone","position":9,"label":"Teléfono","default_country_code":"Mexico +52","required":"yes","customID":"phone","page_number":1},{"type":"email","position":10,"label":"Correo Electrónico","required":"yes","email_confirm":"yes","Conditions":{},"customID":"email","page_number":1},{"Conditions":{},"type":"text","position":11,"label":"Número de modelo del producto","customID":"product_model_number","infoMessage":"(El número de modelo se puede encontrar en la guÃa de instalación o en el comprobante de compra)","page_number":1},{"Conditions":{},"type":"newdate","position":12,"label":"Fecha de compra","placeholder":"mm\/dd\/yyyy","disable_future_dates":"yes","date_limit":"no","page_number":1,"customID":"purchase_date"},{"Conditions":{},"type":"textarea","position":13,"label":"Mensaje","placeholder":"Ingrese su mensaje aquÃ","required":"yes","page_number":1,"customID":"message"},{"Conditions":{"SelectedElemenet":"Selecciona un tema","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Ayuda con un producto que tengo","Ayuda para comprar un producto","Otro"],"SelectedValue":"Ayuda con un producto que tengo"},"type":"file","position":14,"label":"Arrastrar y soltar archivos","imageMultiple":"yes","infoMessage":"El total de las imágenes debe ser inferior a 10 MB","enable_drag_and_drop":"yes","placeholder":"Solo se aceptan archivos de imagen (JPG, PNG, TIFF, etc.) y archivos PDF.","browse_btn":"Subir archivo","customClass":"files","customID":"file_drag_drop","page_number":1,"required":"yes"},{"Conditions":{"SelectedElemenet":"Selecciona un tema","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Ayuda con un producto que tengo","Ayuda para comprar un producto","Otro"],"SelectedValue":"Ayuda con un producto que tengo"},"type":"paragraph","position":15,"label":"Label (17)","paragraph":"\u003cp\u003eLas fotograf\u0026iacute;as son necesarias para identificar el producto. Deben incluir im\u0026aacute;genes claras y bien iluminadas de todo el producto American Standard y primeros planos de cualquier n\u0026uacute;mero visible.\u0026nbsp;\u003ca data-href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/p
1420ortlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\" href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/portlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\"\u003e\u003cstrong\u003eAqu\u0026iacute;\u003c\/strong\u003e\u003c\/a\u003e\u0026nbsp;encontrar\u0026aacute; m\u0026aacute;s orientaci\u0026oacute;n para obtener la respuesta m\u0026aacute;s r\u0026aacute;pida\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"hidden","position":16,"label":"Web URL","page_number":1},{"Conditions":{},"type":"hidden","position":17,"label":"Language","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true},"form_S7Ly0CVmjezXPLrwc12byw":{"uuid":"S7Ly0CVmjezXPLrwc12b
1420yw","form_name":"Canada Contact Us Form-French ","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"","form_submit":"Soumettre","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003e\u003cstrong\u003eFormulaire soumis avec succ\u0026egrave;s\u0026nbsp;!\u003c\/strong\u003e\u003c\/p\u003e\n","captcha_enable":"no","label_style":"blockLabels","input_border_radius":"2","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#ff0000","button_border_radius":"2","form_width":"100%","form_border_size":0,"form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"1","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#ffffff","btn_border_size":"1","form_name":"Canada Contact Us Form-French ","form_access_message":"\u
1420003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","flow_trigger_integration":"yes","advance_css":".hidden_field {\ndisplay: none;\n}\n\n.autocomplete-suggestions {\n position: absolute;\n border: 1px solid #ccc;\n background-color: white;\n list-style-type: none;\n padding: 0;\n margin: 0;\n max-height: 200px;\n overflow-y: auto;\n width: 100%;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n font-family: Arial, sans-serif;\n font-size: 14px;\n}\n\n.autocomplete-suggestions li {\n padding: 10px;\n cursor: pointer;\n border-bottom: 1px solid #eee;\n}\n\n.autocomplete-suggestions li:last-child {\n border-bottom: none;\n}\n\n.autocomplete-suggestions li:hover {\n background-color: #f0f0f0;\n}\n\n.valid-zip {\n border: 2px solid green; \/* Valid input border *\/\n}\n\n.invalid-zip {\n border: 2px solid red; \/* Invalid input border *\/\n}\n\ninput:disabled,\ntextarea:disabled,\nselect:disabled {\n background-color: #f0f0f0;\n color: #888888;\n cursor: not-allowed;\n}\n\n.form-control[disabled] {\n background-color: #f0f0f0 !important;\n color: #888888;\n cursor: not-allowed;\n}\n","advance_js":"const BlurValidator = (() =\u003e {\n const _validators = [];\n \n function register(name, { match, test, message, priority = 10 }) {\n _validators.push({ name, match, test, message, priority });\n _validators.sort((a, b) =\u003e a.priority - b.priority);\n }\n \n function _getValidators(field) {\n return _validators.filter(v =\u003e v.match(field));\n }\n \n function validate(field) {\n for (const v of _getValidators(field)) {\n if (!v.test(field.value, field)) {\n return {\n valid: false,\n message: typeof v.message === 'function' ? v.message(field) : v.message\n };\n }\n }\n return { valid: true, message: '' };\n }\n \n function showError(field, message) {\n field.classList.add('error');\n let el = field.parentElement?.querySelector('[data-blur-error]');\n if (!el) {\n el = document.createElement('div');\n el.setAttribute('data-blur-error', '');\n el.classList.add('error-message');\n el.style.color = 'red';\n field.insertAdjacentElement('afterend', el);\n }\n el.textContent = message;\n }\n \n function clearError(field) {\n field.classList.remove('error');\n field.parentElement?.querySelector('[data-blur-error]')?.remove();\n }\n \n function _isVisible(field) {\n return !field.closest('.hidden_field');\n }\n \n function _onBlur(field) {\n if (!_isVisible(field)) return;\n const result = validate(field);\n result.valid ? clearError(field) : showError(field, result.message);\n }\n \n function init(selector = '[aria-required=\"true\"]', scope = document) {\n scope.querySelectorAll(selector).forEach(field =\u003e {\n if (field.dataset.blurValidatorInit) return;\n field.dataset.blurValidatorInit = 'true';\n field.addEventListener('blur', () =\u003e _onBlur(field));\n field.addEventListener('input', () =\u003e clearError(field));\n });\n }\n \n return { register, init, validate, showError, clearError };\n})();\n \nBlurValidator.register('required', {\npriority: 1,\nmatch: (field) =\u003e field.getAttribute('aria-required') === 'true',\ntest: (value) =\u003e value.trim() !== '',\nmessage: 'Ce champ est obligatoire.'\n});\n\nBlurValidator.register('email', {\npriority: 2,\nmatch: (field) =\u003e field.type === 'email',\ntest: (value) =\u003e value === '' || \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(value),\nmessage: 'Veuillez entrer une adresse courriel valide.'\n});\n\nBlurValidator.register('phone', {\npriority: 2,\nmatch: (field) =\u003e field.closest('.phone_div') != null \u0026\u0026 field.type === 'number',\ntest: (value) =\u003e value === '' || \/^\\d{10}$\/.test(value),\nmessage: 'Veuillez entrer un numéro de téléphone valide.'\n});\n\nfunction hideAllFields() {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n \n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n } = getAddressFormFields();\n \n firstName?.parentElement?.classList.add('hidden_field');\n lastName?.parentElement?.classList.add('hidden_field');\n phone?.parentElement?.classList.add('hidden_field');\n email?.parentElement?.classList.add('hidden_field');\n orderNumber?.parentElement?.classList.add('hidden_field');\n productModelNumber?.parentElement?.classList.add('hidden_field');\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n message?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n submitDiv?.classList.add('hidden_field');\n \n console.log('countryInput-------\u003e', countryInput);\n [\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n ].forEach(field =\u003e field?.parentElement?.classList.add('hidden_field'));\n }\n \n function showFieldsForTopic(topic) {\n const {\n firstName, lastName, phone, email,\n orderNumber, productModelNumber, purchaseDate,\n message, fileInput, submitDiv\n } = getFormFields();\n \n const {\n addressInput, addressInput2, cityInput,\n provinceInput, zipInput, countryInput\n } = getAddressFormFields();\n \n const show = (el) =\u003e el?.parentElement?.classList.remove('hidden_field');\n const hide = (el) =\u003e el?.parentElement?.classList.add('hidden_field');\n \n const showAddress = () =\u003e {\n [addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput]\n .forEach(field =\u003e show(field));\n };\n \n showAddress();\n submitDiv?.classList.remove('hidden_field');\n \n switch (topic) {\n case 'Demande de Litterature':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n break;\n \n case 'Jâai besoin dâaide avec mes produits':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.remove('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n \n case 'Help with orders and\/or returns':\n [firstName, lastName, phone, email, orderNumber, message].forEach(show);\n hide(productModelNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.add('hidden_field');\n break;\n \n case 'Help with purchasing a product':\n [firstName, lastName, phone, email, message].forEach(show);\n [orderNumber, productModelNumber].forEach(hide);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n \n case 'Enquete generale ou suggestions':\n [firstName, lastName, phone, email, productModelNumber, message].forEach(show);\n hide(orderNumber);\n purchaseDate?.parentElement?.parentElement?.classList.add('hidden_field');\n fileInput?.classList.remove('hidden_field');\n break;\n }\n \n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: {\n height: document.body.scrollHeight\n }\n }, '*');\n }
1420\n \n function replaceCountryField() {\n const countryField = document.querySelector('[name=\"Pays\"]');\n if (countryField) {\n const newCountryField = document.createElement(\"input\");\n newCountryField.type = \"text\";\n newCountryField.id = \"displayedCountry\";\n newCountryField.value = \"Canada\";\n newCountryField.readOnly = true;\n newCountryField.classList.add(\"form-control\");\n newCountryField.classList.add(\"required\");\n newCountryField.setAttribute(\"name\", \"Displayed Country\");\n countryField.replaceWith(newCountryField);\n \n \n const countryFieldHidden = document.createElement(\"input\");\n countryFieldHidden.type = \"text\";\n countryFieldHidden.id = \"country\";\n countryFieldHidden.value = \"CA\";\n countryFieldHidden.readOnly = true;\n countryFieldHidden.classList.add(\"form-control\");\n countryFieldHidden.classList.add(\"required\");\n countryFieldHidden.style.display = \"none\";\n countryFieldHidden.setAttribute(\"name\", \"Pays\");\n newCountryField.insertAdjacentElement('afterend', countryFieldHidden);\n }\n }\n \n function replaceProvinceField() {\n const provinceField = document.querySelector('[name=\"Province\"]');\n if (provinceField) {\n const states =[\n { name: \"Alberta\", code: \"AB\" },\n { name: \"Colombie-Britannique\", code: \"BC\" },\n { name: \"Manitoba\", code: \"MB\" },\n { name: \"Nouveau-Brunswick\", code: \"NB\" },\n { name: \"Terre-Neuve-et-Labrador\", code: \"NL\" },\n { name: \"Territoires du Nord-Ouest\", code: \"NT\" },\n { name: \"Nouvelle-Ãcosse\", code: \"NS\" },\n { name: \"Nunavut\", code: \"NU\" },\n { name: \"Ontario\", code: \"ON\" },\n { name: \"Ãle-du-Prince-Ãdouard\", code: \"PE\" },\n { name: \"Québec\", code: \"QC\" },\n { name: \"Saskatchewan\", code: \"SK\" },\n { name: \"Yukon\", code: \"YT\" }\n ];\n \n const newProvinceField = document.createElement(\"select\");\n newProvinceField.id = \"province\";\n \n states.forEach(state =\u003e {\n const option = document.createElement(\"option\");\n option.value = state.code;\n option.textContent = state.name;\n newProvinceField.appendChild(option);\n });\n \n newProvinceField.classList.add(\"form-control\");\n newProvinceField.classList.add(\"required\");\n newProvinceField.setAttribute(\"name\", \"Province\");\n \n provinceField.replaceWith(newProvinceField);\n \n const labelElement = document.querySelector('label[aria-label=\"Province\"]');\n if (labelElement) {\n \/\/labelElement.textContent = \"State*\";\n }\n }\n }\n \n function initSkuDropdown() {\n const productField = document.querySelector('#product_model_number');\n if (!productField) {\n console.error('Product Model Number field not found');\n return;\n }\n productField.setAttribute('autocomplete', 'off')\n const suggestionClass = 'autocomplete-suggestions';\n \n function createSuggestionList(suggestions) {\n const list = document.createElement('ul');\n list.classList.add(suggestionClass);\n \n suggestions.forEach(({ displayText, sku }) =\u003e {\n const item = document.createElement('li');\n item.textContent = displayText;\n item.addEventListener('click', () =\u003e {\n productField.value = sku;\n skuAutoComplete.validated = true;\n removeSuggestionList();\n });\n list.appendChild(item);\n });\n \n return list;\n }\n \n function removeSuggestionList() {\n const existing = document.querySelector(`.${suggestionClass}`);\n if (existing) existing.remove();\n }\n \n function showSuggestions(suggestions) {\n removeSuggestionList();\n const list = createSuggestionList(suggestions);\n productField.insertAdjacentElement('afterend', list);\n }\n \n productField.addEventListener('input', async (e) =\u003e {\n const products = await getProducts(e.target.value);\n showSuggestions(products);\n skuAutoComplete.validated = false;\n });\n \n productField.addEventListener('focus', async () =\u003e {\n const products = await getProducts(productField.value || '');\n showSuggestions(products);\n });\n \n document.addEventListener('click', (e) =\u003e {\n const suggestionBox = document.querySelector(`.${suggestionClass}`);\n if (\n suggestionBox \u0026\u0026\n !suggestionBox.contains(e.target) \u0026\u0026\n e.target !== productField\n ) {\n removeSuggestionList();\n }\n });\n \n window.addEventListener('blur', () =\u003e {\n removeSuggestionList();\n });\n }\n \n async function getProducts(productQuery) {\n const query = getSearchProductsQuery(productQuery);\n const response = await fetch('https:\/\/american-standard-production.myshopify.com\/api\/2023-07\/graphql.json', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application\/json',\n 'X-Shopify-Storefront-Access-Token': 'b3593e90acc9d4213f7f69735c9d8c77'\n },\n body: JSON.stringify({ query })\n });\n \n if (!response.ok) {\n console.error('Error fetching products:', response.statusText);\n return [];\n }\n \n const data = await response.json();\n return data.data.products.edges.flatMap(({ node: product }) =\u003e\n product.variants.edges.map(({ node: variant }) =\u003e {\n const optionsText = variant.selectedOptions\n .map(({ value }) =\u003e value)\n .join(' ');\n \n return {\n displayText: `${product.title} ${variant.title} ${optionsText}, ${variant.sku}`,\n sku: variant.sku,\n title: product.title,\n };\n })\n );\n }\n \n function getSearchProductsQuery(productQuery) { \n return `\n query getProducts {\n products(first: 3
14200, query: \"${productQuery}\") {\n edges {\n node {\n title\n variants(first: 10) {\n edges {\n node {\n sku\n title\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n }\n }\n `\n }\n \n function emitAddressValidationEvent() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'CA'\n };\n \n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n \n \n function validationAddress() {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n \n function handleAddressValidation() {\n console.log('handleAddressValidation');\n if (!addressFormStatus.validateOnNextFocusOut) return;\n addressFormStatus.validateOnNextFocusOut = false;\n \n const addressInfo = {\n streetLines: [addressInput?.value.trim() || '', addressInput2?.value.trim() || ''],\n city: cityInput?.value.trim() || '',\n stateOrProvinceCode: provinceInput?.value || '',\n postalCode: zipInput?.value.trim() || '',\n countryCode: countryInput?.value || 'CA'\n };\n console.log(\"addressInfo: \", addressInfo);\n \n if (\n addressInfo.streetLines[0] \u0026\u0026\n addressInfo.city \u0026\u0026\n addressInfo.postalCode \u0026\u0026\n addressInfo.stateOrProvinceCode\n ) {\n window.parent.postMessage({\n type: 'addressUpdate',\n data: addressInfo\n }, '*');\n }\n }\n \n function updateFormStatus() {\n addressFormStatus.validated = false;\n addressFormStatus.validateOnNextFocusOut = true;\n }\n \n addressInput?.addEventListener('input', updateFormStatus);\n addressInput2?.addEventListener('input', updateFormStatus);\n cityInput?.addEventListener('input', updateFormStatus);\n zipInput?.addEventListener('input', updateFormStatus);\n addressInput?.addEventListener('focusout', handleAddressValidation);\n addressInput2?.addEventListener('focusout', handleAddressValidation);\n cityInput?.addEventListener('focusout', handleAddressValidation);\n zipInput?.addEventListener('focusout', handleAddressValidation);\n provinceInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n countryInput?.addEventListener('change', () =\u003e {\n updateFormStatus(); \n handleAddressValidation();\n });\n }\n \n function listenToAddressValidationEvents() {\n console.log('listenToAddressValidationEvents');\n window.addEventListener('message', function (event) {\n const { type, data } = event.data;\n const events = getEvents();\n events[type]?.(data);\n });\n }\n \n function getEvents() {\n return {\n \"disableForm\": handleDisableForm,\n \"enableForm\": handleEnableForm,\n \"addressValidated\": handleAddressValidated,\n \"selectTopicByUrl\": handleSelectTopicByUrl\n }\n }\n \n function handleDisableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = true;\n });\n }\n \n function handleEnableForm() {\n const form = document.querySelector('form');\n Array.from(form.elements).forEach((element) =\u003e {\n element.disabled = false;\n });\n }\n \n function handleAddressValidated(data) {\n console.log(\"handleAddressValidated\", data);\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n \n addressInput.value = data.streetLinesToken[0];\n if(data.streetLinesToken[1]) {\n addressInput2.value = data.streetLinesToken[1];\n }\n cityInput.value = data.city;\n provinceInput.value = data.stateOrProvinceCode;\n zipInput.value = data.postalCode;\n countryInput.value = data.countryCode || 'CA';
1420\n \n addressFormStatus.validated = true;\n addressFormStatus.validateOnNextFocusOut = false;\n }\n \n function getFormFields() {\n return {\n firstName: document.getElementById('first_name'),\n lastName: document.getElementById('last_name'),\n phone: document.getElementById('phone'),\n email: document.getElementById('email'),\n orderNumber: document.getElementById('order_number'),\n productModelNumber: document.getElementById('product_model_number'),\n purchaseDate: document.getElementById('purchase_date'),\n message: document.getElementById('message'),\n fileInput: document.getElementsByClassName('file')[0],\n submitButtonContainer: document.getElementsByClassName('form_submit_div')[0],\n submitDiv: document.querySelector('.form_submit_div'),\n };\n }\n \n function getAddressFormFields() {\n return {\n addressInput: document.querySelector('[name=\"Rue 1\"]'),\n addressInput2: document.querySelector('[name=\"Rue 2\"]'),\n cityInput: document.querySelector('[name=\"Ville\"]'),\n provinceInput: document.querySelector('[name=\"Province\"]'),\n zipInput: document.querySelector('[name=\"Code postal\"]'),\n countryInput: document.querySelector('[name=\"Pays\"]')\n }\n }\n \n const addressFormStatus = {\n validated: false\n }\n \n const skuAutoComplete = {\n validated: false\n }\n \n function addPhoneNumberValidation() {\n const phoneNumberInput = document.querySelector('input[name=\"Phone\"]'); \n \n phoneNumberInput.addEventListener(\"input\", function (e) {\n const maxLength = 10;\n if (e.target.value.length \u003e maxLength) {\n e.target.value = e.target.value.slice(0, maxLength);\n }\n });\n }\n \n function addSubmitButtonCustomAction() { \n const buttonSubmit = document.querySelector('.form_submit_div button');\n buttonSubmit.addEventListener('click', (e) =\u003e {\n const { addressInput, addressInput2, cityInput, provinceInput, zipInput, countryInput } = getAddressFormFields();\n console.log('buttonSubmit clicked: ', countryInput.value);\n const validations = [\n {\n validated: (addressFormStatus.validated),\n onError: () =\u003e {\n emitAddressValidationEvent();\n const { addressInput } = getAddressFormFields();\n addressInput.scrollIntoView({ behavior: 'smooth', block: \"center\" });\n },\n }\n ];\n \n validations.some(({ validated, onError }) =\u003e {\n if (!validated) {\n e.preventDefault();\n e.stopPropagation();\n onError();\n return true;\n }\n return false;\n });\n })\n }\n \n \n \n function addDropzoneConfigs() {\n const dz = Dropzone.forElement(\".dropzone\");\n if(!dz) {\n console.error(\"Dropzone not found\");\n return;\n }\n dz.options.acceptedFiles = \"image\/*,application\/pdf\";\n \n document.querySelectorAll(\".dz-hidden-input\").forEach((input) =\u003e {\n input.setAttribute(\"accept\", dz.options.acceptedFiles);\n });\n }\n \n function handleSelectTopicByUrl () {\n const setOption = () =\u003e {\n const selectElement = document.getElementById('topic');\n if (selectElement) {\n selectElement.value = 'Help with purchasing a product';\n selectElement.dispatchEvent(new Event('change', { bubbles: true }));\n selectElement.dispatchEvent(new Event('input', { bubbles: true }));\n const option = selectElement.querySelector('option[value=\"Help with purchasing a product\"]');\n if(option){\n option.selected = true;\n option.dispatchEvent(new Event('change', { bubbles: true }));\n }\n } else {\n setTimeout(setOption, 100);\n }\n };\n setOption();\n setTimeout(setOption, 1000);\n }\n \n function handleTopicSelection() {\n const topicSelect = document.getElementById('topic');\n topicSelect?.addEventListener('change', (event) =\u003e {\n showFieldsForTopic(event.target.value);\n });\n }\n \n function addTabindexToformFields() {\n document.querySelectorAll('.form_generater_form_div label').forEach((label) =\u003e {\n label.setAttribute('tabindex', '-1');\n });\n }\n \n function setWebUrl(href) {\n const url = new URL(href);\n const hostname = url.hostname;\n const path = url.pathname.toLowerCase();\n let language = \"EN\";\n if (hostname.includes(\"americanstandard.ca\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n } else if (hostname.includes(\"americanstandard.mx\")) {\n language = path.startsWith(\"\/en\") ? \"EN\" : \"ES\";\n } else if (hostname.includes(\"americanstandard-us.com\")) {\n language = path.startsWith(\"\/fr\") ? \"FR\" : \"EN\";\n }\n \n const webUrlInput = document.querySelector('input[name=\"Web URL\"]');\n if (webUrlInput) {\n webUrlInput.value = hostname\n } else {\n console.warn(\"Web URL input not found.\");\n }\n const languageInput = document.querySelector('input[name=\"Language\"]');\n if (languageInput) {\n languageInput.value = language;\n } else {\n console.warn(\"Language input not found.\");\n }\n }\n \n function getParentHref() {\n window.addEventListener('message', (event) =\u003e {\n if (event.data.type === 'parentHref') {\n setWebUrl(event.data.href);\n }\n });\n window.parent.postMessage({ type: 'requestHref' }, '*');\n }\n \n document.addEventListener('DOMContentLoaded', function () {\n hideAllFields();\n handleTopicSelection();\n addTabindexToformFields();\n replaceCountryField();\n replaceProvinceField();\n addSubmitButtonCustomAction();\n validationAddress();\n listenToAddressValidationEvents();\n addDropzoneConfigs();\n initSkuDropdown();\n BlurValidator.init();\n window.parent.postMessage({\n type: 'refreshIframeHeight',\n data: {\n height: document.body.scrollHeight\n }\n }, '*');\n \n getParentHref();\n });","formElements":[{"Conditions":{},"type":"select","position":0,"label":"Sélectionner un sujet","required":"yes","values":"Demande de Litterature\nJâai besoin dâaide avec mes produits\nEnquete generale ou suggestions","elementCost":{},"customID":"topic","placeholder":"Sélectionner un sujet","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"Prénom","halfwidth":"yes","required":"yes","customID":"first_name","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Nom de famille","required":"yes","halfwidth":"yes","customID":"last_name","page_number":1},{"Conditions":{},"type":"text","position":3,"label":"Rue 1","required":"yes","customID":"addressline1","page_number":1},{"Conditions":{},"type":"text","position":4,"label":"Rue 2","customID":"addressline2","page_number":1},{"Conditions":{},"type":"text","position":5,"label":"Ville","halfwidth":"yes","required":"yes","customID":"city","page_number":1},{"Conditions":{},"type":"textarea","position":6,"label":"Province","limitCharacters":"2","halfwidth":"yes","required":"yes","customClass":"","inputHeight":"32","customID":"province","page_number":1},{"Conditions":{},"type":"text","position":7,"label":"Code postal","halfwidth":"yes","required":"yes","customID":"zipcode","page_number":1},{"Conditions":{},"type":"text","position":8,"label":"Pays","halfwidth":"yes","required":"yes","customID":"country","page_number":1},{"Conditions":{},"type":"phone","position":9,"label":"Téléphone","default_country_code":"Canada +1","phone_validate_field":"no","required":"yes","customID":"phone","page_number":1},{"type":"email","position":10,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1,"customID":"email"},{"Conditions":{},"type":"text","position":11,"label":"Numéro de modèle du produit","infoMessage":"(Número de modèle se trouve dans le guide dâinstallation ou sur le reçu dâachat)","customID":"product_model_number","page_number":1},{"Conditions":{},"type":"newdate","position":12,"label":"Date dâachat","disable_future_dates":"yes","date_limit":"no","customID":"purchase_date","page_number":1,"placeholder":"mm\/dd\/yyyy"},{"Conditions":{},"type":"textarea","position":13,"label":"Message","required":"yes","placeholder":"Entrez votre message ici.","customID":"message","page_number":1},{"Conditions":{"SelectedElemenet":"Sélectionner un sujet","SelectedElemenetCount":0,"Operator":"ONE","SelectedValues":["Jâai besoin dâaide avec mes produits"],"SelectedValue":"Jâai besoin dâaide avec mes produits"},"type":"file","position":14,"label":"Glisser-déposer des fichiers","imageMultiple":"yes","infoMessage":"La taille totale des images doit être inférieure à 10 Mo","enable_drag_and_drop":"yes","placeholder":"Seuls les fichiers image (JPG, PNG, TIFF, etc.) et les fichiers PDF sont acceptés.","customClass":"files","customID":"file_drag_drop","page_number":1,"allow_type":".Jpeg, .jpg, .pdf, .png, .tif,","required":"yes"},{"Conditions":{"SelectedElemenet":"Sélectionner un sujet","SelectedElemenetCount":0,"SelectedValues":["Enquete generale ou suggestions"],"SelectedValue":"Enquete generale ou suggestions"},"type":"file","position":15,"label":"Glisser-déposer des fichiers ","imageMultiple":"yes","enable_drag_and_drop":"yes","placeholder":"Seuls les fichiers image (JPG, PNG, TIFF, etc.) et les fichiers PDF sont acceptés.","allow_type":".Jpeg, .jpg, .pdf, .png, .tif,","customClass":"files","customID":"file_drag_drop","page_number":1},{"Conditions":{"SelectedElemenet":"Sélectionner un sujet","SelectedElemenetCount":0,"Operator":"OR","SelectedValues":["Jâai besoin dâaide avec mes produits","Enquete generale ou suggestions"],"SelectedValue":"Jâai besoin dâaide avec mes produits"},"type":"paragraph","position":16,"label":"Label (17)","paragraph":"\u003cp\u003eLes photos sont requises pour l\u0026rsquo;identification du produit. Elles doivent inclure des images nettes et bien \u0026eacute;
1420clair\u0026eacute;es de l\u0026rsquo;ensemble du produit American Standard, ainsi que des gros plans de tout num\u0026eacute;ro visible.\u0026nbsp;\u003ca data-href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/portlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\" href=\"https:\/\/faq.americanstandard-us.com\/portal\/app\/portlets\/results\/viewsolution.jsp?solutionid=260403122559883\u0026amp;page=1\u0026amp;position=0\u0026amp;q=photos\"\u003e\u003cstrong\u003eVoici\u003c\/strong\u003e\u003c\/a\u003e\u0026nbsp;des conseils suppl\u0026eacute;mentaires pour une r\u0026eacute;ponse la plus rapide possible.\u003c\/p\u003e\n","page_number":1},{"Conditions":{},"type":"hidden","position":17,"label":"Language","page_number":1},{"Conditions":{},"type":"hidden","position":18,"label":"Web URL","page_number":1}]},"is_spam_form":false,"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","popup_settings":{},"form_is_active":true}}, 1421 shop_data: {"shop_0p8NiVULN9V_aV_9KdBGNQ":{"shop_uuid":"0p8NiVULN9V_aV_9KdBGNQ","shop_timezone":"America\/New_York","shop_id":125077,"shop_is_after_submit_enabled":true,"shop_shopify_plan":"Plus","shop_shopify_domain":"13d074-bf.myshopify.com","shop_created_at":"2025-01-02T12:50:19.781-06:00","is_skip_metafield":false,"shop_deleted":false,"shop_disabled":false}}, 1422 settings_data: {"shop_settings":{"shop_customise_msgs":[null],"default_customise_msgs":{"is_required":"is required","thank_you":"Thank you! The form was submitted successfully.","processing":"Processing...","valid_data":"Please provide valid data","valid_email":"Provide valid email format","valid_tags":"HTML Tags are not allowed","valid_phone":"Provide valid phone number","valid_captcha":"Please provide a valid CAPTCHA response.","valid_url":"Provide valid URL","only_number_alloud":"Provide valid number in","number_less":"must be less than","number_more":"must be more than","image_must_less":"Image must be less than 20MB","image_number":"Images allowed","image_extension":"Invalid extension! Please provide image file","error_image_upload":"Error in image upload. Please try again.","error_file_upload":"Error in file upload. Please try again.","your_response":"Your response","error_form_submit":"Error occur.Please try again after sometime.","email_submitted":"Form with this email is already submitted","invalid_email_by_zerobounce":"The email address you entered appears to be invalid. Please check it and try again.","download_file":"Download file","card_details_invalid":"Your card details are invalid","card_details":"Card details","please_enter_card_details":"Please enter card details","card_number":"Card number","exp_mm":"Exp MM","exp_yy":"Exp YY","crd_cvc":"CVV","payment_value":"Payment amount","please_enter_payment_amount":"Please enter a payment amount.","address1":"Address line 1","address2":"Address line 2","city":"City","province":"Province","zipcode":"Zip code","country":"Country","blocked_domain":"This form does not accept addresses from","file_must_less":"File must be less than 20MB","file_extension":"Invalid extension! Please provide file","only_file_number_alloud":"files allowed","previous":"Previous","next":"Next","must_have_a_input":"Please enter at least one field.","please_enter_required_data":"Please enter required data","atleast_one_special_char":"Include at least one special character","atleast_one_lowercase_char":"Include at least one lowercase character","atleast_one_uppercase_char":"Include at least one uppercase character","atleast_one_number":"Include at least one number","must_have_8_chars":"Must have 8 characters long","be_between_8_and_12_chars":"Be between 8 and 12 characters long","please_select":"Please Select","phone_submitted":"Form with this phone number is already submitted","user_res_parse_error":"Error while submitting the form","valid_same_values":"values must be the same","product_choice_clear_selection":"Clear Selection","picture_choice_clear_selection":"Clear Selection","remove_all_for_file_image_upload":"Remove All","invali
1422d_file_type_for_image_upload":"You can't upload files of this type.","invalid_file_type_for_signature_upload":"You can't upload files of this type.","max_files_exceeded_for_file_upload":"You can not upload any more files.","max_files_exceeded_for_image_upload":"You can not upload any more files.","file_already_exist":"File already uploaded","max_limit_exceed":"You have added the maximum number of text fields.","cancel_upload_for_file_upload":"Cancel upload","cancel_upload_for_image_upload":"Cancel upload","cancel_upload_for_signature_upload":"Cancel upload"}}}, 1423 features_data: {"shop_plan_features":{"shop_plan_features":["unlimited-forms","full-design-customization","export-form-submissions","multiple-recipients-for-form-submissions","multiple-admin-notifications","enable-captcha","unlimited-file-uploads","save-submitted-form-data","set-auto-response-message","conditional-logic","form-banner","save-as-draft-facility","include-user-response-in-admin-email","disable-form-submission","mail-platform-integration","stripe-payment-integration","pre-built-templates","create-customer-account-on-shopify","google-analytics-3-by-tracking-id","facebook-pixel-id","bing-uet-pixel-id","advanced-js","advanced-css","api-available","customize-form-message","hidden-field","restrict-from-submissions-per-one-user","utm-tracking","ratings","privacy-notices","heading","paragraph","shopify-flow-trigger","domain-setup","block-domain","address","html-code","form-schedule","after-submit-script","customize-form-scrolling","on-form-submission-record-the-referrer-url","password","duplicate-the-forms","include-user-response-in-auto-responder-email","elements-add-ons","admin-and-auto-responder-email-with-tokens","email-export","premium-support","google-analytics-4-by-measurement-id","google-ads-for-tracking-conversion","validation-field","load_form_as_popup","advanced_conditional_logic","forms-limit","submissions-visibility-limit","approve-or-decline-submission","product-choice","ticket-system","emoji-feedback","multi-line-text","iamge-choice","image-display","file-upload","slack-integration","google-sheets-integration","multi-page-form","access-only-for-logged-in-users","zapier-integration","add-tags-for-existing-customers","restrict-from-submissions-per-phone-number","multi-column-text","booking","zerobounce-integration","form-layout-image"]}}, 1424 shop: null, 1425 shop_id: null, 1426 plan_features: null, 1427 validateDoubleQuotes: false, 1428 assets: { 1429 searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/searchable-dropdown.js", 1430 extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js", 1431 extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css", 1432 bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css", 1433 }, 1434 translations: { 1435 htmlTagNotAllowed: "HTML Tags are not allowed", 1436 sqlQueryNotAllowed: "SQL Queries are not allowed", 1437 doubleQuoteNotAllowed: "Double quotes are not allowed", 1438 1439 maxTextFieldsReached: "You have added the maximum number of text fields.", 1440 1441 1442 1443 zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.", 1444 } 1445 1446 } 1447 1448 1449 1450 window.FbThemeAppExtSettingsHash = {} 1451 1452</script>
1452<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/microsoft-clarity/blocks/clarity_js/31c3d126-8116-4b4a-8ba1-baeda7c4aeea -->
1453<script type="text/javascript"> 1454 (function (c, l, a, r, i, t, y) { 1455 c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments); }; 1456 t = l.createElement(r); t.async = 1; t.src = "https://www.clarity.ms/tag/" + i + "?ref=shopify"; 1457 y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y); 1458 1459 c.Shopify.loadFeatures([{ name: "consent-tracking-api", version: "0.1" }], error => { 1460 if (error) { 1461 console.error("Error loading Shopify features:", error); 1462 return; 1463 } 1464 1465 c[a]('consentv2', { 1466 ad_Storage: c.Shopify.customerPrivacy.marketingAllowed() ? "granted" : "denied", 1467 analytics_Storage: c.Shopify.customerPrivacy.analyticsProcessingAllowed() ? "granted" : "denied", 1468 source: 101, 1469 }); 1470 }); 1471 1472 l.addEventListener("visitorConsentCollected", function (e) { 1473 c[a]('consentv2', { 1474 ad_Storage: e.detail.marketingAllowed ? "granted" : "denied", 1475 analytics_Storage: e.detail.analyticsAllowed ? "granted" : "denied", 1476 source: 101, 1477 }); 1478 }); 1479 })(window, document, "clarity", "script", "t1jnrapcw3"); 1480</script>
1480 1481 1482 1483 1484<!-- END app block -->
1484<script src="https://cdn.shopify.com/extensions/01a0f142-9ec3-73a2-babd-8904a7e44cee/swym-relay-840/assets/wishlistcollections.js" type="text/javascript" defer="defer"></script>
1484 1485<link href="https://cdn.shopify.com/extensions/01a0f142-9ec3-73a2-babd-8904a7e44cee/swym-relay-840/assets/wishlistcollections.css" rel="stylesheet" type="text/css" media="all">
1486<script src="https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
1486 1487<meta property="og:image" content="https://cdn.shopify.com/s/files/1/0609/8567/1727/files/AS_logo_inline_brandclaim_1200x625_ad62808f-4ffa-457a-af99-92ce7ff66b2c.jpg?v=1768572730" /> 1488<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0609/8567/1727/files/AS_logo_inline_brandclaim_1200x625_ad62808f-4ffa-457a-af99-92ce7ff66b2c.jpg?v=1768572730" /> 1489<meta property="og:image:width" content="1200" /> 1490<meta property="og:image:height" content="625" /> 1491<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1492<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 60985671727,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1492
1492
1493<script> 1494 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1495</script>
vendor: 1 bytes, line 1495
1495
1496<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1496).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 60985671727,storefrontBaseUrl: "https://www.americanstandard-us.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.americanstandard-us.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2786885679","configuration":"{\"advertiserId\":\"33733\",\"shopDomain\":\"13d074-bf.myshopify.com\",\"appVersion\":\"shopifyApp_5.4.1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c287d09bac7e7a912a76f3941fab1c2f","type":"APP","apiClientId":2887701,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2405728303","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"GT-KFN4WJQW\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":\\\"MC-EDWMM0BS3J\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":\\\"MC-EDWMM0BS3J\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":\\\"MC-EDWMM0BS3J\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
1496,{"id":"1387102255","configuration":"{\"storefrontApiUrl\":\"https:\\\/\\\/storefront.retailconnect.app\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e27d6356bbceb3e5dda67323d8203dfd","type":"APP","apiClientId":64626556929,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1306132527","configuration":"{\"projectId\":\"t1jnrapcw3\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1009975343","configuration":"{\"locale\":\"en_US\",\"client\":\"americanstandard\",\"environment\":\"production\",\"deployment_zone\":\"shopify\",\"use_external_ids\":\"true\",\"use_variants\":\"false\",\"external_id_attribute\":\"metafield\",\"storefront_api_key\":\"c766d3ef46b64b17706c671369754034\",\"product_metafield_key\":\"stibo_product_id\",\"product_metafield_namespace\":\"stibo\",\"multi_locale_enabled\":\"true\",\"locale_mapping\":\"{\\\"en\\\":[\\\"en_US\\\",\\\"en_CA\\\"],\\\"es\\\":[\\\"es_MX\\\"],\\\"fr\\\":[\\\"fr_CA\\\"]}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"bf601cbef12079fa1ab77422415f1989","type":"APP","apiClientId":1888040,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"834994223","configuration":"{\"vwoAccountId\":\"1221731\",\"eventConfiguration\":\"{\\\"ece\\\":0,\\\"pv\\\":1,\\\"prv\\\":1,\\\"patc\\\":1,\\\"prfc\\\":1,\\\"cv\\\":1,\\\"cs\\\":1,\\\"cc\\\":1,\\\"ad\\\":1,\\\"cais\\\":1,\\\"ccis\\\":1,\\\"csis\\\":1,\\\"clv\\\":1,\\\"pis\\\":1,\\\"ss\\\":1}\",\"dataUri\":\"dev.visualwebsiteoptimizer.com\",\"customCodeConfig\":\"{\\\"customCodeEnabled\\\":true,\\\"customCode\\\":\\\"window.OptanonWrapper = function() { vwo.addShopifyMiddleware((payload) =\\u003e { let newPayload = payload; return newPayload; });};\\\"}\",\"cookieConsentConfig\":\"{\\\"consentRequired\\\":true,\\\"consentCategories\\\":{\\\"analytics\\\":true,\\\"marketing\\\":true,\\\"personalization\\\":true}}\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"17c0617486e219f692914ca1feba2253","type":"APP","apiClientId":68559962113,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"795934767","configuration":"{\"partnerId\": \"99459\", \"environment\": \"prod\", \"countryCode\": \"US\", \"logLevel\": \"none\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e39367b785b1d63117e387ccb6b0db54","type":"APP","apiClientId":5829751,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":[]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"781647919","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/3e1a74c7f4b540a9c4b422e5edf6a937e677f318\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"723058735","configuration":"{\"swymApiEndpoint\":\"https:\/\/swymstore-v3premium-01.swymrelay.com\",\"swymTier\":\"v3premium-01\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5b6f6917e306bc7f24523662663331c0","type":"APP","apiClientId":1350849,"privacyPurposes":["ANALYTICS","MARKETING","PREFERENCES"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"98697263","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Elevar - Checkout Tracking"}
1496,{"id":"100171823","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Monitoring Tool"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"American Standard","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"13d074-bf.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.americanstandard-us.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"7932833169455","handle":"belmeade-two-handle-8-inch-widespread-bathroom-faucet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622395150383","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932833464367","handle":"becklow-8-inch-widespread-bathroom-faucet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622395641903","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932856500271","handle":"saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622438109231","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932828090415","handle":"aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622384009263","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932853387311","handle":"studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622434340911","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932836020271","handle":"studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622400786479","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932825600047","handle":"becklow-two-handle-4-inch-centerset-bathroom-faucet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622377717807","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932829335599","handle":"edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622387351599","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932781625391","handle":"champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622288949295","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932779331631","handle":"cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622285344815","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932778709039","handle":"champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622284427311","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932790210607","handle":"aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622302122031","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932782247983","handle":"cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622289997871","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932790800431","handle":"cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622302777391","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932787490863","handle":"cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622299041839","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932790505519","handle":"cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622302449711","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932837167151","handle":"aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622403342383","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932839002159","handle":"edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622407929903","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932833595439","handle":"aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622395838511","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932757835823","handle":"studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622243008559","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932760129583","handle":"aspirations-above-counter-sink-center-hole-only","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622247268399","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932759441455","handle":"aspirations-above-counter-sink-with-8-inch-centers","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622246252591","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932759506991","handle":"studio-r-s-above-counter-oval-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622246350895","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932767961135","handle":"24-inch-evolution-r-center-hole-only-pedestal-sink-top","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622259163183","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932767043631","handle":"22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622257688623","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932765536303","handle":"22-inch-evolution-r-center-hole-only-pedestal-sink-top","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622255034415","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932766879791","handle":"studio-r-under-counter-sink-with-glazed-underside","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622257131567","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932855418927","handle":"delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622436667439","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932852731951","handle":"delancey-r-30-x-19-inch-cast-iron-undermount-d
1496ouble-bowl-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622433620015","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932854665263","handle":"edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622435848239","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932852535343","handle":"pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622433423407","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932851126319","handle":"colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622431948847","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932855156783","handle":"edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622436405295","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932853780527","handle":"quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622434930735","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932853977135","handle":"quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622435127343","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932844179503","handle":"renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622420611119","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932849422383","handle":"southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622429327407","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932844933167","handle":"raviv-r-single-handle-pull-down-kitchen-faucet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622422118447","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932857483311","handle":"studio-r-s-wall-mount-pot-filler-kitchen-faucet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43782969131055","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932850372655","handle":"studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622430703663","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932846768175","handle":"delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622425231407","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7932789325871","handle":"aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-right-hand-trip-lever-elongated-toilet-with-seat","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622301073455","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7963196031023","handle":"aspirations-toilet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43622302122031","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.americanstandard-us.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"149082800175","themePublished":"true","eventMetadataId":"2c0687d3-ccb1-45e5-8c68-dd9eaba05b16","pageType":"home","shopId":"60985671727","storefrontBaseUrl":"https:\/\/www.americanstandard-us.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1496<script> 1497 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1498 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1499 window.ShopifyAnalytics.meta.currency = 'USD'; 1500 var meta = {"page":{"pageType":"home","requestId":"b2601ade-dc57-41a5-8b54-a42b5aa2fadb-1790908240"}}; 1501 for (var attr in meta) { 1502 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1503 } 1504</script>
vendor: 1 bytes, line 1504
1504
1505<script class="analytics"> 1506 (function () { 1507 var customDocumentWrite = function(content) { 1508 var jquery = null; 1509 1510 if (window.jQuery) { 1511 jquery = window.jQuery; 1512 } else if (window.Checkout && window.Checkout.$) { 1513 jquery = window.Checkout.$; 1514 } 1515 1516 if (jquery) { 1517 jquery('body').append(content); 1518 } 1519 }; 1520 1521 var hasLoggedConversion = function(token) { 1522 if (token) { 1523 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1524 } 1525 return false; 1526 } 1527 1528 var setCookieIfConversion = function(token) { 1529 if (token) { 1530 var twoMonthsFromNow = new Date(Date.now()); 1531 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1532 1533 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1534 } 1535 } 1536 1537 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1538 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1539 if (trekkie.integrations) { 1540 return; 1541 } 1542 trekkie.methods = [ 1543 'identify', 1544 'page', 1545 'ready', 1546 'track', 1547 'trackForm', 1548 'trackLink' 1549 ]; 1550 trekkie.factory = function(method) { 1551 return function() { 1552 var args = Array.prototype.slice.call(arguments); 1553 args.unshift(method); 1554 trekkie.push(args); 1555 if (method == 'track' || method == 'page') { 1556 var pageUrl; 1557 try { 1558 pageUrl = window.location.href; 1559 } catch (e) {} 1560 var pageReferrer; 1561 try { 1562 pageReferrer = document.referrer; 1563 } catch (e) {} 1564 try { 1565 if (window.__TREKKIE_SHIM_QUEUE == null) { 1566 window.__TREKKIE_SHIM_QUEUE = []; 1567 } 1568 window.__TREKKIE_SHIM_QUEUE.push({ 1569 from: 'trekkie-stub', 1570 method: method, 1571 args: args.slice(1), 1572 pageContext: { 1573 url: pageUrl, 1574 referrer: pageReferrer 1575 } 1576 }); 1577 } catch (e) { 1578 // no-op 1579 } 1580 } 1581 return trekkie; 1582 }; 1583 }; 1584 for (var i = 0; i < trekkie.methods.length; i++) { 1585 var key = trekkie.methods[i]; 1586 trekkie[key] = trekkie.factory(key); 1587 } 1588 trekkie.load = function(config) { 1589 trekkie.config = config || {}; 1590 trekkie.config.initialDocumentCookie = document.cookie; 1591 var first = document.getElementsByTagName('script')[0]; 1592var script = document.createElement('script'); 1593script.type = 'text/javascript'; 1594script.onerror = function(e) { 1595 var scriptFallback = document.createElement('script'); 1596 scriptFallback.type = 'text/javascript'; 1597 scriptFallback.onerror = function(error) { 1598 var Monorail = { 1599 produce: function produce(monorailDomain, schemaId, payload) { 1600 var currentMs = new Date().getTime(); 1601 var event = { 1602 schema_id: schemaId, 1603 payload: payload, 1604 metadata: { 1605 event_created_at_ms: currentMs, 1606 event_sent_at_ms: currentMs 1607 } 1608 }; 1609 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1610 }, 1611 sendRequest: function sendRequest(endpointUrl, payload) { 1612 // Try the sendBeacon API 1613 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1614 var blobData = new window.Blob([payload], { 1615 type: 'text/plain' 1616 }); 1617 1618 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1619 return true; 1620 } // sendBeacon was not successful 1621 1622 } // XHR beacon 1623 1624 var xhr = new XMLHttpRequest(); 1625 1626 try { 1627 xhr.open('POST', endpointUrl); 1628 xhr.setRequestHeader('Content-Type', 'text/plain'); 1629 xhr.send(payload); 1630 } catch (e) { 1631 console.log(e); 1632 } 1633 1634 return false; 1635 }, 1636 isIos12: function isIos12() { 1637 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1638 } 1639 }; 1640 Monorail.produce('monorail-edge.shopifysvc.com', 1641 'trekkie_storefront_load_errors/1.1', 1642 {shop_id: 60985671727, 1643 theme_id: 149082800175, 1644 app_name: "storefront", 1645 context_url: window.location.href, 1646 source_url: "//www.americanstandard-us.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1647 1648 }; 1649 scriptFallback.async = true; 1650 scriptFallback.src = '//www.americanstandard-us.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1651 first.parentNode.insertBefore(scriptFallback, first); 1652}; 1653script.async = true; 1654script.src = '//www.americanstandard-us.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1655first.parentNode.insertBefore(script, first); 1656 1657 }; 1658 trekkie.load( 1659 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":60985671727,"isMerchantRequest":null,"themeId":149082800175,"themeCityHash":"3936128621109775168","contentLanguage":"en","currency":"USD","eventMetadataId":"2c0687d3-ccb1-45e5-8c68-dd9eaba05b16"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1660 ); 1661 1662 var loaded = false;
1663 trekkie.ready(function() { 1664 if (loaded) return; 1665 loaded = true; 1666 1667 window.ShopifyAnalytics.lib = window.trekkie; 1668 1669 var originalDocumentWrite = document.write; 1670 document.write = customDocumentWrite; 1671 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1672 document.write = originalDocumentWrite; 1673 1674 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1675 var token = match? match[1]: undefined; 1676 if (!hasLoggedConversion(token)) { 1677 setCookieIfConversion(token); 1678 1679 } 1680 }); 1681 1682 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"b2601ade-dc57-41a5-8b54-a42b5aa2fadb-1790908240","shopifyEmitted":true}); 1683 1684 var eventsListenerScript = document.createElement('script'); 1685 eventsListenerScript.async = true; 1686 eventsListenerScript.src = "//www.americanstandard-us.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1687 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1688})();</script>
vendor: 1 bytes, line 1688
1688
1689<script 1690 defer 1691 src="https://www.americanstandard-us.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1692 data-application="storefront-renderer" 1693 data-shop-id="60985671727" 1694 data-render-region="gcp-us-central1" 1695 data-page-type="index" 1696 data-theme-instance-id="149082800175" 1697 data-theme-name="Shopify theme framework" 1698 data-theme-version="11.0.0" 1699 data-monorail-region="shop_domain" 1700 data-resource-timing-sampling-rate="10" 1701 data-shs="true" 1702 data-shs-beacon="true" 1703 data-shs-export-with-fetch="true" 1704 data-shs-logs-sample-rate="1" 1705 data-shs-beacon-endpoint="https://www.americanstandard-us.com/api/collect" 1706></script>
1706 1707<meta name="shopify-y" content="36832a43-781b-49e3-8b40-31b258190bfe" data-expiration="1822465840000"><meta name="shopify-s" content="5e2d8d28-8c53-469f-bf0b-d856df79e658" data-expiration="1790910040000"><meta name="new-cookie-storage-activated" content="t"> 1708</head> 1709 1710 <body class="template-index template-type-index bg-white "> 1711 1712 1713 1714 1715 <div id="shopify-section-alert-message" class="shopify-section alert-message"> 1716 1717 1718 1719 <style data-shopify> 1720 .alert-message .promo-banner{ 1721 justify-content: flex-start; 1722 } 1723 1724 @media (min-width: 640px) { 1725 .alert-message .promo-banner{ 1726 justify-content: flex-start; 1727 } 1728 } 1729 1730 @media (min-width: 1024px) { 1731 .alert-message .promo-banner{ 1732 justify-content: flex-start; 1733 } 1734 } 1735 1736 .alert-message .text-banner-mobile{ 1737 font-size: 9px; 1738 line-height: 1; 1739 text-align: left; 1740 } 1741 1742 @media (min-width: 390px) { 1743 .alert-message .text-banner-mobile{ 1744 font-size: 10px; 1745 line-height: 1.2; 1746 } 1747 } 1748 1749 @media (min-width: 520px) { 1750 .alert-message .text-banner-mobile{ 1751 font-size: 12px; 1752 } 1753 } 1754 </style> 1755 1756 <section 1757 class="flex items-center justify-between h-9" 1758 style="color: #ffffff; background: #000000;" 1759 > 1760 <div class="flex flex-1 gap-1 px-1 md:px-4 xl:px-10 md:gap-0 promo-banner"> 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 <p class="text-banner-mobile m-0 md:hidden"> 1773 1774 1775 1776 1777 <a href="https://www.americanstandard-us.com/pages/home-services?utm_content=hp_promo" class="font-semibold leading-none underline-offset-2">Home Services</a> 1778 1779 </p> 1780 1781 <p class="sm:text-sm hidden md:block"> 1782 1783 1784 <a href="https://www.americanstandard-us.com/pages/home-services?utm_content=hp_promo" class="font-semibold leading-none underline-offset-2"> 1785 Home Services 1786 </a> 1787 1788 </p> 1789 1790 </div> 1791 1792 <div class="flex items-center justify-end h-9"> 1793 1794 1795 <localization-form> 1796 <form method="post" action="/localization" id="localization_form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/" /> 1797 <div class="disclosure px-3 relative"> 1798 <button type="button" class="disclosure__button flex items-center gap-2 text-sm" aria-expanded="false" aria-controls="CountryList"> 1799 1800 1801 1802 <img src="//www.americanstandard-us.com/cdn/shop/t/165/assets/US.png?v=171626655246532861041759779205" alt="US" class="w-4 h-4 inline-block" width="16" height="16" loading="lazy"> 1803 </button> 1804 1805 <ul id="CountryList" role="list" class="disclosure__list absolute z-50 py-3 px-5 left-0 top-6 text-sm w-24 shadow-sm" hidden style="color: #ffffff; background: #000000;"> 1806 1807 1808 1809 1810 <li class="disclosure__item pb-1" tabindex="-1"> 1811 <a href="#" data-value="CA" class="flex items-center"> 1812 <img src="//www.americanstandard-us.com/cdn/shop/t/165/assets/CA.png?v=17185329757467796251759779035" alt="CA" class="w-4 h-4 mr-2 inline-block" width="16" height="16" loading="lazy"> 1813 CA 1814 </a> 1815 </li> 1816 1817 1818 1819 1820 <li class="disclosure__item pb-1" tabindex="-1"> 1821 <a href="#" data-value="MX" class="flex items-center"> 1822 <img src="//www.americanstandard-us.com/cdn/shop/t/165/assets/MX.png?v=9293740784183461771759779147" alt="MX" class="w-4 h-4 mr-2 inline-block" width="16" height="16" loading="lazy"> 1823 MX 1824 </a> 1825 </li> 1826 1827 1828 1829 1830 <li class="disclosure__item pb-1" tabindex="-1"> 1831 <a href="#" aria-current="true" data-value="US" class="flex items-center"> 1832 <img src="//www.americanstandard-us.com/cdn/shop/t/165/assets/US.png?v=171626655246532861041759779205" alt="US" class="w-4 h-4 mr-2 inline-block" width="16" height="16" loading="lazy"> 1833 US 1834 </a> 1835 </li> 1836 1837 </ul> 1838 1839 <input type="hidden" name="country_code" value="US"> 1840 </div> 1841 </form> 1842 1843 </localization-form> 1844 1845 1846 1847 1848
1849<script> 1850 class LocalizationForm extends HTMLElement { 1851 constructor() { 1852 super(); 1853 this.elements = { 1854 input: this.querySelector('input[name="language_code"], input[name="country_code"]'), 1855 button: this.querySelector('button'), 1856 panel: this.querySelector('ul'), 1857 }; 1858 this.elements.button.addEventListener('click', this.openSelector.bind(this)); 1859 this.elements.button.addEventListener('focusout', this.closeSelector.bind(this)); 1860 this.addEventListener('keyup', this.onContainerKeyUp.bind(this)); 1861 1862 window.addEventListener('scroll', this.closeOnScroll.bind(this), { passive: true }); 1863 1864 this.querySelectorAll('a').forEach(item => item.addEventListener('click', this.onItemClick.bind(this))); 1865 } 1866 1867 hidePanel() { 1868 this.elements.button.setAttribute('aria-expanded', 'false'); 1869 this.elements.panel.setAttribute('hidden', true); 1870 } 1871 1872 closeOnScroll() { 1873 if (!this.elements.panel.hasAttribute('hidden')) { 1874 this.hidePanel(); 1875 } 1876 } 1877 1878 onContainerKeyUp(event) { 1879 if (event.code.toUpperCase() !== 'ESCAPE') return; 1880 this.hidePanel(); 1881 this.elements.button.focus(); 1882 } 1883 1884 onItemClick(event) { 1885 event.preventDefault(); 1886 const form = this.querySelector('form'); 1887 this.elements.input.value = event.currentTarget.dataset.value; 1888 if (form) form.submit(); 1889 } 1890 1891 openSelector() { 1892 this.elements.button.focus(); 1893 this.elements.panel.toggleAttribute('hidden'); 1894 this.elements.button.setAttribute('aria-expanded', (this.elements.button.getAttribute('aria-expanded') === 'false').toString()); 1895 } 1896 1897 closeSelector(event) { 1898 const shouldClose = event.relatedTarget && event.relatedTarget.nodeName === 'BUTTON'; 1899 if (event.relatedTarget === null || shouldClose) { 1900 this.hidePanel(); 1901 } 1902 } 1903 } 1904 1905 customElements.define('localization-form', LocalizationForm); 1906</script>
1906 1907 1908 1909 <a href="https://lixilpro.com/?utm_source=americanstandard-us.com&utm_medium=referral&utm_campaign=asus_nav_header_cta" class="flex items-center px-4 h-9 md:px-6" style="background: #e70025;"> 1910 <span class="text-xs md:text-sm font-semibold">Professionals</span> 1911 </a> 1912 1913 </div> 1914 </section> 1915 1916 1917 1918 1919 1920 1921</div> 1922 1923 1924 1925 1926 <div id="shopify-section-header-menu-centered" class="shopify-section sticky top-0 z-30 w-full"> 1927 1928
1929<script> 1930 if (false) { 1931 const headerElement = document.getElementById('shopify-section-header-menu-centered'); 1932 if (headerElement) { 1933 headerElement.classList.remove('sticky'); 1934 headerElement.classList.add('relative'); 1935 } 1936 } 1937</script>
1937 1938 1939 1940<style> 1941 @media screen and (min-width: 1280px) { 1942 .search-open { 1943 min-width: 156px; 1944 } 1945 } 1946 @media screen and (min-width: 1440px) { 1947 .search-open { 1948 min-width: 172px; 1949 } 1950 } 1951</style> 1952<header class="bg-white block"> 1953 <div class="container flex justify-between items-center py-4 md:px-4 xl:px-10 md:m-0 md:max-w-none"> 1954 <a href="/" class="block"> 1955 <span class="sr-only">American Standard</span> 1956 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="logo fill-primary w-[164px] xl:w-[214px]" width="214" height="24" viewBox="0 0 214 24" fill="none"> 1957 <g id="Group 1"> 1958 <g id="Vector"> 1959 <path d="M125.632 0.519143C123.344 1.33216 121.718 2.53664 120.695 4.13256C119.882 5.39726 119.792 5.72849 119.882 7.5352C119.972 9.37202 120.123 9.73337 121.478 11.7207C124.398 15.9364 124.94 16.9301 124.94 18.0743C124.94 21.5673 119.43 22.5309 116.45 19.5498C115.426 18.5561 115.306 18.255 115.306 16.9301C115.306 15.816 115.487 15.1836 116.059 14.4308C116.339 14.0803 116.591 13.7078 116.811 13.3167C116.811 13.2565 116.48 13.2263 116.059 13.2263C115.185 13.2263 113.349 14.762 112.687 16.0267C112.085 17.2011 112.085 19.4896 112.717 20.6941C113.71 22.5911 116.059 23.7655 118.888 23.7655C124.308 23.7655 128.884 20.3628 128.854 16.3881C128.823 15.3944 127.8 13.3769 125.813 10.5163C124.308 8.31811 123.916 7.5352 123.796 6.33073C123.615 4.46379 124.368 3.28943 126.144 2.56675C127.679 1.96451 128.823 1.96451 129.697 2.56675C130.509 3.13887 130.539 3.59055 129.757 5.09614C128.944 6.72218 128.974 6.90285 130.299 6.90285C133.67 6.90285 135.507 2.65708 132.978 0.760036C131.774 -0.143319 127.83 -0.263765 125.632 0.519143Z" fill="black"/> 1960 <path d="M177.324 1.12142C176.331 1.60321 176.18 1.87421 174.795 6.08987L173.32 10.5163L172.658 9.91407C171.303 8.64938 168.563 9.40217 166.426 11.6304C165.252 12.8349 163.686 15.7558 163.355 17.2915C162.903 19.3391 161.278 20.9049 160.646 19.8811C160.555 19.7305 160.856 18.2249 161.338 16.5086C162.482 12.3531 162.633 11.3293 162.271 10.3959C161.88 9.34195 160.646 9.34195 159.02 10.426C157.695 11.3293 156.521 12.6543 154.444 15.4848C153.751 16.4785 153.27 17.0205 153.39 16.6892C156.13 9.79363 156.16 9.61296 154.564 9.61296C152.487 9.61296 151.794 10.5163 150.53 14.8825C149.446 18.6766 148.513 20.1521 147.188 20.1521C146.706 20.1521 146.977 18.2852 148.001 14.8825C148.423 13.3769 148.874 11.9316 148.934 11.6304C149.055 11.239 148.904 11.1185 148.302 11.1185C147.881 11.1185 147.519 10.9981 147.519 10.8174C147.399 10.4699 147.192 10.1589 146.917 9.91407C146.195 9.19139 143.816 9.10105 142.311 9.70329C140.053 10.6669 137.795 13.4673 136.802 16.5688C136.474 17.5219 135.962 18.4017 135.296 19.1584C134.393 20.0919 133.279 20.4532 132.948 19.9112C132.737 19.58 133.52 16.2677 134.333 13.9189C134.935 12.1423 135.056 12.0219 135.929 12.0219C137.133 12.0219 139.511 10.7873 139.632 10.1249C139.722 9.70329 139.451 9.61296 137.916 9.61296C136.892 9.61296 136.079 9.52262 136.079 9.37206C136.239 8.75706 136.44 8.15347 136.681 7.56535C136.93 6.95976 137.132 6.33553 137.283 5.69842C137.283 5.24674 135.086 5.33707 134.393 5.84897C134.032 6.08987 133.43 7.02334 133.069 7.9568C132.436 9.55273 132.346 9.61296 131.262 9.61296C129.877 9.61296 128.553 10.5765 128.553 11.6003C128.553 12.2628 128.673 12.323 129.907 12.323C130.66 12.323 131.262 12.3832 131.262 12.4736C131.262 12.5639 130.871 14.0093 130.359 15.6955C129.486 18.6465 129.155 21.9588 129.697 22.7417C130.54 24.0064 132.286 23.9462 134.785 22.5309L136.32 21.6878L136.802 22.4105C137.825 23.9462 140.324 24.0064 142.221 22.5309L142.943 21.9588L143.907 22.8923C144.9 23.9161 145.713 23.9462 147.489 23.0729C148.182 22.7417 148.362 22.7417 149.055 23.2536C149.807 23.7956 149.898 23.7956 150.801 23.344C151.313 23.0729 152.908 21.2963 154.504 19.1885C157.906 14.732 158.327 14.2201 158.357 14.4911C158.357 14.6115 158.087 15.8762 157.755 17.2915C157.443 18.5767 157.242 19.8864 157.153 21.206C157.153 24.0968 159.381 24.4882 162.633 22.1696C163.084 21.8685 163.235 21.9287 163.626 22.4707C164.379 23.5246 165.794 23.8559 167.6 23.3138C168.443 23.0729 169.286 22.6815 169.467 22.4406C169.768 22.1094 169.978 22.1696 170.701 22.9224C171.454 23.6752 171.755 23.7956 172.598 23.615C173.432 23.3673 174.232 23.0131 174.976 22.561L176.391 21.7179L176.843 22.4105C177.241 22.9038 177.774 23.2701 178.378 23.4644C179.311 23.7655 179.703 23.7354 180.786 23.344C181.509 23.0428 182.262 22.6213 182.442 22.3804C182.954 21.8083 183.255 21.8384 183.496 22.5309C183.797 23.5246 185.152 23.8559 186.657 23.344C187.801 22.9525 187.982 22.9525 188.403 23.3741C188.704 23.6752 189.156 23.7655 189.788 23.6451C191.384 23.3138 191.956 22.7116 192.829 20.2424C194.153 16.5387 194.846 15.5149 196.532 14.7922C198.218 14.0695 198.609 13.6781 199 12.323C199.572 10.3055 198.489 9.9743 196.171 11.4197C194.786 12.2929 194.756 12.323 194.966 11.6606C195.418 10.2754 195.267 9.76351 194.424 9.67318C193.832 9.65339 193.243 9.77737 192.708 10.0345C191.775 10.5163 191.625 10.9379 190.42 15.6353C189.668 18.5562 188.644 20.1521 187.47 20.1521C186.958 20.1521 186.898 20.0015 187.048 18.8573C187.299 17.5136 187.631 16.1863 188.042 14.8825C189.035 11.4498 189.066 11.2992 188.253 11.1788C187.861 11.1185 187.56 10.9379 187.56 10.7873C187.437 10.4498 187.23 10.1493 186.958 9.91407C186.115 9.07094 183.677 9.10105 181.93 9.94418C179.823 10.968 177.565 14.0996 176.451 17.5023C175.969 18.9777 175.006 20.1521 174.284 20.1521C173.139 20.1521 173.38 19.309 177.776 7.14378C178.89 4.04226 179.733 1.30209 179.612 1.03108C179.402 0.428843 178.619 0.458955 177.324 1.12142ZM144.84 13.0156C145.472 14.4007 143.124 19.4595 141.468 20.3328C140.113 21.0253 139.571 20.4532 139.782 18.6465C140.264 14.6115 143.786 10.697 144.84 13.0156ZM171.574 12.865C172.297 14.2502 169.828 19.6402 168.112 20.4231C166.456 21.1759 166.065 19.7305 167.118 16.629C168.202 13.3769 170.731 11.2691 171.574 12.865ZM184.851 12.9253C185.603 14.3405 183.135 19.6101 181.358 20.4231C179.703 21.1759 179.311 19.7305 180.365 16.629C181.479 13.3468 183.978 11.2691 184.851 12.9253Z" fill="black"/> 1961 <path d="M212.036 0.970654C211.583 1.12575 211.157 1.34915 210.771 1.63311C210.621 1.78367 209.928 3.68072 209.236 5.84877C207.64 10.757 207.701 10.6968 206.978 9.91387C206.316 9.19119 204.871 9.13096 203.365 9.7332C200.987 10.757 198.277 14.6113 197.465 18.1645C196.802 21.1456 197.766 23.1932 200.024 23.6148C200.867 23.7954 201.469 23.6449 202.733 23.0426L204.359 22.2296L205.142 23.0125C206.045 23.9159 206.256 23.9159 208.212 23.2534C209.236 22.9222 210.199 22.2296 211.404 20.995C213.18 19.1883 213.662 18.2549 213.3 17.1708C213.12 16.5987 212.247 16.2675 212.247 16.7493C212.247 17.2913 209.176 20.1519 208.604 20.1519C208.032 20.1519 208.002 20.0315 208.182 19.0076C208.483 17.4719 209.387 14.7017 212.036 7.50492C214.655 0.42864 214.655 0.0371873 212.036 0.970654ZM206.015 12.9552C206.707 14.0693 204.178 19.5497 202.522 20.453C201.74 20.8746 201.649 20.8746 201.228 20.3025C199.963 18.5861 203.004 12.1421 204.991 12.383C205.391 12.4418 205.755 12.6454 206.015 12.9552Z" fill="black"/> 1962 </g> 1963 <g id="Vector_2"> 1964 <path d="M19.4484 0.428648C18.0033 0.940549 17.0399 1.87402 12.9756 6.60158C6.71362 13.9188 0 22.591 0 23.3739C0 23.7653 0.270953 23.7954 1.44508 23.6148C4.0643 23.2233 4.5761 22.8319 6.71362 19.64L8.70061 16.6288L11.1392 16.418C12.494 16.2976 13.6982 16.2976 13.8186 16.3578C13.9691 16.4481 13.8186 17.7128 13.5176 19.1582C12.8251 22.4404 12.795 23.4341 13.4272 23.675C14.0595 23.9159 16.9797 22.9824 17.4614 22.3802C17.6722 22.1393 17.913 21.1757 17.9732 20.2121C18.184 16.4783 18.3345 15.9362 19.1474 15.9362C20.0806 15.9362 21.9472 15.0028 22.6999 14.1596L23.2719 13.5273H21.1343C19.4484 13.5273 18.9667 13.437 18.9667 13.1057C18.9667 12.5336 20.5924 6.21012 21.5558 3.01827C22.1881 0.970661 22.2483 0.45876 21.9171 0.247978C21.3752 -0.113365 20.8333 -0.0531413 19.4484 0.428648ZM15.9561 9.07075C15.5045 10.6065 15.0228 12.2325 14.9325 12.6842C14.7519 13.4972 14.6616 13.5273 12.9154 13.5273C11.4402 13.5273 11.1392
196413.437 11.3499 13.1057C11.6811 12.5035 16.5583 6.30046 16.6787 6.30046C16.7389 6.30046 16.4077 7.56515 15.9561 9.07075Z" fill="black"/> 1965 <path d="M67.4666 5.96923C66.6838 7.05326 66.6838 7.56516 67.3762 8.19751C68.1289 8.85997 68.7009 8.82986 69.6643 8.07706C70.3266 7.56516 70.4771 7.23393 70.3868 6.33057C70.2965 5.30677 70.2363 5.24655 69.2127 5.15621C68.2794 5.06588 68.0085 5.21644 67.4666 5.96923Z" fill="black"/> 1966 <path d="M49.163 9.76369C46.7245 10.8176 44.2257 14.0998 43.3526 17.4422C42.9612 18.9779 41.9978 20.1523 41.185 20.1523C40.4323 20.1523 40.4925 19.0683 41.3957 15.9667C42.8107 11.0886 42.7204 9.61313 40.9441 9.61313C39.6496 9.61313 37.9335 11.1187 35.8261 14.0697C34.7724 15.5753 33.8391 16.7798 33.7789 16.7195C33.7187 16.6593 34.0198 15.4849 34.4412 14.1299C35.5853 10.5165 35.4649 9.61313 33.8692 9.61313C32.3941 9.61313 30.7984 10.9682 28.6007 14.0697C27.547 15.5753 26.6438 16.7798 26.5836 16.7195C26.8526 15.8182 27.1743 14.9334 27.547 14.0697C28.119 12.6544 28.691 11.0886 28.7813 10.5466C28.962 9.61313 28.962 9.61313 27.7878 9.61313C27.1347 9.59384 26.4916 9.77747 25.9471 10.1388C25.4026 10.5001 24.9833 11.0212 24.7471 11.6306C23.9945 13.5578 22.3086 19.3091 21.9473 21.0255C21.5559 23.1334 21.7366 23.5248 23.0311 23.5248C24.1149 23.5549 25.3794 22.23 28.3599 18.0746C29.7146 16.1775 30.8586 14.7623 30.9189 14.9429C30.9791 15.0935 30.678 16.569 30.2565 18.195C29.3534 21.7482 29.2931 23.043 30.0759 23.4345C31.0393 23.976
19665 32.4543 22.6817 35.3143 18.5564C36.7895 16.4485 38.0841 14.7623 38.1443 14.8526C38.2346 14.9128 38.054 15.9968 37.783 17.2615C37.4983 18.5193 37.3171 19.7984 37.2411 21.0857C37.1809 22.3806 37.3013 22.7118 37.9034 23.1936C38.8367 23.9464 39.9205 23.7657 41.9677 22.5311L43.4429 21.6278L44.1655 22.3806C45.7611 24.0969 49.0727 24.0367 51.8726 22.2601L53.2574 21.3869L52.9564 22.1999C52.3844 23.6453 53.8596 24.0066 55.9369 22.8925C56.2981 22.7118 56.7497 21.8988 57.0508 20.9954C57.3518 20.1222 57.954 18.5865 58.4357 17.5627C59.2184 15.9065 59.4894 15.6355 61.1452 14.7321C62.5301 14.0095 63.072 13.4976 63.4031 12.7147C64.3665 10.4563 62.9817 9.82392 60.6033 11.4801C59.2485 12.4135 59.2184 12.4135 59.4292 11.6909C60.1216 9.46257 60.1216 9.5228 58.5862 9.67336C56.7798 9.88414 56.4186 10.2154 55.8465 12.263C55.6057 13.2266 55.2444 14.5214 55.0638 15.1537C54.6724 16.5389 52.1435 19.3393 50.5178 20.1824C48.9222 20.9954 47.6878 20.9352 47.0857 20.0017C46.3632 18.9177 46.7245 18.466 48.4104 18.2552C52.2338 17.8036 54.9735 14.7623 54.3714 11.6005C53.98 9.55291 51.5715 8.70978 49.163 9.76369ZM51.1199 13.0158C51.2403 14.0095 49.6447 15.7861 48.3502 16.1173C47.1459 16.4184 47.0556 16.0571 47.8685 14.5515C49.1329 12.1425 50.9393 11.2994 51.1199 13.0158Z" fill="black"/> 1967 <path d="M74.363 9.64294C72.1352 10.5463 69.7267 13.6177 68.7633 16.8698C68.1913 18.7066 67.0172 20.152 66.0237 20.152C65.2711 20.152 65.6624 18.3151 67.3785 13.979C68.2214 11.8712 68.8537 10.0043 68.7633 9.85372C68.4924 9.43215 66.7161 9.58271 65.9936 10.0946C64.1571 11.3894 61.2369 20.3929 62.0196 22.4104C62.1229 22.6399 62.2768 22.8431 62.4697 23.0047C62.6626 23.1664 62.8895 23.2823 63.1335 23.3438C64.2173 23.6148 66.4452 23.0126 67.6193 22.1092L68.5526 21.3866L69.1246 22.1394C70.66 24.1568 74.4233 24.0063 77.0425 21.778C77.5844 21.3263 78.036 21.0252 78.0661 21.0854C78.1263 21.1457 78.3069 21.5973 78.5177 22.049C79.2703 23.7955 81.9798 24.1267 83.9969 22.7416L84.9904 22.0791L85.8635 22.9524C86.6162 23.7052 86.857 23.7955 87.8505 23.6148C88.4817 23.4917 89.0975 23.2999 89.687 23.0427C90.3192 22.7115 90.4998 22.7416 90.9514 23.1933C91.212 23.4865 91.5606 23.6872 91.9449 23.7654C92.7277 23.7654 94.1125 22.32 96.7618 18.827C98.1768 16.9601 99.5617 15.2437 99.8326 15.0028C100.314 14.6114 100.344 14.6415 100.194 15.3341C98.7789 21.5973 98.7789 22.9524 100.194 23.4944C101.579 24.0364 103.897 23.1029 105.824 21.2059C106.727 20.3326 107.63 19.2185 107.781 18.7668C108.142 17.8334 107.961 16.5385 107.449 16.5385C107.299 16.5385 106.396 17.3516 105.462 18.3453C103.716 20.2423 102.663 20.6639 102.663 19.4594C102.663 19.0679 102.994 17.6226 103.385 16.2374C104.8 11.3593 104.71 9.61283 103.084 9.61283C101.458 9.61283 99.4714 11.3292 96.8221 15.033C96.0694 16.0869 95.4372 16.8999 95.4372 16.8096C95.4372 16.7192 95.9791 15.1835 96.6414 13.4069C97.3339 11.6604 97.7854 10.0645 97.6951 9.91394C97.4543 9.52249 95.9189 9.52249 95.0157 9.94406C94.0824 10.3656 93.5706 11.4496 92.4567 15.1534C91.5535 18.2248 90.3794 20.152 89.3859 20.152C88.8139 20.152 88.7838 20.0315 88.9644 18.8572C89.0848 18.1646 89.5665 16.2675 90.0482 14.6716C90.5299 13.0456 90.9213 11.6002 90.9213 11.4195C90.9213 11.269 90.5901 11.1184 90.1686 11.1184C89.7171 11.1184 89.416 10.9377 89.416 10.6969C89.416 9.91394 88.1516 9.31171 86.5559 9.31171C83.6658 9.31171 81.1369 11.4496 79.0295 15.6352C77.7951 18.0743 76.5307 19.5497 75.0856 20.2122C72.0449 21.5371 71.0213 18.9776 73.0083 15.033C73.7007 13.6779 75.1157 12.0218 75.5974 12.0218C76.0189 12.0218 75.9286 13.0757 75.4167 14.0092C74.8146 15.1534 74.8447 15.5449 75.5372 15.7858C77.2231 16.297
19677 79.18 14.5813 79.18 12.5939C79.18 11.2389 78.5478 9.76338 77.8252 9.49238C77.1027 9.22137 75.2361 9.31171 74.363 9.64294ZM86.8871 13.0757C87.3989 15.1835 84.298 20.7542 82.6121 20.7542C80.896 20.7542 81.8895 15.9664 84.1776 13.2564C85.2012 12.0519 86.586 11.9314 86.8871 13.0757Z" fill="black"/> 1968 </g> 1969 </g> 1970</svg> 1971 </a> 1972 1973 <component-menu data-menu 1974 id="main-menu" 1975 role="navigation" 1976 aria-label="Main menu" 1977 class="hidden z-10 md:max-w-sm fixed bg-white h-screen w-screen inset-0 p-4 flex flex-col justify-between xl:block xl:bg-transparent xl:static xl:px-6 xl:pr-0 xl:max-w-none xl:w-auto xl:h-max xl:p-0 xl:flex-[1_1_0%]"> 1978 1979 <ul class="flex flex-col xl:items-center xl:flex-row xl:justify-end" role="menubar"> 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994<li class="menu__level-1 border-b border-border xl:border-0 xl:mr-6 xl:py-6" role="none"> 1995 1996 1997 1998 <div class="hidden xl:flex items-center justify-between hover:cursor-pointer w-full flex-nowrap" role="none"> 1999 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bathroom" data-menu-level1-link data-menu-submenu-target="level_1_bathroom" data-menu-submenu-target-hover="level_1_bathroom"><span>Bathroom</span></a> 2000 <button class="mt-1 ml-2" aria-label="Open submenu Bathroom" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bathroom" data-menu-submenu-target="level_1_bathroom"> 2001 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 2002 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 2003</svg> 2004 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2005 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 2006</svg> 2007 </button> 2008 </div> 2009 2010 2011 2012 <div class="flex xl:hidden items-center justify-between hover:cursor-pointer" role="none"> 2013 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bathroom" data-menu-level1-link data-menu-submenu-target-hover="level_1_bathroom"><span>Bathroom</span></a> 2014 <button class="mt-1 ml-2" aria-label="Open submenu Bathroom" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bathroom" data-menu-submenu-target="level_1_bathroom"> 2015 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 2016 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 2017</svg> 2018 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2019 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 2020</svg> 2021 </button> 2022 </div> 2023 2024 <div data-menu-submenu="level_1_bathroom" 2025 id="submenu-level-1-bathroom" 2026 role="menu" 2027 aria-label="Bathroom" 2028 class="hidden p-4 bg-white fixed w-screen inset-0 z-50 flex flex-col justify-between md:max-w-sm 2029 xl:max-w-none px-4 xl:max-h-max xl:h-fit"> 2030 2031 <div data-menu-submenu-container class="overflow-y-auto relative xl:overflow-x-visible xl:flex xl:justify-between xl:container pb-40 xl:pb-0"> 2032 <button type="button" data-menu-close aria-label="Close" class="hidden xl:flex items-center justify-center bg-white shadow-xl w-6 h-6 rounded-full fixed z-10"> 2033 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"> 2034 <path d="M10.5 4.1125L9.8875 3.5L7 6.3875L4.1125 3.5L3.5 4.1125L6.3875 7L3.5 9.8875L4.1125 10.5L7 7.6125L9.8875 10.5L10.5 9.8875L7.6125 7L10.5 4.1125Z" fill="#E70025"/> 2035 </svg> 2036 </button> 2037 <div class="xl:hidden mb-2"> 2038 <div class="flex justify-between items-center"> 2039 <button class="flex items-center text-xl font-medium" aria-label="Close submenu Bathroom" data-menu-submenu-close-target="level_1_bathroom"> 2040 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-left fill-secondary w-5 h-5 mr-2" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2041 <path d="M7.5 12L15 4.5L16.05 5.55L9.6 12L16.05 18.45L15 19.5L7.5 12Z" fill="black"/> 2042</svg> Bathroom 2043 </button></div> 2044 </div> 2045 2046 2047 <ul class="xl:w-full xl:flex xl:gap-3 pb-4 xl:pb-0"> 2048 2049 2050 2051<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2052 <div class="xl:border-0 xl:p-0"> 2053 <div> 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 <a 2065 class="no-underline hidden xl:block" 2066 href="/collections/toilets" 2067 aria-label="Bathroom" 2068 target="_self" 2069 > 2070 2071 <img src="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_252AA899.020_7381987-101.2430A_0003_Nov2023.jpg?v=1742467441&width=700" alt="Aspirations_EnvironmentCloseUp_252AA899.020_7381987-101.2430A_0003_Nov2023" srcset="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_252AA899.020_7381987-101.2430A_0003_Nov2023.jpg?v=1742467441&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_252AA899.020_7381987-101.2430A_0003_Nov2023.jpg?v=1742467441&width=700 700w" width="700" height="625" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2072 2073 </a> 2074 2075 2076 2077 2078 2079 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2080 2081 2082 2083 2084 2085 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/toilets" target="_self" ><span>Toilets</span></a> 2086 2087 </div> 2088 2089 2090 2091 2092 2093 2094 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2095 2096 2097 2098 2099 <li class="mt-2"> 2100 <a class="text-sm" href="/collections/two-piece-toilets-list" >Two-Piece Toilets</a> 2101 </li> 2102 2103 2104 2105 2106 2107 <li class="mt-2"> 2108 <a class="text-sm" href="/collections/one-piece-toilets-list" >One-Piece Toilets</a> 2109 </li> 2110 2111 2112 2113 2114 2115 <li class="mt-2"> 2116 <a class="text-sm" href="/collections/premium-toilets-list" >Premium Toilets</a> 2117 </li> 2118 2119 2120 2121 2122 2123 <li class="mt-2"> 2124 <a class="text-sm" href="/collections/smart-toilets-list" >Smart Toilets</a> 2125 </li> 2126 2127 2128 2129 2130 2131 <li class="mt-2"> 2132 <a class="text-sm" href="/collections/toilet-seats-and-bidets" >Toilet + Bidet Seats</a> 2133 </li> 2134 2135 2136 2137 2138 2139 <li class="mt-2"> 2140 <a class="text-sm" href="/collections/toilet-trip-levers" >Toilet Trip Levers</a> 2141 </li> 2142 2143 2144 2145 2146 2147 <li class="mt-2 text-primary underline"> 2148 <a class="text-sm" href="/collections/toilets-list" >Shop All</a> 2149 </li> 2150 2151 2152 </ul> 2153 </div> 2154 </div> 2155 </li> 2156 2157 2158 2159<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2160 <div class="xl:border-0 xl:p-0"> 2161 <div> 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 <a 2173 class="no-underline hidden xl:block" 2174 href="/collections/showers" 2175 aria-label="Bathroom" 2176 target="_self" 2177 > 2178 2179 <img src="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_TU061507.295_0001_Nov2023.jpg?v=1742467827&width=700" alt="Aspirations_EnvironmentCloseUp_TU061507.295_0001_Nov2023" srcset="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_TU061507.295_0001_Nov2023.jpg?v=1742467827&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_TU061507.295_0001_Nov2023.jpg?v=1742467827&width=700 700w" width="700" height="625" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2180 2181 </a> 2182 2183 2184 2185 2186 2187 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2188 2189 2190 2191 2192 2193 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/showers" target="_self" ><span>Showers</span></a> 2194 2195 </div> 2196 2197 2198 2199 2200 2201 2202 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2203 2204 2205 2206 2207
2207 <li class="mt-2"> 2208 <a class="text-sm" href="/collections/showerheads-list" >Showerheads</a> 2209 </li> 2210 2211 2212 2213 2214 2215 <li class="mt-2"> 2216 <a class="text-sm" href="/collections/body-sprays-list" >Body Sprays</a> 2217 </li> 2218 2219 2220 2221 2222 2223 <li class="mt-2"> 2224 <a class="text-sm" href="/collections/hand-showers-and-accessories-list" >Hand Showers</a> 2225 </li> 2226 2227 2228 2229 2230 2231 <li class="mt-2"> 2232 <a class="text-sm" href="/collections/shower-systems-list" >Shower Systems</a> 2233 </li> 2234 2235 2236 2237 2238 2239 <li class="mt-2"> 2240 <a class="text-sm" href="/collections/shower-diverter-trims" >Shower Diverter Trims</a> 2241 </li> 2242 2243 2244 2245 2246 2247 <li class="mt-2"> 2248 <a class="text-sm" href="/collections/bath-shower-trim-kits-list" >Bathtub and Shower Trim Kits</a> 2249 </li> 2250 2251 2252 2253 2254 2255 <li class="mt-2"> 2256 <a class="text-sm" href="https://americanstandardbathing.com/collections/showers-shower-bases?utm_source=as_brand_site&utm_content=nav_menu" target="_blank" >Shower Bases</a> 2257 </li> 2258 2259 2260 2261 2262 2263 <li class="mt-2"> 2264 <a class="text-sm" href="https://americanstandardbathing.com/collections/showers-shower-walls?utm_source=as_brand_site&utm_content=nav_menu" target="_blank" >Shower Walls</a> 2265 </li> 2266 2267 2268 2269 2270 2271 <li class="mt-2"> 2272 <a class="text-sm" href="https://americanstandardbathing.com/collections/showers-shower-doors?utm_source=as_brand_site&utm_content=nav_menu" target="_blank" >Shower Doors</a> 2273 </li> 2274 2275 2276 2277 2278 2279 <li class="mt-2 text-primary underline"> 2280 <a class="text-sm" href="/collections/showers-list" >Shop All</a> 2281 </li> 2282 2283 2284 </ul> 2285 </div> 2286 </div> 2287 </li> 2288 2289 2290 2291<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2292 <div class="xl:border-0 xl:p-0"> 2293 <div> 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 <a 2305 class="no-underline hidden xl:block" 2306 href="/collections/bathtubs" 2307 aria-label="Bathroom" 2308 target="_self" 2309 > 2310 2311 <img src="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_2677004.020_T061901.243_0001_Nov2023.jpg?v=1742467863&width=700" alt="Aspirations_EnvironmentCloseUp_2677004.020_T061901.243_0001_Nov2023" srcset="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_2677004.020_T061901.243_0001_Nov2023.jpg?v=1742467863&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_2677004.020_T061901.243_0001_Nov2023.jpg?v=1742467863&width=700 700w" width="700" height="625" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2312 2313 </a> 2314 2315 2316 2317 2318 2319 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2320 2321 2322 2323 2324 2325 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/bathtubs" target="_self" ><span>Bathtubs</span></a> 2326 2327 </div> 2328 2329 2330 2331 2332 2333 2334 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2335 2336 2337 2338 2339 <li class="mt-2"> 2340 <a class="text-sm" href="/collections/walk-in-tubs" >Walk-in Bathtubs</a> 2341 </li> 2342 2343 2344 2345 2346 2347 <li class="mt-2"> 2348 <a class="text-sm" href="/collections/bathtub-faucets-list" >Bathtub Faucets</a> 2349 </li> 2350 2351 2352 2353 2354 2355 <li class="mt-2"> 2356 <a class="text-sm" href="https://americanstandardbathing.com/collections/bathtubs?utm_source=as_brand_site&utm_content=nav_menu" target="_blank" >Bathtubs</a> 2357 </li> 2358 2359 2360 </ul> 2361 </div> 2362 </div> 2363 </li> 2364 2365 2366 2367<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2368 <div class="xl:border-0 xl:p-0"> 2369 <div> 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 <a 2381 class="no-underline hidden xl:block" 2382 href="/collections/bathroom-sink-faucets" 2383 aria-label="Bathroom" 2384 target="_self" 2385 > 2386 2387 <img src="//www.americanstandard-us.com/cdn/shop/files/231950_Aspirations_Lifestyle_7061821.243_1642008.020_0003_Nov2023_CDNwebp_4f9ced27-125b-480e-ad3d-370ece3aa180.webp?v=1742466984&width=700" alt="231950_Aspirations_Lifestyle_7061821.243_1642008.020_0003_Nov2023_CDNwebp_4f9ced27-125b-480e-ad3d-370ece3aa180" srcset="//www.americanstandard-us.com/cdn/shop/files/231950_Aspirations_Lifestyle_7061821.243_1642008.020_0003_Nov2023_CDNwebp_4f9ced27-125b-480e-ad3d-370ece3aa180.webp?v=1742466984&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/231950_Aspirations_Lifestyle_7061821.243_1642008.020_0003_Nov2023_CDNwebp_4f9ced27-125b-480e-ad3d-370ece3aa180.webp?v=1742466984&width=700 700w" width="700" height="625" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2388 2389 </a> 2390 2391 2392 2393 2394 2395 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2396 2397 2398 2399 2400 2401 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/bathroom-sink-faucets" target="_self" ><span>Bathroom Sink Faucets</span></a> 2402 2403 </div> 2404 2405 2406 2407 2408 2409 2410 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2411 2412 2413 2414 2415 <li class="mt-2"> 2416 <a class="text-sm" href="/collections/single-hole-bathroom-faucets-list" >Single Hole Faucets</a> 2417 </li> 2418 2419 2420 2421 2422 2423 <li class="mt-2"> 2424 <a class="text-sm" href="/collections/centerset-bathroom-faucets-list" >Centerset Faucets</a> 2425 </li> 2426 2427 2428 2429 2430 2431 <li class="mt-2"> 2432 <a class="text-sm" href="/collections/widespread-bathroom-faucets-list" >Widespread Faucets</a> 2433 </li> 2434
2434 2435 2436 2437 2438 2439 <li class="mt-2"> 2440 <a class="text-sm" href="/collections/vessel-bathroom-faucets-list" >Vessel Faucets</a> 2441 </li> 2442 2443 2444 2445 2446 2447 <li class="mt-2"> 2448 <a class="text-sm" href="/collections/bathroom-accessories-list" >Accessories</a> 2449 </li> 2450 2451 2452 2453 2454 2455 <li class="mt-2 text-primary underline"> 2456 <a class="text-sm" href="/collections/bathroom-sink-faucets-list" >Shop All</a> 2457 </li> 2458 2459 2460 </ul> 2461 </div> 2462 </div> 2463 </li> 2464 2465 2466 2467<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2468 <div class="xl:border-0 xl:p-0"> 2469 <div> 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 <a 2481 class="no-underline hidden xl:block" 2482 href="/collections/sinks-and-vanities" 2483 aria-label="Bathroom" 2484 target="_self" 2485 > 2486 2487 <img src="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_7061121.243_1607000.020_0001_Nov2023.jpg?v=1742467570&width=700" alt="Aspirations_EnvironmentCloseUp_7061121.243_1607000.020_0001_Nov2023" srcset="//www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_7061121.243_1607000.020_0001_Nov2023.jpg?v=1742467570&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Aspirations_EnvironmentCloseUp_7061121.243_1607000.020_0001_Nov2023.jpg?v=1742467570&width=700 700w" width="700" height="625" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2488 2489 </a> 2490 2491 2492 2493 2494 2495 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2496 2497 2498 2499 2500 2501 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/sinks-and-vanities" target="_self" ><span>Sinks + Vanities</span></a> 2502 2503 </div> 2504 2505 2506 2507 2508 2509 2510 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2511 2512 2513 2514 2515 <li class="mt-2"> 2516 <a class="text-sm" href="/collections/countertop-bathroom-sinks-list" >Drop-in Sinks</a> 2517 </li> 2518 2519 2520 2521 2522 2523 <li class="mt-2"> 2524 <a class="text-sm" href="/collections/vanity-bathroom-sinks-list" >Vanity Sinks</a> 2525 </li> 2526 2527 2528 2529 2530 2531 <li class="mt-2"> 2532 <a class="text-sm" href="/collections/pedestal-bathroom-sinks-list" >Pedestal Sinks</a> 2533 </li> 2534 2535 2536 2537 2538 2539 <li class="mt-2"> 2540 <a class="text-sm" href="/collections/undermount-bathroom-sinks-list" >Undermount Sinks</a> 2541 </li> 2542 2543 2544 2545 2546 2547 <li class="mt-2"> 2548 <a class="text-sm" href="/collections/console-sinks-bathroom-furniture-list" >Console Sinks + Furniture</a> 2549 </li> 2550 2551 2552 2553 2554 2555 <li class="mt-2 text-primary underline"> 2556 <a class="text-sm" href="/collections/sinks-vanities-l
2556ist" >Shop All</a> 2557 </li> 2558 2559 2560 </ul> 2561 </div> 2562 </div> 2563 </li> 2564 2565 2566 </ul> 2567 2568 2569 2570 </div> 2571 2572 2573 </div> 2574 </li> 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591<li class="menu__level-1 border-b border-border xl:border-0 xl:mr-6 xl:py-6" role="none"> 2592 2593 2594 2595 <div class="hidden xl:flex items-center justify-between hover:cursor-pointer w-full flex-nowrap" role="none"> 2596 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-kitchen" data-menu-level1-link data-menu-submenu-target="level_1_kitchen" data-menu-submenu-target-hover="level_1_kitchen"><span>Kitchen</span></a> 2597 <button class="mt-1 ml-2" aria-label="Open submenu Kitchen" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-kitchen" data-menu-submenu-target="level_1_kitchen"> 2598 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 2599 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 2600</svg> 2601 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2602 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 2603</svg> 2604 </button> 2605 </div> 2606 2607 2608 2609 <div class="flex xl:hidden items-center justify-between hover:cursor-pointer" role="none"> 2610 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-kitchen" data-menu-level1-link data-menu-submenu-target-hover="level_1_kitchen"><span>Kitchen</span></a> 2611 <button class="mt-1 ml-2" aria-label="Open submenu Kitchen" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-kitchen" data-menu-submenu-target="level_1_kitchen"> 2612 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 2613 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 2614</svg> 2615 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2616 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 2617</svg> 2618 </button> 2619 </div> 2620 2621 <div data-menu-submenu="level_1_kitchen" 2622 id="submenu-level-1-kitchen" 2623 role="menu" 2624 aria-label="Kitchen" 2625 class="hidden p-4 bg-white fixed w-screen inset-0 z-50 flex flex-col justify-between md:max-w-sm 2626 xl:max-w-none px-4 xl:max-h-max xl:h-fit"> 2627 2628 <div data-menu-submenu-container class="overflow-y-auto relative xl:overflow-x-visible xl:flex xl:justify-between xl:container pb-40 xl:pb-0"> 2629 <button type="button" data-menu-close aria-label="Close" class="hidden xl:flex items-center justify-center bg-white shadow-xl w-6 h-6 rounded-full fixed z-10"> 2630 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"> 2631 <path d="M10.5 4.1125L9.8875 3.5L7 6.3875L4.1125 3.5L3.5 4.1125L6.3875 7L3.5 9.8875L4.1125 10.5L7 7.6125L9.8875 10.5L10.5 9.8875L7.6125 7L10.5 4.1125Z" fill="#E70025"/> 2632 </svg> 2633 </button> 2634 <div class="xl:hidden mb-2"> 2635 <div class="flex justify-between items-center"> 2636 <button class="flex items-center text-xl font-medium" aria-label="Close submenu Kitchen" data-menu-submenu-close-target="level_1_kitchen"> 2637 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-left fill-secondary w-5 h-5 mr-2" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2638 <path d="M7.5 12L15 4.5L16.05 5.55L9.6 12L16.05 18.45L15 19.5L7.5 12Z" fill="black"/> 2639</svg> Kitchen 2640 </button></div> 2641 </div> 2642 2643 2644 <ul class="xl:w-full xl:flex xl:gap-3 pb-4 xl:pb-0"> 2645 2646 2647 2648<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2649 <div class="xl:border-0 xl:p-0"> 2650 <div> 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 <a 2662 class="no-underline hidden xl:block" 2663 href="/collections/kitchen-faucets" 2664 aria-label="Kitchen" 2665 target="_self" 2666 > 2667 2668 <img src="//www.americanstandard-us.com/cdn/shop/files/StudioS_Lifestyle_4803350.243_0140_Mar2022.jpg?v=1742468977&width=700" alt="StudioS_Lifestyle_4803350.243_0140_Mar2022" srcset="//www.americanstandard-us.com/cdn/shop/files/StudioS_Lifestyle_4803350.243_0140_Mar2022.jpg?v=1742468977&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/StudioS_Lifestyle_4803350.243_0140_Mar2022.jpg?v=1742468977&width=700 700w" width="700" height="502" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2669 2670 </a> 2671 2672 2673 2674 2675 2676 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2677 2678 2679 2680 2681 2682 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/kitchen-faucets" target="_self" ><span>Kitchen Faucets</span></a> 2683 2684 </div> 2685 2686 2687 2688 2689 2690 2691 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2692 2693 2694 2695 2696 <li class="mt-2"> 2697 <a class="text-sm" href="/collections/single-hole-pull-out-kitchen-faucets" >Pull-Out Faucets</a> 2698 </li> 2699 2700 2701 2702 2703 2704 <li class="mt-2"> 2705 <a class="text-sm" href="/collections/single-hole-pull-down-faucets" >Pull-Down Faucets</a> 2706 </li> 2707 2708 2709 2710 2711 2712 <li class="mt-2"> 2713 <a class="text-sm" href="/collections/semi-professional-kitchen-faucets" >Semi-Pro Faucets</a> 2714 </li> 2715 2716 2717 2718 2719 2720 <li class="mt-2"> 2721 <a class="text-sm" href="/collections/bar-faucets-list" >Bar Faucets</a> 2722 </li> 2723 2724 2725 2726 2727 2728 <li class="mt-2"> 2729 <a class="text-sm" href="/collections/kitchen-soap-dispensers-list" >Soap Dispensers</a> 2730 </li> 2731 2732 2733 2734 2735 2736 <li class="mt-2 text-primary underline"> 2737 <a class="text-sm" href="/collections/kitchen-faucets-list" >Shop All</a> 2738 </li> 2739 2740 2741 </ul> 2742 </div> 2743 </div> 2744 </li> 2745 2746 2747 2748<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2749 <div class="xl:border-0 xl:p-0"> 2750 <div> 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 <a 2762 class="no-underline hidden xl:block" 2763 href="/collections/kitchen-sinks" 2764 aria-label="Kitchen" 2765 target="_self" 2766 > 2767 2768 <img src="//www.americanstandard-us.com/cdn/shop/files/AS_Kitchen_Nav_Sink.jpg?v=1742469108&width=700" alt="AS_Kitchen_Nav_Sink" srcset="//www.americanstandard-us.com/cdn/shop/files/AS_Kitchen_Nav_Sink.jpg?v=1742469108&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/AS_Kitchen_Nav_Sink.jpg?v=1742469108&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2769 2770 </a> 2771 2772 2773 2774 2775 2776 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2777 2778 2779 2780 2781 2782 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/kitchen-sinks" target="_self" ><span>Kitchen Sinks</span></a> 2783 2784 </div> 2785 2786 2787 2788 2789 2790 2791 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2792 2793 2794 2795 2796 <li class="mt-2"> 2797 <a class="text-sm" href="/collections/farmhouse-sinks-list" >Farmhouse Sinks</a> 2798 </li> 2799 2800 2801 2802 2803 2804 <li class="mt-2"> 2805
2805 <a class="text-sm" href="/collections/undermount-kitchen-sinks" >Undermount Sinks</a> 2806 </li> 2807 2808 2809 2810 2811 2812 <li class="mt-2"> 2813 <a class="text-sm" href="/collections/double-bowl-kitchen-sinks-list" >Double-Bowl Sinks</a> 2814 </li> 2815 2816 2817 2818 2819 2820 <li class="mt-2"> 2821 <a class="text-sm" href="/collections/kitchen-sink-accessories-list" >Kitchen Sink Accessories</a> 2822 </li> 2823 2824 2825 2826 2827 2828 <li class="mt-2 text-primary underline"> 2829 <a class="text-sm" href="/collections/kitchen-sinks-list" >Shop All</a> 2830 </li> 2831 2832 2833 </ul> 2834 </div> 2835 </div> 2836 </li> 2837 2838 2839 2840<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2841 <div class="xl:border-0 xl:p-0"> 2842 <div> 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 <a 2854 class="no-underline hidden xl:block" 2855 href="/collections/kitchen-filtration" 2856 aria-label="Kitchen" 2857 target="_self" 2858 > 2859 2860 <img src="//www.americanstandard-us.com/cdn/shop/files/L-4902330075_15.jpg?v=1742469270&width=700" alt="L-4902330075_15" srcset="//www.americanstandard-us.com/cdn/shop/files/L-4902330075_15.jpg?v=1742469270&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/L-4902330075_15.jpg?v=1742469270&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2861 2862 </a> 2863 2864 2865 2866 2867 2868 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2869 2870 2871 2872 2873 2874 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/kitchen-filtration" target="_self" ><span>Kitchen Faucet Filtration</span></a> 2875 2876 </div> 2877 2878 2879 2880 2881 2882 2883 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2884 2885 </ul> 2886 </div> 2887 </div> 2888 </li> 2889 2890 2891 2892<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 2893 <div class="xl:border-0 xl:p-0"> 2894 <div> 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 <a 2906 class="no-underline hidden xl:block" 2907 href="/collections/touchless-kitchen-faucets" 2908 aria-label="Kitchen" 2909 target="_self" 2910 > 2911 2912 <img src="//www.americanstandard-us.com/cdn/shop/files/L-4931380075_01.jpg?v=1742469390&width=700" alt="L-4931380075_01" srcset="//www.americanstandard-us.com/cdn/shop/files/L-4931380075_01.jpg?v=1742469390&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/L-4931380075_01.jpg?v=1742469390&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 2913 2914 </a> 2915 2916 2917 2918 2919 2920 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 2921 2922 2923 2924 2925 2926 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/touchless-kitchen-faucets" target="_self" ><span>Touchless Kitchen Sink Faucets</span></a> 2927 2928 </div> 2929 2930 2931 2932 2933 2934 2935 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 2936 2937 </ul> 2938 </div> 2939 </div> 2940 </li> 2941 2942 2943 </ul> 2944 2945 2946 2947 </div> 2948 2949 2950 </div> 2951 </li> 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970<li class="menu__level-1 border-b border-border xl:border-0 xl:mr-6 xl:py-6" role="none"> 2971 2972 2973 2974 <div class="hidden xl:flex items-center justify-between hover:cursor-pointer w-full flex-nowrap" role="none"> 2975 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bath-remodel" data-menu-level1-link data-menu-submenu-target="level_1_bath-remodel" data-menu-submenu-target-hover="level_1_bath-remodel"><span>Bath Remodel</span></a> 2976 <button class="mt-1 ml-2" aria-label="Open submenu Bath Remodel" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bath-remodel" data-menu-submenu-target="level_1_bath-remodel"> 2977 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 2978 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 2979</svg> 2980 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2981 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 2982</svg> 2983 </button> 2984 </div> 2985 2986 2987 2988 <div class="flex xl:hidden items-center justify-between hover:cursor-pointer" role="none"> 2989 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bath-remodel" data-menu-level1-link data-menu-submenu-target-hover="level_1_bath-remodel"><span>Bath Remodel</span></a> 2990 <button class="mt-1 ml-2" aria-label="Open submenu Bath Remodel" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-bath-remodel" data-menu-submenu-target="level_1_bath-remodel"> 2991 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 2992 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 2993</svg> 2994 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 2995 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 2996</svg> 2997 </button> 2998 </div> 2999 3000 <div data-menu-submenu="level_1_bath-remodel" 3001 id="submenu-level-1-bath-remodel" 3002 role="menu" 3003 aria-label="Bath Remodel" 3004 class="hidden p-4 bg-white fixed w-screen inset-0 z-50 flex flex-col justify-between md:max-w-sm 3005 xl:max-w-none px-4 xl:max-h-max xl:h-fit"> 3006 3007 <div data-menu-submenu-container class="overflow-y-auto relative xl:overflow-x-visible xl:flex xl:justify-between xl:container pb-40 xl:pb-0"> 3008 <button type="button" data-menu-close aria-label="Close" class="hidden xl:flex items-center justify-center bg-white shadow-xl w-6 h-6 rounded-full fixed z-10"> 3009 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"> 3010 <path d="M10.5 4.1125L9.8875 3.5L7 6.3875L4.1125 3.5L3.5 4.1125L6.3875 7L3.5 9.8875L4.1125 10.5L7 7.6125L9.8875 10.5L10.5 9.8875L7.6125 7L10.5 4.1125Z" fill="#E70025"/> 3011 </svg> 3012 </button> 3013 <div class="xl:hidden mb-2"> 3014 <div class="flex justify-between items-center"> 3015 <button class="flex items-center text-xl font-medium" aria-label="Close submenu Bath Remodel" data-menu-submenu-close-target="level_1_bath-remodel"> 3016 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-left fill-secondary w-5 h-5 mr-2" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3017 <path d="M7.5 12L15 4.5L16.05 5.55L9.6 12L16.05 18.45L15 19.5L7.5 12Z" fill="black"/> 3018</svg> Bath Remodel 3019 </button></div> 3020 </div> 3021 3022 3023 <ul class="xl:w-full xl:flex xl:gap-3 pb-4 xl:pb-0"> 3024 3025 3026 3027<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3028 <div class="xl:border-0 xl:p-0"> 3029 <div> 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 <a 3041 class="no-underline hidden xl:block" 3042 href="https://www.americanstandard-us.com/pages/home-services?utm_content=nav_ahs" 3043 aria-label="Bath Remodel" 3044 target="_self" 3045 > 3046 3047 <img src="//www.americanstandard-us.com/cdn/shop/files/About_home_services.jpg?v=1759263477&width=700" alt="" srcset="//www.americanstandard-us.com/cdn/shop/files/About_home_services.jpg?v=1759263477&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/About_home_services.jpg?v=1759263477&width=700 700w" width="700" height="466" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3048 3049 </a> 3050 3051 3052 3053 3054 3055 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3056 3057 3058 3059 3060 3061 <a class="text-base font-semibold leading-[100%] tracking-normal" href="https://www.americanstandard-us.com/pages/home-services?utm_content=nav_ahs" target="_self" ><span>About Home Services</span></a> 3062 3063 </div> 3064 3065 3066 3067 3068 3069 3070
3070 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3071 3072 </ul> 3073 </div> 3074 </div> 3075 </li> 3076 3077 3078 3079<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3080 <div class="xl:border-0 xl:p-0"> 3081 <div> 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 <a 3093 class="no-underline hidden xl:block" 3094 href="https://www.americanstandard-us.com/pages/shower-tub?utm_content=nav_s-t" 3095 aria-label="Bath Remodel" 3096 target="_self" 3097 > 3098 3099 <img src="//www.americanstandard-us.com/cdn/shop/files/Shower_and_Tub_Remodels.png?v=1759263477&width=700" alt="" srcset="//www.americanstandard-us.com/cdn/shop/files/Shower_and_Tub_Remodels.png?v=1759263477&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Shower_and_Tub_Remodels.png?v=1759263477&width=700 700w" width="700" height="491" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3100 3101 </a> 3102 3103 3104 3105 3106 3107 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3108 3109 3110 3111 3112 3113 <a class="text-base font-semibold leading-[100%] tracking-normal" href="https://www.americanstandard-us.com/pages/shower-tub?utm_content=nav_s-t" target="_self" ><span>Shower + Tub Remodels</span></a> 3114 3115 </div> 3116 3117 3118 3119 3120 3121 <div class="font-normal text-sm leading-[140%] tracking-normal pr-4 hidden xl:block"> 3122 Includes shower remodel, tub replacement and bath-to-shower conversions. 3123 </div> 3124 3125 3126 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3127 3128 </ul> 3129 </div> 3130 </div> 3131 </li> 3132 3133 3134 3135<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3136 <div class="xl:border-0 xl:p-0"> 3137 <div> 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 <a 3149 class="no-underline hidden xl:block" 3150 href="https://www.americanstandard-us.com/pages/walk-in-tub?utm_content=nav_wit" 3151 aria-label="Bath Remodel" 3152 target="_self" 3153 > 3154 3155 <img src="//www.americanstandard-us.com/cdn/shop/files/Walk-In_Tub_Installation.png?v=1759263477&width=700" alt="" srcset="//www.americanstandard-us.com/cdn/shop/files/Walk-In_Tub_Installation.png?v=1759263477&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Walk-In_Tub_Installation.png?v=1759263477&width=700 700w" width="700" height="491" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3156 3157 </a> 3158 3159 3160 3161 3162 3163 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3164 3165 3166 3167 3168 3169 <a class="text-base font-semibold leading-[100%] tracking-normal" href="https://www.americanstandard-us.com/pages/walk-in-tub?utm_content=nav_wit" target="_self" ><span>Walk-In Tub Installation</span></a> 3170 3171 </div> 3172 3173 3174 3175 3176 3177 3178 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3179 3180 </ul> 3181 </div> 3182 </div> 3183 </li> 3184 3185 3186 3187<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3188 <div class="xl:border-0 xl:p-0"> 3189 <div> 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 <a 3201 class="no-underline hidden xl:block" 3202 href="/pages/become-an-installer" 3203 aria-label="Bath Remodel" 3204 target="_self" 3205 > 3206 3207 <img src="//www.americanstandard-us.com/cdn/shop/files/image.webp?v=1787835772&width=700" alt="" srcset="//www.americanstandard-us.com/cdn/shop/files/image.webp?v=1787835772&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/image.webp?v=1787835772&width=700 700w" width="700" height="700" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3208 3209 </a> 3210 3211 3212 3213 3214 3215 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3216 3217 3218 3219 3220 3221 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/pages/become-an-installer" target="_self" ><span>Become an Installer</span></a> 3222 3223 </div> 3224 3225 3226 3227 3228 3229 3230 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3231 3232 </ul> 3233 </div> 3234 </div> 3235 </li> 3236 3237 3238 </ul> 3239 3240 3241 3242 </div> 3243 3244 3245 </div> 3246 </li> 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267<li class="menu__level-1 border-b border-border xl:border-0 xl:mr-6 xl:py-6" role="none"> 3268 3269 3270 3271 <div class="hidden xl:flex items-center justify-between hover:cursor-pointer w-full flex-nowrap" role="none"> 3272 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-commercial" data-menu-level1-link data-menu-submenu-target="level_1_commercial" data-menu-submenu-target-hover="level_1_commercial"><span>Commercial</span></a> 3273 <button class="mt-1 ml-2" aria-label="Open submenu Commercial" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-commercial" data-menu-submenu-target="level_1_commercial"> 3274 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 3275 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 3276</svg> 3277 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3278 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 3279</svg> 3280 </button> 3281 </div> 3282 3283 3284 3285 <div class="flex xl:hidden items-center justify-between hover:cursor-pointer" role="none"> 3286 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-commercial" data-menu-level1-link data-menu-submenu-target-hover="level_1_commercial"><span>Commercial</span></a> 3287 <button class="mt-1 ml-2" aria-label="Open submenu Commercial" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-commercial" data-menu-submenu-target="level_1_commercial"> 3288 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 3289 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 3290</svg> 3291 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3292 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 3293</svg> 3294 </button> 3295 </div> 3296 3297 <div data-menu-submenu="level_1_commercial" 3298 id="submenu-level-1-commercial" 3299 role="menu" 3300 aria-label="Commercial" 3301 class="hidden p-4 bg-white fixed w-screen inset-0 z-50 flex flex-col justify-between md:max-w-sm 3302 xl:max-w-none px-4 xl:max-h-max xl:h-fit"> 3303 3304 <div data-menu-submenu-container class="overflow-y-auto relative xl:overflow-x-visible xl:flex xl:justify-between xl:container pb-40 xl:pb-0"> 3305 <button type="button" data-menu-close aria-label="Close" class="hidden xl:flex items-center justify-center bg-white shadow-xl w-6 h-6 rounded-full fixed z-10"> 3306 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"> 3307 <path d="M10.5 4.1125L9.8875 3.5L7 6.3875L4.1125 3.5L3.5 4.1125L6.3875 7L3.5 9.8875L4.1125 10.5L7 7.6125L9.8875 10.5L10.5 9.8875L7.6125 7L10.5 4.1125Z" fill="#E70025"/> 3308 </svg> 3309 </button> 3310 <div class="xl:hidden mb-2"> 3311 <div class="flex justify-between items-center"> 3312 <button class="flex items-center text-xl font-medium" aria-label="Close submenu Commercial" data-menu-submenu-close-target="level_1_commercial"> 3313 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-left fill-secondary w-5 h-5 mr-2" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3314 <path d="M7.5 12L15 4.5L16.05 5.55L9.6 12L16.05 18.45L15 19.5L7.5 12Z" fill="black"/> 3315</svg> Commercial 3316 </button></div> 3317 </div> 3318 3319 3320 <ul class="xl:w-full xl:flex xl:gap-3 pb-4 xl:pb-0"> 3321 3322 3323 3324<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3325 <div class="xl:border-0 xl:p-0"> 3326 <div> 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 <a 3338 class="no-underline hidden xl:block" 3339 href="/collections/commercial-toilets-urinals" 3340 aria-label="Commercial" 3341 target="_self" 3342 > 3343 3344 <img src="//www.americanstandard-us.com/cdn/shop/files/Commercial_Toilets_aad36059-e242-49ce-91bc-fb9a34a868fb.jpg?v=1750270732&width=700" alt="Commercial_Toilets" srcset="//www.americanstandard-us.com/cdn/shop/files/Commercial_Toilets_aad36059-e242-49ce-91bc-fb9a34a868fb.jpg?v=1750270732&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Commercial_Toilets_aad36
3344059-e242-49ce-91bc-fb9a34a868fb.jpg?v=1750270732&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3345 3346 </a> 3347 3348 3349 3350 3351 3352 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3353 3354 3355 3356 3357 3358 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/commercial-toilets-urinals" target="_self" ><span>Commercial Toilets</span></a> 3359 3360 </div> 3361 3362 3363 3364 3365 3366 3367 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3368 3369 3370 3371 3372 <li class="mt-2"> 3373 <a class="text-sm" href="/collections/commercial-wall-hung-toilets-list" >Wall Hung Toilets</a> 3374 </li> 3375 3376 3377 3378 3379 3380 <li class="mt-2"> 3381 <a class="text-sm" href="/collections/commercial-toilet-parts-list" >Toilet Parts</a> 3382 </li> 3383 3384 3385 3386 3387 3388 <li class="mt-2 text-primary underline"> 3389 <a class="text-sm" href="/collections/commercial-toilets-list" >Shop All</a> 3390 </li> 3391 3392 3393 </ul> 3394 </div> 3395 </div> 3396 </li> 3397 3398 3399 3400<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3401 <div class="xl:border-0 xl:p-0"> 3402 <div> 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 <a 3414 class="no-underline hidden xl:block" 3415 href="/collections/commercial-bathroom-faucets-1" 3416 aria-label="Commercial" 3417 target="_self" 3418 > 3419 3420 <img src="//www.americanstandard-us.com/cdn/shop/files/Commercial_Urinals_463901c5-454b-4b25-9d68-9db7ee507cd7.jpg?v=1750270818&width=700" alt="commercial urinals" srcset="//www.americanstandard-us.com/cdn/shop/files/Commercial_Urinals_463901c5-454b-4b25-9d68-9db7ee507cd7.jpg?v=1750270818&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Commercial_Urinals_463901c5-454b-4b25-9d68-9db7ee507cd7.jpg?v=1750270818&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3421 3422 </a> 3423 3424 3425 3426 3427 3428 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3429 3430 3431 3432 3433 3434 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/urinals-list" target="_self" ><span>Commercial Urinals</span></a> 3435 3436 </div> 3437 3438 3439 3440 3441 3442 3443 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3444 3445 3446 3447 3448 <li class="mt-2"> 3449 <a class="text-sm" href="/collections/commercial-urinal-parts-list" >Urinal Parts</a> 3450 </li> 3451 3452 3453 </ul> 3454 </div> 3455 </div> 3456 </li> 3457 3458 3459 3460<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3461 <div class="xl:border-0 xl:p-0"> 3462 <div> 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 <a 3474 class="no-underline hidden xl:block" 3475 href="/collections/flush-valves" 3476 aria-label="Commercial" 3477 target="_self" 3478 > 3479 3480 <img src="//www.americanstandard-us.com/cdn/shop/files/B-624B111.002.jpg?v=1743446324&width=700" alt="B-624B111.002" srcset="//www.americanstandard-us.com/cdn/shop/files/B-624B111.002.jpg?v=1743446324&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/B-624B111.002.jpg?v=1743446324&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3481 3482 </a> 3483 3484 3485 3486 3487 3488 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3489 3490 3491 3492 3493 3494 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/flush-valves" target="_self" ><span>Flush Valves</span></a> 3495 3496 </div> 3497 3498 3499 3500 3501 3502 3503 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3504 3505 3506 3507 3508 <li class="mt-2"> 3509 <a class="text-sm" href="/pages/ultima-diaphragm-flush-valves" >Ultima</a> 3510 </li> 3511 3512 3513 3514 3515 3516 <li class="mt-2"> 3517 <a class="text-sm" href="/collections/flush-valves-and-sanitary-systems-list" >Flushometer</a> 3518 </li> 3519 3520 3521 3522 3523 3524 <li class="mt-2"> 3525 <a class="text-sm" href="/collections/manual-flush-valves-sanitary-systems" >Manual Flush Valves</a> 3526 </li> 3527 3528 3529 3530 3531 3532 <li class="mt-2"> 3533 <a class="text-sm" href="/collections/sensor-flush-valves-list" >Sensor Flush Valves</a> 3534 </li> 3535 3536 3537 3538 3539 3540 <li class="mt-2"> 3541 <a class="text-sm" href="/collections/fittings-flush-valve-parts-list" >Flush Valve Parts</a> 3542 </li> 3543 3544 3545 3546 3547 3548 <li class="mt-2 text-primary underline"> 3549 <a class="text-sm" href="/collections/flush-valves-list" >Shop All</a> 3550 </li> 3551 3552 3553 </ul> 3554 </div> 3555 </div> 3556 </li> 3557 3558 3559 3560<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3561 <div class="xl:border-0 xl:p-0"> 3562 <div> 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 <a 3574 class="no-underline hidden xl:block" 3575 href="/collections/commercial-shower-systems-list" 3576 aria-label="Commercial" 3577 target="_self" 3578 > 3579 3580 <img src="//www.americanstandard-us.com/cdn/shop/files/3-menu-aspect-2.png?v=1728408501&width=700" alt="" srcset="//www.americanstandard-us.com/cdn/shop/files/3-menu-aspect-2.png?v=1728408501&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/3-menu-aspect-2.png?v=1728408501&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3581 3582 </a> 3583 3584 3585 3586 3587 3588 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3589 3590 3591 3592 3593 3594 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/commercial-bathroom-faucets" target="_self" ><span>Commercial Faucets</span></a> 3595 3596 </div> 3597 3598 3599 3600 3601 3602 3603 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region
3603" aria-labelledby="btn"> 3604 3605 3606 3607 3608 <li class="mt-2"> 3609 <a class="text-sm" href="/collections/commercial-faucets-list" >Bathroom Faucets</a> 3610 </li> 3611 3612 3613 3614 3615 3616 <li class="mt-2"> 3617 <a class="text-sm" href="/collections/commercial-kitchen-faucets" >Kitchen Faucets</a> 3618 </li> 3619 3620 3621 3622 3623 3624 <li class="mt-2"> 3625 <a class="text-sm" href="/collections/sensor-commercial-faucets-list" >Touchless</a> 3626 </li> 3627 3628 3629 3630 3631 3632 <li class="mt-2"> 3633 <a class="text-sm" href="/collections/commercial-shower-systems-list" >Showers</a> 3634 </li> 3635 3636 3637 3638 3639 3640 <li class="mt-2"> 3641 <a class="text-sm" href="/collections/commercial-sinks" >Bathroom Sinks</a> 3642 </li> 3643 3644 3645 3646 3647 3648 <li class="mt-2"> 3649 <a class="text-sm" href="/collections/sink-bracket-parts-list" >Sink + Brackets Parts</a> 3650 </li> 3651 3652 3653 3654 3655 3656 <li class="mt-2 text-primary underline"> 3657 <a class="text-sm" href="/collections/commercial-faucets-list" >Shop All</a> 3658 </li> 3659 3660 3661 </ul> 3662 </div> 3663 </div> 3664 </li> 3665 3666 3667 </ul> 3668 3669 3670 3671 </div> 3672 3673 3674 </div> 3675 </li> 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698<li class="menu__level-1 border-b border-border xl:border-0 xl:mr-6 xl:py-6" role="none"> 3699 3700 3701 3702 <div class="hidden xl:flex items-center justify-between hover:cursor-pointer w-full flex-nowrap" role="none"> 3703 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-inspiration" data-menu-level1-link data-menu-submenu-target="level_1_inspiration" data-menu-submenu-target-hover="level_1_inspiration"><span>Inspiration</span></a> 3704 <button class="mt-1 ml-2" aria-label="Open submenu Inspiration" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-inspiration" data-menu-submenu-target="level_1_inspiration"> 3705 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 3706 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 3707</svg> 3708 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3709 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 3710</svg> 3711 </button> 3712 </div> 3713 3714 3715 3716 <div class="flex xl:hidden items-center justify-between hover:cursor-pointer" role="none"> 3717 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-inspiration" data-menu-level1-link data-menu-submenu-target-hover="level_1_inspiration"><span>Inspiration</span></a> 3718 <button class="mt-1 ml-2" aria-label="Open submenu Inspiration" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-inspiration" data-menu-submenu-target="level_1_inspiration"> 3719 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 3720 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 3721</svg> 3722 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3723 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 3724</svg> 3725 </button> 3726 </div> 3727 3728 <div data-menu-submenu="level_1_inspiration" 3729 id="submenu-level-1-inspiration" 3730 role="menu" 3731 aria-label="Inspiration" 3732 class="hidden p-4 bg-white fixed w-screen inset-0 z-50 flex flex-col justify-between md:max-w-sm 3733 xl:max-w-none px-4 xl:max-h-max xl:h-fit"> 3734 3735 <div data-menu-submenu-container class="overflow-y-auto relative xl:overflow-x-visible xl:flex xl:justify-between xl:container pb-40 xl:pb-0"> 3736 <button type="button" data-menu-close aria-label="Close" class="hidden xl:flex items-center justify-center bg-white shadow-xl w-6 h-6 rounded-full fixed z-10"> 3737 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"> 3738 <path d="M10.5 4.1125L9.8875 3.5L7 6.3875L4.1125 3.5L3.5 4.1125L6.3875 7L3.5 9.8875L4.1125 10.5L7 7.6125L9.8875 10.5L10.5 9.8875L7.6125 7L10.5 4.1125Z" fill="#E70025"/> 3739 </svg> 3740 </button> 3741 <div class="xl:hidden mb-2"> 3742 <div class="flex justify-between items-center"> 3743 <button class="flex items-center text-xl font-medium" aria-label="Close submenu Inspiration" data-menu-submenu-close-target="level_1_inspiration"> 3744 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-left fill-secondary w-5 h-5 mr-2" width="24" height="24" viewBox="0 0 24 24" fill="none"> 3745 <path d="M7.5 12L15 4.5L16.05 5.55L9.6 12L16.05 18.45L15 19.5L7.5 12Z" fill="black"/> 3746</svg> Inspiration 3747 </button></div> 3748 </div> 3749 3750 3751 <ul class="xl:w-full xl:flex xl:gap-3 pb-4 xl:pb-0"> 3752 3753 3754 3755<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3756 <div class="xl:border-0 xl:p-0"> 3757 <div> 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 <a 3769 class="no-underline hidden xl:block" 3770 href="#" 3771 aria-label="Inspiration" 3772 target="_self" 3773 > 3774 3775 <img src="//www.americanstandard-us.com/cdn/shop/files/AS_More_Nav_Inspiration.jpg?v=1742478245&width=700" alt="AS_More_Nav_Inspiration" srcset="//www.americanstandard-us.com/cdn/shop/files/AS_More_Nav_Inspiration.jpg?v=1742478245&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/AS_More_Nav_Inspiration.jpg?v=1742478245&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3776 3777 </a> 3778 3779 3780 3781 3782 3783 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3784 3785 <sp
3785an class="text-base font-semibold">Inspiration</span> 3786 3787 </div> 3788 3789 3790 3791 3792 3793 3794 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3795 3796 3797 3798 3799 <li class="mt-2"> 3800 <a class="text-sm" href="/pages/innovations" >Innovations</a> 3801 </li> 3802 3803 3804 3805 3806 3807 <li class="mt-2"> 3808 <a class="text-sm" href="/blogs/learn" >Learn</a> 3809 </li> 3810 3811 3812 3813 3814 3815 <li class="mt-2"> 3816 <a class="text-sm" href="/pages/sustainable-kitchen-and-bathroom-products" >Go Green</a> 3817 </li> 3818 3819 3820 </ul> 3821 </div> 3822 </div> 3823 </li> 3824 3825 3826 3827<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3828 <div class="xl:border-0 xl:p-0"> 3829 <div> 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 <a 3841 class="no-underline hidden xl:block" 3842 href="#" 3843 aria-label="Inspiration" 3844 target="_self" 3845 > 3846 3847 <img src="//www.americanstandard-us.com/cdn/shop/files/B-T353740002_3b5e286e-2f01-45a2-a243-71dedafb12b1.jpg?v=1743602565&width=700" alt="townsend collection" srcset="//www.americanstandard-us.com/cdn/shop/files/B-T353740002_3b5e286e-2f01-45a2-a243-71dedafb12b1.jpg?v=1743602565&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/B-T353740002_3b5e286e-2f01-45a2-a243-71dedafb12b1.jpg?v=1743602565&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3848 3849 </a> 3850 3851 3852 3853 3854 3855 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3856 3857 3858 3859 3860 3861 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/pages/roomcreate" target="_self" ><span>Design Solutions</span></a> 3862 3863 </div> 3864 3865 3866 3867 3868 3869 3870 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3871 3872 3873 3874 3875 <li class="mt-2"> 3876 <a class="text-sm" href="/pages/visualizer" >Room Planner</a> 3877 </li> 3878 3879 3880 3881 3882 3883 <li class="mt-2"> 3884 <a class="text-sm" href="/pages/shop-the-look" >Shop the Look</a> 3885 </li> 3886 3887 3888 </ul> 3889 </div> 3890 </div> 3891 </li> 3892 3893 3894 3895<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3896 <div class="xl:border-0 xl:p-0"> 3897 <div> 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 <a 3909 class="no-underline hidden xl:block" 3910 href="/collections/bathroom-collections" 3911 aria-label="Inspiration" 3912 target="_self" 3913 > 3914 3915 <img src="//www.americanstandard-us.com/cdn/shop/files/L-226AA104020_4162A104020_3712A100020_7105101002_1296000020_7813001478_8726033020_8722000002_B-T064951002_2549004020.jpg?v=1742478364&width=700" alt="collections" srcset="//www.americanstandard-us.com/cdn/shop/files/L-226AA104020_4162A104020_3712A100020_7105101002_1296000020_7813001478_8726033020_8722000002_B-T064951002_2549004020.jpg?v=1742478364&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/L-226AA104020_4162A104020_3712A100020_7105101002_1296000020_7813001478_8726033020_8722000002_B-T064951002_2549004020.jpg?v=1742478364&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 3916 3917 </a> 3918 3919 3920 3921 3922 3923 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 3924 3925 3926 3927 3928 3929 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/bathroom-collections" target="_self" ><span>Bathroom Collections</span></a> 3930 3931 </div> 3932 3933 3934 3935 3936 3937 3938 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 3939 3940 3941 3942 3943 <li class="mt-2"> 3944 <a class="text-sm" href="/collections/modern-bathroom-collections" >Modern</a> 3945 </li> 3946 3947 3948 3949 3950 3951 <li class="mt-2"> 3952 <a class="text-sm" href="/collections/transitional-bathroom-collections" >Transitional</a> 3953 </li> 3954 3955 3956 3957 3958 3959 <li class="mt-2"> 3960 <a class="text-sm" href="/collections/traditional-bathroom-collections" >Traditional</a> 3961 </li> 3962 3963 3964 3965 3966 3967 <li class="mt-2"> 3968 <a class="text-sm" href="/collections/innovative-bathroom-collections" >Innovative</a> 3969 </li> 3970 3971 3972 </ul> 3973 </div> 3974 </div> 3975 </li> 3976 3977 3978 3979<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 3980 <div class="xl:border-0 xl:p-0"> 3981 <div> 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 <a 3993 class="no-underline hidden xl:block" 3994 href="/collections/kitchen-collections" 3995 aria-label="Inspiration" 3996 target="_self" 3997 > 3998 3999 <img src="//www.americanstandard-us.com/cdn/shop/files/Kitchen_Collections.jpg?v=1750189352&width=700" alt="Kitchen_Collections" srcset="//www.americanstandard-us.com/cdn/shop/files/Kitchen_Collections.jpg?v=1750189352&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Kitchen_Collections.jpg?v=1750189352&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 4000 4001 </a> 4002 4003 4004 4005 4006 4007 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 4008 4009 4010 4011 4012 4013 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/kitchen-collections" target="_self" ><span>Kitchen Collections</span></a> 4014 4015 </div> 4016 4017 4018 4019 4020 4021 4022 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 4023 4024 4025 4026 4027 <li class="mt-2"> 4028 <a class="text-sm" href="/collections/modern-kitchen-collections" >Modern</a> 4029 </li> 4030 4031 4032 4033 4034 4035 <li class="mt-2"> 4036 <a class="text-sm" href="/collections/transitional-kitchen-collections" >Transitional</a> 4037 </li> 4038 4039
4039 4040 4041 4042 4043 <li class="mt-2"> 4044 <a class="text-sm" href="/collections/traditional-kitchen-collections" >Traditional</a> 4045 </li> 4046 4047 4048 4049 4050 4051 <li class="mt-2"> 4052 <a class="text-sm" href="/collections/innovative-kitchen-collections" >Innovative</a> 4053 </li> 4054 4055 4056 </ul> 4057 </div> 4058 </div> 4059 </li> 4060 4061 4062 </ul> 4063 4064 4065 4066 </div> 4067 4068 4069 </div> 4070 </li> 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099<li class="menu__level-1 border-b border-border xl:border-0 xl:mr-6 xl:py-6" role="none"> 4100 4101 4102 4103 <div class="hidden xl:flex items-center justify-between hover:cursor-pointer w-full flex-nowrap" role="none"> 4104 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-support" data-menu-level1-link data-menu-submenu-target="level_1_support" data-menu-submenu-target-hover="level_1_support"><span>Support</span></a> 4105 <button class="mt-1 ml-2" aria-label="Open submenu Support" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-support" data-menu-submenu-target="level_1_support"> 4106 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 4107 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 4108</svg> 4109 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4110 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 4111</svg> 4112 </button> 4113 </div> 4114 4115 4116 4117 <div class="flex xl:hidden items-center justify-between hover:cursor-pointer" role="none"> 4118 <a class="text-xl xl:text-base font-normal xl:font-semibold py-6 xl:py-0" href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-support" data-menu-level1-link data-menu-submenu-target-hover="level_1_support"><span>Support</span></a> 4119 <button class="mt-1 ml-2" aria-label="Open submenu Support" aria-haspopup="true" aria-expanded="false" aria-controls="submenu-level-1-support" data-menu-submenu-target="level_1_support"> 4120 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-secondary w-4 h-4 hidden" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 4121 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 4122</svg> 4123 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-right fill-secondary w-5 h-5 xl:hidden" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4124 <path d="M16.5 12L8.99995 19.5L7.94995 18.45L14.4 12L7.94995 5.55L8.99995 4.5L16.5 12Z" fill="black"/> 4125</svg> 4126 </button> 4127 </div> 4128 4129 <div data-menu-submenu="level_1_support" 4130 id="submenu-level-1-support" 4131 role="menu" 4132 aria-label="Support" 4133 class="hidden p-4 bg-white fixed w-screen inset-0 z-50 flex flex-col justify-between md:max-w-sm 4134 xl:max-w-none px-4 xl:max-h-max xl:h-fit"> 4135 4136 <div data-menu-submenu-container class="overflow-y-auto relative xl:overflow-x-visible xl:flex xl:justify-between xl:container pb-40 xl:pb-0"> 4137 <button type="button" data-menu-close aria-label="Close" class="hidden xl:flex items-center justify-center bg-white shadow-xl w-6 h-6 rounded-full fixed z-10"> 4138 <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" fill="none"> 4139 <path d="M10.5 4.1125L9.8875 3.5L7 6.3875L4.1125 3.5L3.5 4.1125L6.3875 7L3.5 9.8875L4.1125 10.5L7 7.6125L9.8875 10.5L10.5 9.8875L7.6125 7L10.5 4.1125Z" fill="#E70025"/> 4140 </svg> 4141 </button> 4142 <div class="xl:hidden mb-2"> 4143 <div class="flex justify-between items-center"> 4144 <button class="flex items-center text-xl font-medium" aria-label="Close submenu Support" data-menu-submenu-close-target="level_1_support"> 4145 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-left fill-secondary w-5 h-5 mr-2" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4146 <path d="M7.5 12L15 4.5L16.05 5.55L9.6 12L16.05 18.45L15 19.5L7.5 12Z" fill="black"/> 4147</svg> Support 4148 </button></div> 4149 </div> 4150 4151 4152 <ul class="xl:w-full xl:flex xl:gap-3 pb-4 xl:pb-0"> 4153 4154 4155 4156<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 4157 <div class="xl:border-0 xl:p-0"> 4158 <div> 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 <a 4170 class="no-underline hidden xl:block" 4171 href="/pages/support" 4172 aria-label="Support" 4173 target="_self" 4174 > 4175 4176 <img src="//www.americanstandard-us.com/cdn/shop/files/AS_More_Nav_Resources.jpg?v=1742490170&width=700" alt="AS_More_Nav_Resources" srcset="//www.americanstandard-us.com/cdn/shop/files/AS_More_Nav_Resources.jpg?v=1742490170&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/AS_More_Nav_Resources.jpg?v=1742490170&width=700 700w" width="700" height="501" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 4177 4178 </a> 4179 4180 4181 4182 4183 4184 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 4185 4186 4187 4188 4189 4190 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/pages/support" target="_self" ><span>Help</span></a> 4191 4192 </div> 4193 4194 4195 4196 4197 4198 4199 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 4200 4201 4202 4203 4204 <li class="mt-2"> 4205 <a class="text-sm" href="https://faq.americanstandard-us.com/" target="_blank" >FAQs</a> 4206 </li> 4207 4208 4209 4210 4211 4212 <li class="mt-2"> 4213 <a class="text-sm" href="/pages/warranty" >
4213Register & Warranty Info</a> 4214 </li> 4215 4216 4217 4218 4219 4220 <li class="mt-2"> 4221 <a class="text-sm" href="/pages/returns" >Returns</a> 4222 </li> 4223 4224 4225 4226 4227 4228 <li class="mt-2"> 4229 <a class="text-sm" href="/pages/where-to-buy" >Where to Buy</a> 4230 </li> 4231 4232 4233 </ul> 4234 </div> 4235 </div> 4236 </li> 4237 4238 4239 4240<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 4241 <div class="xl:border-0 xl:p-0"> 4242 <div> 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 <a 4254 class="no-underline hidden xl:block" 4255 href="/pages/home-services" 4256 aria-label="Support" 4257 target="_self" 4258 > 4259 4260 <img src="//www.americanstandard-us.com/cdn/shop/files/Home_Services.jpg?v=1743184935&width=700" alt="Home_Services" srcset="//www.americanstandard-us.com/cdn/shop/files/Home_Services.jpg?v=1743184935&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Home_Services.jpg?v=1743184935&width=700 700w" width="700" height="502" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 4261 4262 </a> 4263 4264 4265 4266 4267 4268 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 4269 4270 <span class="text-base font-semibold">Resources</span> 4271 4272 </div> 4273 4274 4275 4276 4277 4278 4279 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 4280 4281 4282 4283 4284 <li class="mt-2"> 4285 <a class="text-sm" href="/pages/professionals" >Professionals</a> 4286 </li> 4287 4288 4289 4290 4291 4292 <li class="mt-2"> 4293 <a class="text-sm" href="/pages/tradeup-to-a-plumbing-career-american-standard-tradeup-program" >TradeUp</a> 4294 </li> 4295 4296 4297 4298 4299 4300 <li class="mt-2"> 4301 <a class="text-sm" href="https://www.mylixilpricebooks.com/American-Standard-Commercial-List-Price-Guide" target="_blank" >Commercial Price Book</a> 4302 </li> 4303 4304 4305 4306 4307 4308 <li class="mt-2"> 4309 <a class="text-sm" href="https://www.mylixilpricebooks.com/American-Standard-Residential-List-Price-Guide" target="_blank" >Residential Price Book</a> 4310 </li> 4311 4312 4313 4314 4315 4316 <li class="mt-2"> 4317 <a class="text-sm" href="/pages/become-an-authorized-american-standard-dealer" >Become a Dealer</a> 4318 </li> 4319 4320 4321 4322 4323 4324 <li class="mt-2"> 4325 <a class="text-sm" href="https://lixilspecification.americanstandard-us.com/en/" target="_blank" >LIXIL Specification Tool</a> 4326 </li> 4327 4328 4329 4330 4331 4332 <li class="mt-2"> 4333 <a class="text-sm" href="https://lixilcrossreference.americanstandard-us.com/en/" target="_blank" >Cross Reference Tool</a> 4334 </li> 4335 4336 4337 4338 4339 4340 <li class="mt-2"> 4341 <a class="text-sm" href="https://lixil-dal.atssoftware.com/" target="_blank" >Digital Asset Library</a> 4342 </li> 4343 4344 4345 </ul> 4346 </div> 4347 </div> 4348 </li> 4349 4350 4351 4352<li class="py-5 xl:pt-0 xl:pb-10 border-t border-border xl:border-0 flex-1 xl:max-w-[22.5rem]"> 4353 <div class="xl:border-0 xl:p-0"> 4354 <div> 4355 4356 4357 4358 4359 4360 4361 <img src="//www.americanstandard-us.com/cdn/shop/files/Chat_Specialist_95ab3d18-6b75-44ce-a10f-30ab96d041e9.jpg?v=1742488404&width=700" alt="Chat_Specialist_95ab3d18-6b75-44ce-a10f-30ab96d041e9" srcset="//www.americanstandard-us.com/cdn/shop/files/Chat_Specialist_95ab3d18-6b75-44ce-a10f-30ab96d041e9.jpg?v=1742488404&width=352 352w, //www.americanstandard-us.com/cdn/shop/files/Chat_Specialist_95ab3d18-6b75-44ce-a10f-30ab96d041e9.jpg?v=1742488404&width=700 700w" width="700" height="502" loading="lazy" class="w-full h-[14.5rem] object-cover hidden xl:block" decoding="async"> 4362 4363 4364 4365 4366 4367 <div class="flex justify-between mb-0 !pb-0 xl:mt-3 xl:mb-0" id="btn"> 4368 4369 4370 4371 4372 4373 <a class="text-base font-semibold leading-[100%] tracking-normal" href="/collections/parts-store" target="_self" ><span>Parts Store</span></a> 4374 4375 </div> 4376 4377 4378 4379 4380 4381 4382 <ul class="xl:!block xl:!max-h-max !text-black" id="content" role="region" aria-labelledby="btn"> 4383 4384 4385 4386 4387 <li class="mt-2"> 4388 <a class="text-sm" href="/collections/toilet-parts-list" >Toilet Parts</a> 4389 </li> 4390 4391 4392 4393 4394 4395 <li class="mt-2"> 4396 <a class="text-sm" href="/collections/bathroom-faucet-parts-list" >Bathroom Faucet Parts</a> 4397 </li> 4398 4399 4400 4401 4402 4403 <li class="mt-2"> 4404 <a class="text-sm" href="/collections/bath-drain-parts-list" >Bathtub Parts</a> 4405 </li> 4406 4407 4408 4409 4410 4411 <li class="mt-2"> 4412 <a class="text-sm" href="/collections/shower-system-parts-list" >Shower System Parts</a> 4413 </li> 4414 4415 4416 4417 4418 4419 <li class="mt-2"> 4420 <a class="text-sm" href="/collections/kitchen-faucet-parts-list" >Kitchen Faucet Parts</a> 4421 </li> 4422 4423 4424 </ul> 4425 </div> 4426 </div> 4427 </li> 4428 4429 4430 </ul> 4431 4432 4433 4434 </div> 4435 4436 4437 </div> 4438 </li> 4439 4440 4441 4442 4443 4444 4445 4446 </ul> 4447 4448 4449 4450</component-menu> 4451 4452<div id="banner-popup-overlay" class="fixed inset-0 bg-black bg-opacity-50 z-[9999] hidden"> 4453 <div class="absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-full max-w-[1100px] h-full lg:h-[85vh] px-4"> 4454 <div class="bg-[#F3F3F3] max-w-[1100px] w-full h-full lg:max-h-[97vh] relative flex flex-col"> 4455 <button id="close-popup" class="absolute top-4 right-4 lg:top-7 lg:right-7 w-8 h-8 flex items-center justify-center bg-
4455black rounded-full transition-colors z-10" aria-label="Close"> 4456 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="none"> 4457 <path d="M12 4.7L11.3 4L8 7.3L4.7 4L4 4.7L7.3 8L4 11.3L4.7 12L8 8.7L11.3 12L12 11.3L8.7 8L12 4.7Z" fill="#fff"/> 4458 </svg> 4459 </button> 4460 <div id="popup-content" class="px-4 pb-4 pt-[72px] lg:py-20 lg:pb-14 lg:px-[88px] overflow-y-auto flex-1"> 4461 4462 4463 4464 4465 4466 4467<home-services-contact-form data-submit-button-text="Submit"> 4468 <div data-confirmation-view class="hidden text-center py-12 px-4"> 4469 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="56" height="56" viewBox="0 0 24 24" fill="none" class="mx-auto mb-6"> 4470 <circle cx="12" cy="12" r="12" fill="#1E8E3E"/> 4471 <path d="M7 12.5L10.2 15.7L17 8.5" stroke="#fff" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/> 4472 </svg> 4473 <h2 class="text-xl lg:text-2xl px-8 lg:p-0 font-bold text-black mb-4"> 4474 Thank You for Submitting! 4475 </h2> 4476 <p class="text-gray-600 font-normal text-base leading-[130%] tracking-[0] max-w-[420px] mx-auto"> 4477 We'll be in touch shortly. If you need immediate assistance, give us a call at 4478 <a data-home-services-phone-number href="tel:+18002155130" aria-label="Call 800-215-5130"><span class="font-semibold text-black">800-215-5130</span></a>. 4479 </p> 4480 </div> 4481 4482 <div data-form-view> 4483 <h2 class="text-xl lg:text-2xl px-8 lg:p-0 font-bold text-center text-black mb-4"> 4484 Ready for a Bathroom You'll Love? 4485 </h2> 4486 4487 <p class="text-center text-gray-600 mb-6 font-normal text-base leading-[130%] tracking-[0]"> 4488 Send us your information so we can get started right away, or give us a call at 4489 <a data-home-services-phone-number href="tel:+18002155130" aria-label="Call 800-215-5130"><span class="font-semibold text-black">800-215-5130</span></a> for faster service. 4490 </p> 4491 4492 <form class="space-y-4"> 4493 4494 <div> 4495 <select name="remodel-service" id="remodel-service" class="text-gray-500 h-14 w-full px-4 py-3 border border-gray-200 rounded focus:ring-2 focus:ring-red-500 focus:border-red-500 outline-none placeholder-gray-500" required> 4496 <option value="">Select a remodel service*</option> 4497 <option value="Showers/Tubs">Showers/Tubs</option> 4498 <option value="Walk-In Tubs">Walk-In Tubs</option> 4499 </select> 4500 </div> 4501 4502 4503 4504 <div class="grid lg:grid-cols-2 gap-4"> 4505 <div> 4506 <input type="text" 4507 name="first_name" 4508 id="first-name" 4509 placeholder="First name*" 4510 class="h-14 w-full px-4 py-3 border border-gray-200 rounded focus:ring-2 focus:ring-red-500 focus:border-red-500 outline-none placeholder-gray-500" 4511 required> 4512 </div> 4513 <div> 4514 <input type="text" 4515 name="last_name" 4516 id="last-name" 4517 placeholder="Last name*" 4518 class="h-14 w-full px-4 py-3 border border-gray-200 rounded focus:ring-2 focus:ring-red-500 focus:border-red-500 outline-none placeholder-gray-500" 4519 required> 4520 </div> 4521 </div> 4522 4523 <div class="relative overflow-visible group"> 4524 <input type="text" 4525 name="zip_code" 4526 id="zip-code" 4527 placeholder="Zip Code*" 4528 pattern="^\d{5}(-\d{4})?$" 4529 class="h-14 w-full px-4 py-3 border border-gray-200 rounded focus:ring-2 focus:ring-red-500 focus:border-red-500 outline-none placeholder-gray-500 pr-10" 4530 required> 4531 4532 <div class="absolute right-3 top-1/2 transform -translate-y-1/2"> 4533 <button type="button" class="w-5 h-5 bg-black rounded-full flex items-center justify-center cursor-pointer" id="tooltip-trigger" aria-describedby="tooltip-modal" aria-label="Why we ask for your zip code">
4534 <span class="text-white text-xs" aria-hidden="true">?</span> 4535 </button> 4536 <div id="tooltip-modal" class="absolute flex items-center bottom-full right-[-60%] lg:right-0 mb-2 px-3 py-2 font-normal text-[14px] leading-[140%] tracking-normal bg-white text-black rounded-md shadow-md w-[310px] lg:w-[322px] min-h-[60px] opacity-0 invisible lg:group-hover:opacity-100 lg:group-hover:visible transition-all duration-200 z-50 whitespace-normal"> 4537 <p class="m-0 font-normal text-[14px] leading-[140%] tracking-normal"> We use your zip code to match you with our local certified and licensed experts.</p> 4538 <div class="absolute top-full right-2 w-0 h-0 border-l-4 border-r-4 border-t-4 border-transparent"></div> 4539 </div> 4540 </div> 4541 </div> 4542 4543 <div> 4544 <input type="tel" 4545 name="phone_number" 4546 id="phone-number" 4547 required 4548 placeholder="Phone number*" 4549 pattern="^(?:1[ \.\-]?)?(?:\(?\d{3}\)?[ \.\-]?)\d{3}[ \.\-]?\d{4}(?:\s*(?:x|ext\.?)\s*\d+)?$" 4550 class="h-14 w-full px-4 py-3 border border-gray-200 rounded focus:ring-2 focus:ring-red-500 focus:border-red-500 outline-none placeholder-gray-500"> 4551 </div> 4552 4553 <div> 4554 <input type="email" 4555 name="email" 4556 id="email-address" 4557 placeholder="E-mail address*" 4558 class="h-14 w-full px-4 py-3 border border-gray-200 rounded focus:ring-2 focus:ring-red-500 focus:border-red-500 outline-none placeholder-gray-500" 4559 required> 4560 </div> 4561 4562 <span data-error-message class="block text-brand-red text-sm tracking-normal font-bold mt-4"></span> 4563 <span data-success-message class="block text-success text-sm tracking-normal font-bold mt-4"></span> 4564 4565 <div class="text-black"> 4566 <p class="text-xs leading-[140%] !mb-8 lg:!mb-12 mt-6 tracking-normal"> 4567 By clicking Get Started below, I consent to be contacted by American Standard and any party on its behalf at any time via emails, 4568 telemarketing calls using an autodialer, artificial voices or pre-recordings, AI generated calls or texts, and SMS text messages which 4569 could result in wireless charges, at the number(s) provided. I understand that my consent is not required to purchase products or services, 4570 and I understand that I may revoke my consent at any time by calling American Standard at 800-215-5130. I also agree to the 4571 <a href="/pages/terms-of-use" class="underline">Terms of Use</a> and <a href="/privacy-policy" class="underline">Privacy Policy</a>, 4572 which are also linked at the bottom of this page. 4573 </p> 4574 </div> 4575 4576 <input data-utm-source type="hidden" name="utm_source" value="ASUS"> 4577 <input data-utm-medium type="hidden" name="utm_medium" value="referral"> 4578 <input data-utm-campaign type="hidden" name="utm_campaign" value=""> 4579 <input data-utm-content type="hidden" name="utm_content" value=""> 4580 <input data-subid-stc type="hidden" name="subid_stc" value=""> 4581 <input data-pubid-stc type="hidden" name="pubid_stc" value=""> 4582 <input data-log-number type="hidden" name="lognumber" id="log-number" value=""> 4583 <input type="hidden" name="Terms" id="terms" value="By clicking Get Started below, I consent to be contacted by American Standard and any party on its behalf at any time via emails, telemarketing calls using an autodialer, artificial voices or pre-recordings, AI generated calls or texts, and SMS text messages which could result in wireless charges, at the number(s) provided. I understand that my consent is not required to purchase products or services, and I understand that I may revoke my consent at any time by calling American Standard at 800-215-5130. I also agree to the Terms of Use and Privacy Policy, which are also linked at the bottom of this page."> 4584 <input type="hidden" name="xxTrustedFormCertUrl" id="xxTrustedFormCertUrl" value=""> 4585 4586 <button type="submit" 4587 class="bg-red-600 text-white font-semibold py-3 px-4 transition-colors duration-200 mt-6 w-full max-w-[304px] mx-auto block"> 4588 Submit 4589 </button> 4590 </form> 4591 </div> 4592</home-services-contact-form> 4593 </div> 4594 </div> 4595 </div> 4596</div> 4597 4598 <div class="flex items-center"> 4599 4600 4601 <button 4602 class="search-open mr-4 xl:mr-6 xl:bg-gray-50 xl:min-h-[37px] xl:flex xl:items-center xl:justify-between xl:px-4" 4603 aria-label="Open search" 4604 onclick="document.querySelector('.autocomplete-document').activate()" 4605 >
4606 <span class="hidden xl:block text-base text-gray-500">Search</span> 4607 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-search fill-secondary w-5 h-5" width="24" height="24" viewBox="0 0 24 24" fill="none"> 4608 <path d="M13.4471 19.105C11.5494 19.1046 9.70642 18.4694 8.21158 17.3004L3.51173 22L2 20.4883L6.69984 15.7888C5.53023 14.2938 4.89456 12.4505 4.8941 10.5525C4.8941 5.83686 8.73117 2 13.4471 2C18.1629 2 22 5.83686 22 10.5525C22 15.2681 18.1629 19.105 13.4471 19.105ZM13.4471 4.13812C9.90934 4.13812 7.03234 7.01497 7.03234 10.5525C7.03234 14.09 9.90934 16.9669 13.4471 16.9669C16.9848 16.9669 19.8618 14.09 19.8618 10.5525C19.8618 7.01497 16.9848 4.13812 13.4471 4.13812Z" fill="black"/> 4609</svg> 4610 </button> 4611 4612 4613 4614 4615 <div class="mr-4 block"> 4616 <a data-login-open class="font-title text-sm" href="https://www.americanstandard-us.com/customer_authentication/redirect?locale=en®ion_country=US" aria-label="Account"> 4617 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-account fill-secondary min-w-[11px]" width="11" height="22" viewBox="0 0 11 22" fill="none"> 4618 <g clip-path="url(#clip0_4002_1036)"> 4619 <path d="M5.50008 9.16667C8.03139 9.16667 10.0834 7.11464 10.0834 4.58333C10.0834 2.05203 8.03139 0 5.50008 0C2.96878 0 0.916748 2.05203 0.916748 4.58333C0.916748 7.11464 2.96878 9.16667 5.50008 9.16667Z" fill="black"/> 4620 <path d="M9.16667 11H1.83333C0.820811 11 0 11.8208 0 12.8333V20.1667C0 21.1792 0.820811 22 1.83333 22H9.16667C10.1792 22 11 21.1792 11 20.1667V12.8333C11 11.8208 10.1792 11 9.16667 11Z" fill="black"/> 4621 </g> 4622 <defs> 4623 <clipPath id="clip0_4002_1036"> 4624 <rect width="11" height="22" fill="white"/> 4625 </clipPath> 4626 </defs> 4627</svg> 4628 </a> 4629 </div> 4630 4631 4632 4633 4634 4635 <div class="mr-4 xl:mr-0"> 4636 <a class="minicart-button" href="/cart" data-drawer-target="minicart_drawer"> 4637 <span class="sr-only">Shopping cart</span> 4638 4639 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-cart fill-secondary w-5 h-5 lg:w-6 lg:h-6" width="24" height="23" viewBox="0 0 24 23" fill="none"> 4640 <path d="M11.5239 22.024C13.1652 22.024 14.4958 20.6949 14.4958 19.0554C14.4958 17.4159 13.1652 16.0869 11.5239 16.0869C9.88256 16.0869 8.552 17.4159 8.552 19.0554C8.552 20.6949 9.88256 22.024 11.5239 22.024Z" fill="currentColor"/> 4641 <path d="M18.4585 22.024C20.0998 22.024 21.4303 20.6949 21.4303 19.0554C21.4303 17.4159 20.0998 16.0869 18.4585 16.0869C16.8171 16.0869 15.4866 17.4159 15.4866 19.0554C15.4866 20.6949 16.8171 22.024 18.4585 22.024Z" fill="currentColor"/> 4642 <path d="M0.944445 2.61347H5.73989L8.72048 12.2356C8.72048 12.2356 8.98517 13.9307 11.3954 13.9613C13.8056 13.992 16.1831 13.9613 17.8344 13.9613C19.4858 13.9613 20.3432 13.9327 20.785 12.4246C21.2269 10.9166 23.7492 2.61347 23.7492 2.61347C23.7492 2.61347 24.0771 1.80997 23.7492 1.7506C19.3112 1.53488 5.99626 1.7506 5.99626 1.7506V0.973816H0.944445C-0.318605 0.973816 -0.0303325 2.65008 0.944445 2.61347Z" fill="currentColor"/> 4643</svg> 4644 <span data-minicart-count="0" class="w-[1.375rem] aspect-square flex items-center justify-center font-semibold text-sm text-white bg-primary rounded-full ml-1">0</span> 4645 4646</a> 4647 4648 </div> 4649 4650 4651 <button class="menu-open-button xl:!hidden" aria-label="Open menu" aria-expanded="false" aria-controls="main-menu" data-menu-open> 4652 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-menu" width="20" height="20" viewBox="0 0 20 20" fill="none"> 4653 <path d="M2.5 13.3333H17.5V15.4167H2.5V13.3333ZM2.5 4.16666H17.5V6.25H2.5V4.16666ZM2.5 8.75H17.5V10.8333H2.5V8.75Z" fill="black"/> 4654</svg> 4655 </button> 4656 <button class="menu-close-button xl:!hidden" aria-label="Close menu" data-menu-close> 4657 <svg role="presentation" aria-hidden="true" focusable="false" 4658 xmlns="http://www.w3.org/2000/svg" 4659 class="icon icon-close fill-secondary" 4660 width="20" 4661 height="20" 4662 viewBox="0 0 20 20" 4663 fill="none" 4664> 4665 <path d="M15 5.875L14.125 5L10 9.125L5.875 5L5 5.875L9.125 10L5 14.125L5.875 15L10 10.875L14.125 15L15 14.125L10.875 10L15 5.875Z" fill="black"/> 4666</svg> 4667 4668 </button> 4669 </div> 4670 </div> 4671 4672 4673</header> 4674 4675 4676</div> 4677 4678 4679 4680 <section id="shopify-section-abg-redirect-modal" class="shopify-section"><div 4681 id="abg-redirect-modal-abg-redirect-modal" 4682 class="abg-redirect-modal" 4683 data-section-id="abg-redirect-modal" 4684 data-enabled="true" 4685 data-trigger-type="url_parameter" 4686 data-trigger-param-name="abg_redirect" 4687 data-trigger-param-value="1" 4688 data-landing-path="/pages/abg-redirect" 4689 data-redirect-url="" 4690 data-display-domains="" 4691 data-intercept-nav-links="true" 4692 data-target-link-domains="americanstandardbathing.com, americanstandardbathing.ca" 4693 data-nav-link-selector="" 4694 data-only-redirect-url-trigger="false" 4695 hidden 4696 > 4697 <div class="abg-redirect-modal__overlay" data-abg-overlay aria-hidden="true"></div> 4698 4699 <div 4700 class="abg-redirect-modal__dialog" 4701 role="dialog" 4702 aria-modal="true" 4703 aria-labelledby="abg-redirect-modal-title-abg-redirect-modal" 4704 aria-describedby="abg-redirect-modal-body-abg-redirect-modal" 4705 tabindex="-1" 4706 data-abg-dialog 4707 > 4708 <button type="button" class="abg-redirect-modal__close" data-abg-close aria-label="Close"> 4709 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> 4710 </button> 4711 4712 <h3 id="abg-redirect-modal-title-abg-redirect-modal" class="abg-redirect-modal__title"> 4713 You are now leaving AmericanStandard-us.com 4714 </h3> 4715 4716 <p id="abg-redirect-modal-body-abg-redirect-modal" class="abg-redirect-modal__body"> 4717 You are being redirected to our strategic partner American Standard Bathing. 4718 </p> 4719 4720 <div class="abg-redirect-modal__actions"> 4721 <button type="button" class="btn btn-secondary border-primary text-primary hover:!bg-primary hover:text-secondary-inverted hover:border-primary active:bg-primary-light active:border-primary-light" data-abg-continue> 4722 Continue to Partner Site 4723 </button> 4724 4725 <button type="button" class="abg-redirect-modal__stay-link" data-abg-close> 4726 Stay on site 4727 </button> 4728 </div> 4729 </div> 4730 </div> 4731 4732 <style> 4733 #abg-redirect-modal-abg-redirect-modal { 4734 position: fixed; 4735 inset: 0; 4736 z-index: 80; 4737 display: none; 4738 align-items: center; 4739 justify-content: center; 4740 padding: 1rem; 4741 } 4742 4743 #abg-redirect-modal-abg-redirect-modal.is-open { 4744 display: flex; 4745 } 4746 4747 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__overlay { 4748 position: absolute; 4749 inset: 0; 4750 background: rgba(0, 0, 0, 0.55); 4751 backdrop-filter: blur(2px); 4752 } 4753 4754 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__dialog { 4755 position: relative; 4756 width: 100%; 4757 max-width: 40rem; 4758 background: rgb(255, 255, 255); 4759 color: rgb(28, 28, 30); 4760 border-radius: 0.5rem; 4761 padding: 1.5rem; 4762 box-shadow: 0 24px 40px rgba(0, 0, 0, 0.22); 4763 border-top: 5px solid rgb(231, 0, 37); 4764 outline: none; 4765 } 4766 4767 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__close { 4768 position: absolute; 4769 top: 0.75rem; 4770 right: 0.75rem; 4771 display: flex; 4772 align-items: center; 4773 justify-content: center; 4774 width: 2rem; 4775 height: 2rem; 4776 padding: 0; 4777 border: 0; 4778 background: transparent; 4779 color: rgb(79, 79, 79); 4780 cursor: pointer; 4781 border-radius: 0.25rem; 4782 } 4783 4784 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__close:hover { 4785 color: rgb(28, 28, 30); 4786 background: rgba(0, 0, 0, 0.06); 4787 } 4788 4789 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__title { 4790 font-family: Montserrat, sans-serif; 4791 font-size: 1.5rem; 4792 line-height: 1.2; 4793 letter-spacing: -0.02em; 4794 font-weight: 600; 4795 margin: 1rem 0 0.75rem; 4796 color: rgb(28, 28, 30); 4797 } 4798 4799 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__body { 4800 font-family: Montserrat, sans-serif; 4801 font-size: 1rem; 4802 line-height: 1.5; 4803 margin: 0; 4804 color: rgb(79, 79, 79); 4805 } 4806 4807 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__actions { 4808 margin-top: 1.5rem; 4809 display: flex; 4810 flex-direction: column; 4811 align-items: flex-start; 4812 gap: 0.75rem; 4813 } 4814 4815 /* Keep the CTA text red when it receives focus on open (design-system secondary focus turns it dark). */ 4816 #abg-redirect-modal-abg-redirect-modal [data-abg-continue]:focus-visible { 4817 color: rgb(231, 0, 37); 4818 } 4819 4820 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__stay-link { 4821 border: 0; 4822 background: transparent; 4823 font-family: Montserrat, sans-serif; 4824 font-size: 0.875rem; 4825 line-height: 1.25rem; 4826 color: rgb(28, 28, 30); 4827 text-decoration: underline; 4828 text-underline-offset: 2px; 4829 padding: 0; 4830 cursor: pointer; 4831 } 4832 4833 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__stay-link:hover { 4834 text-decoration: none; 4835 } 4836 4837 @media (max-width: 767px) { 4838 #abg-redirect-modal-abg-redirect-modal { 4839 padding: 0.75rem; 4840 } 4841 4842 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__dialog { 4843 border-radius: 0.375rem; 4844 padding: 1.25rem; 4845 } 4846 4847 #abg-redirect-modal-abg-redirect-modal .abg-redirect-modal__title { 4848 font-size: 1.25rem; 4849 } 4850 } 4851 </style> 4852 4853
4853<script> 4854 (function() { 4855 var root = document.getElementById('abg-redirect-modal-abg-redirect-modal'); 4856 if (!root || root.dataset.enabled !== 'true') return; 4857 4858 var continueButton = root.querySelector('[data-abg-continue]'); 4859 var dialog = root.querySelector('[data-abg-dialog]'); 4860 var overlay = root.querySelector('[data-abg-overlay]'); 4861 var pendingRedirectUrl = ''; 4862 var previousBodyOverflow = ''; 4863 4864 function normalizeDomain(value) { 4865 if (!value) return ''; 4866 4867 var parsedDomain = value.trim().toLowerCase(); 4868 if (!parsedDomain) return ''; 4869 4870 parsedDomain = parsedDomain.replace(/^https?:\/\//, ''); 4871 parsedDomain = parsedDomain.split('/')[0]; 4872 parsedDomain = parsedDomain.replace(/^www\./, ''); 4873 4874 return parsedDomain; 4875 } 4876 4877 function getConfiguredDomains(csvValue) { 4878 return (csvValue || '') 4879 .split(',') 4880 .map(function(item) { return normalizeDomain(item); }) 4881 .filter(function(item) { return !!item; }); 4882 } 4883 4884 function doesHostMatchAllowedDomains(host, domains) { 4885 if (!host || !domains || !domains.length) return false; 4886 4887 return domains.some(function(domain) { 4888 return host === domain || host.slice(-(domain.length + 1)) === '.' + domain; 4889 }); 4890 } 4891 4892 function shouldRunOnCurrentDomain() { 4893 var configuredDomains = (root.dataset.displayDomains || '').trim(); 4894 if (!configuredDomains) return true; 4895 4896 var currentHost = normalizeDomain(window.location.hostname || ''); 4897 if (!currentHost) return false; 4898 4899 var allowedDomains = getConfiguredDomains(configuredDomains); 4900 4901 if (!allowedDomains.length) return true; 4902 4903 return doesHostMatchAllowedDomains(currentHost, allowedDomains); 4904 } 4905 4906 if (!shouldRunOnCurrentDomain()) return; 4907 4908 function normalizeUrl(value) { 4909 if (!value) return ''; 4910 4911 try { 4912 return new URL(value, window.location.origin).href; 4913 } catch (error) { 4914 return ''; 4915 } 4916 } 4917 4918 function getComparableUrl(value) { 4919 var normalized = normalizeUrl(value); 4920 if (!normalized) return ''; 4921 4922 try { 4923 var url = new URL(normalized); 4924 var pathname = url.pathname || '/'; 4925 if (pathname.length > 1) { 4926 pathname = pathname.replace(/\/+$/, ''); 4927 } 4928 4929 return [url.protocol.toLowerCase(), '//', url.host.toLowerCase(), pathname, url.search].join(''); 4930 } catch (error) { 4931 return ''; 4932 } 4933 } 4934 4935 function normalizePath(value) { 4936 if (!value) return ''; 4937 var parsedPath = value.trim().toLowerCase(); 4938 if (parsedPath === '/') return '/'; 4939 return parsedPath.replace(/\/+$/, ''); 4940 } 4941 4942 function emitEvent(name, detail) { 4943 document.dispatchEvent(new CustomEvent(name, { detail: detail || {} })); 4944 4945 if (window.dataLayer && typeof window.dataLayer.push === 'function') { 4946 window.dataLayer.push({ 4947 event: name, 4948 abgRedirectModal: detail || {} 4949 }); 4950 } 4951 } 4952 4953 function openModal(redirectUrl, source) { 4954 var fallbackUrl = root.dataset.redirectUrl || ''; 4955 pendingRedirectUrl = redirectUrl || fallbackUrl; 4956 4957 root.hidden = false; 4958 root.classList.add('is-open'); 4959 4960 previousBodyOverflow = document.body.style.overflow; 4961 document.body.style.overflow = 'hidden'; 4962 4963 if (dialog) { 4964 dialog.focus(); 4965 } 4966 4967 emitEvent('abgRedirectModal:open', { 4968 sectionId: root.dataset.sectionId, 4969 source: source || 'unknown', 4970 redirectUrl: pendingRedirectUrl 4971 }); 4972 } 4973 4974 function closeModal(source) { 4975 root.classList.remove('is-open'); 4976 root.hidden = true; 4977 document.body.style.overflow = previousBodyOverflow || ''; 4978 4979 emitEvent('abgRedirectModal:close', { 4980 sectionId: root.dataset.sectionId, 4981 source: source || 'manual' 4982 }); 4983 } 4984 4985 function continueRedirect(source) { 4986 var targetUrl = normalizeUrl(pendingRedirectUrl || root.dataset.redirectUrl); 4987 if (!targetUrl) { 4988 closeModal(source || 'continue-invalid-url'); 4989 return; 4990 } 4991 4992 emitEvent('abgRedirectModal:continue', { 4993 sectionId: root.dataset.sectionId, 4994 source: source || 'continue', 4995 redirectUrl: targetUrl 4996 }); 4997 4998 window.open(targetUrl, '_blank', 'noopener,noreferrer'); 4999 closeModal(source || 'continue'); 5000 } 5001 5002 function matchesUrlParamTrigger() { 5003 var paramName = (root.dataset.triggerParamName || '').trim(); 5004 if (!paramName) return false;
5005 5006 var params = new URLSearchParams(window.location.search); 5007 if (!params.has(paramName)) return false; 5008 5009 var expectedValue = (root.dataset.triggerParamValue || '').trim(); 5010 if (!expectedValue.length) return true; 5011 5012 return params.get(paramName) === expectedValue; 5013 } 5014 5015 function matchesLandingPageTrigger() { 5016 var triggerPath = normalizePath(root.dataset.landingPath || ''); 5017 if (!triggerPath) return false; 5018 5019 var currentPath = normalizePath(window.location.pathname || '/'); 5020 return currentPath === triggerPath; 5021 } 5022 5023 function shouldOpenOnLoad() { 5024 var triggerType = root.dataset.triggerType || 'url_parameter'; 5025 5026 if (triggerType === 'url_parameter') { 5027 return matchesUrlParamTrigger(); 5028 } 5029 5030 if (triggerType === 'landing_page') { 5031 return matchesLandingPageTrigger(); 5032 } 5033 5034 if (triggerType === 'url_or_landing') { 5035 return matchesUrlParamTrigger() || matchesLandingPageTrigger(); 5036 } 5037 5038 return false; 5039 } 5040 5041 function isExternalHttpLink(anchorEl) { 5042 if (!anchorEl) return false; 5043 5044 var href = anchorEl.getAttribute('href'); 5045 if (!href) return false; 5046 if (href.indexOf('#') === 0) return false; 5047 if (href.indexOf('mailto:') === 0) return false; 5048 if (href.indexOf('tel:') === 0) return false; 5049 if (href.indexOf('javascript:') === 0) return false; 5050 5051 var parsedUrl = normalizeUrl(href); 5052 if (!parsedUrl) return false; 5053 5054 try { 5055 var url = new URL(parsedUrl); 5056 if (url.protocol !== 'http:' && url.protocol !== 'https:') return false; 5057 return url.origin !== window.location.origin; 5058 } catch (error) { 5059 return false; 5060 } 5061 } 5062 5063 function anchorShouldTrigger(anchorEl) { 5064 if (!anchorEl) return false; 5065 5066 var targetDomains = getConfiguredDomains(root.dataset.targetLinkDomains || ''); 5067 if (targetDomains.length) { 5068 try { 5069 var targetUrl = new URL(normalizeUrl(anchorEl.getAttribute('href'))); 5070 var targetHost = normalizeDomain(targetUrl.hostname || ''); 5071 5072 return doesHostMatchAllowedDomains(targetHost, targetDomains); 5073 } catch (error) { 5074 return false; 5075 } 5076 } 5077 5078 var strictTrigger = (root.dataset.onlyRedirectUrlTrigger || '') === 'true'; 5079 var configuredUrl = getComparableUrl(root.dataset.redirectUrl || ''); 5080 var clickedUrl = getComparableUrl(anchorEl.getAttribute('href')); 5081 5082 if (strictTrigger) { 5083 return !!(configuredUrl && clickedUrl && configuredUrl === clickedUrl); 5084 } 5085 5086 if (isExternalHttpLink(anchorEl)) return true; 5087 5088 if (anchorEl.hasAttribute('data-abg-redirect')) return true; 5089 5090 var configuredSelector = (root.dataset.navLinkSelector || '').trim(); 5091 if (configuredSelector) { 5092 try { 5093 if (anchorEl.matches(configuredSelector)) return true; 5094 } catch (error) { 5095 // Ignore invalid selector in theme setting. 5096 } 5097 } 5098 5099 if (configuredUrl && clickedUrl && configuredUrl === clickedUrl) return true; 5100 5101 var triggerParamName = (root.dataset.triggerParamName || '').trim(); 5102 if (triggerParamName && clickedUrl) { 5103 try { 5104 var clickedParams = new URL(clickedUrl).searchParams; 5105 if (clickedParams.has(triggerParamName)) return true; 5106 } catch (error) { 5107 return false; 5108 } 5109 } 5110 5111 return false; 5112 } 5113 5114 if (continueButton) { 5115 continueButton.addEventListener('click', function() { 5116 continueRedirect('button'); 5117 }); 5118 } 5119 5120 var closeTriggers = root.querySelectorAll('[data-abg-close]'); 5121 if (closeTriggers && closeTriggers.length) { 5122 closeTriggers.forEach(function(trigger) { 5123 trigger.addEventListener('click', function() { 5124 closeModal('stay_on_site'); 5125 }); 5126 }); 5127 } 5128 5129 if (overlay) { 5130 overlay.addEventListener('click', function() { 5131 closeModal('overlay'); 5132 }); 5133 } 5134 5135 document.addEventListener('keydown', function(event) { 5136 if (event.key === 'Escape' && root.classList.contains('is-open')) { 5137 closeModal('escape'); 5138 } 5139 }); 5140
5141 if ((root.dataset.interceptNavLinks || '') === 'true') { 5142 document.addEventListener('click', function(event) { 5143 if (!event.target || typeof event.target.closest !== 'function') return; 5144 5145 var anchorEl = event.target.closest('a[href]'); 5146 if (!anchorEl) return; 5147 if (event.defaultPrevented) return; 5148 5149 if (!anchorShouldTrigger(anchorEl)) return; 5150 5151 event.preventDefault(); 5152 openModal(anchorEl.href, isExternalHttpLink(anchorEl) ? 'external_link' : 'nav_link'); 5153 }, true); 5154 } 5155 5156 if (shouldOpenOnLoad()) { 5157 openModal(root.dataset.redirectUrl || '', 'page_trigger'); 5158 } 5159 5160 window.ABGRedirectModal = window.ABGRedirectModal || {}; 5161 window.ABGRedirectModal.open = function(url) { 5162 openModal(url || root.dataset.redirectUrl || '', 'manual_api'); 5163 }; 5164 window.ABGRedirectModal.close = function() { 5165 closeModal('manual_api'); 5166 }; 5167 window.ABGRedirectModal.isOpen = function() { 5168 return root.classList.contains('is-open'); 5169 }; 5170 window.ABGRedirectModal.sectionId = root.dataset.sectionId; 5171 })(); 5172 </script>
5172</section> 5173 5174 5175 5176 5177 <div id="shopify-section-template--19594871701551__banner_overlay_rxzaEq" class="shopify-section"> 5178 5179 5180 5181 5182 5183<link 5184 rel="preload" 5185 as="image" 5186 href="//www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=480" 5187 media="(max-width: 767px)" 5188 type="image/webp" 5189 fetchpriority="high" 5190> 5191<link 5192 rel="preload" 5193 as="image" 5194 href="//www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=880" 5195 media="(min-width: 768px) and (max-width: 1023px)" 5196 type="image/webp" 5197 fetchpriority="high" 5198> 5199<link 5200 rel="preload" 5201 as="image" 5202 href="//www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=1280" 5203 media="(min-width: 1024px)" 5204 type="image/webp" 5205 imagesizes="100vw" 5206 fetchpriority="high" 5207> 5208 5209 5210 5211 5212<banner-overlay> 5213 5214 5215 5216 5217 5218<link rel="preload" href="//www.americanstandard-us.com/cdn/shop/t/165/assets/lib-swiper-bundle.min.css?v=127325684396148790271761579694" as="style"> 5219<link href="//www.americanstandard-us.com/cdn/shop/t/165/assets/lib-swiper-bundle.min.css?v=127325684396148790271761579694" rel="stylesheet" type="text/css" media="all" /> 5220 5221<style> 5222 banner-overlay .swiper-pagination .swiper-pagination-bullet { 5223 background-color: #000; 5224 } 5225 5226</style> 5227<div class="relative swiper-slider-wrapper"> 5228 <swiper-slider 5229 class="swiper w-full block" 5230 role="region" 5231 aria-label="Banner Carousel" 5232 data-priority-init="true" 5233 data-options=' 5234 { 5235 "spaceBetween": 12, 5236 "slidesPerView": 1, 5237 "autoHeight": true, 5238 "centeredSlides": true, 5239 "allowTouchMove": true, 5240 "loop": true, 5241 5242 "breakpoints": { 5243 "768": { 5244 "slidesPerView": 1 5245 }, 5246 "1024": { 5247 "slidesPerView": 1, 5248 "spaceBetween": 20 5249 }, 5250 "1440": { 5251 "slidesPerView": 1 5252 } 5253 } 5254 }' 5255 data-next-button-class=".swiper-example-button-next" 5256 data-prev-button-class=".swiper-example-button-prev" 5257 > 5258 5259 <div class="swiper-wrapper"> 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275<style> 5276 #icon-image_slide_RH9pwF { 5277 width: 50px; 5278 z-index: 1; 5279 } 5280 5281 @media (min-width: 768px) { 5282 #icon-image_slide_RH9pwF { 5283 width: 300px; 5284 } 5285 5286 .container-text-image_slide_RH9pwF { 5287 padding-left: 0%; 5288 padding-right: 0%; 5289 } 5290 } 5291 @media (max-width: 767px) { 5292 .container-text-image_slide_RH9pwF h2{ 5293 font-size: 32px; 5294 } 5295 .container-text-image_slide_RH9pwF .text--description p { 5296 font-size: 1rem; 5297 } 5298 } 5299</style> 5300 5301<div class="swiper-slide !h-auto video flex flex-col items-stretch"> 5302 5303 <div class="relative w-full h-[306px] md:h-[603px] 2xl:h-[790px] "> 5304 5305 5306 <picture> 5307 <source 5308 type="image/webp" 5309 media="(max-width: 767px)" 5310 srcset=" 5311 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=360 360w, 5312 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=480 480w, 5313 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=600 600w 5314 " 5315 sizes="100vw" 5316 > 5317 <source 5318 type="image/webp" 5319 media="(min-width: 768px) and (max-width: 1023px)" 5320 srcset=" 5321 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=480 480w, 5322 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=640 640w, 5323 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=768 768w, 5324 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=880 880w 5325 " 5326 sizes="100vw" 5327 > 5328 <source 5329 type="image/webp" 5330 media="(min-width: 1024px)" 5331 srcset=" 5332 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=640 640w, 5333 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=880 880w, 5334 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=1024 1024
5334w, 5335 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=1280 1280w 5336 " 5337 sizes="100vw" 5338 > 5339 <img 5340 src="//www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=480" 5341 srcset=" 5342 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=360 360w, 5343 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=480 480w, 5344 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=600 600w, 5345 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=880 880w, 5346 //www.americanstandard-us.com/cdn/shop/files/Aspirations_Lifestyle_1048804240_0002_April2025_1360x572-20250624-192906_61d6d23a-9dec-4c39-ae67-ace77929b77f.jpg?format=webp&quality=72&v=1753897113&width=1024 1024w 5347 " 5348 sizes="(max-width: 767px) 100vw, (min-width: 768px) and (max-width: 1023px) 100vw, 100vw" 5349 alt="Aspirations kitchen Faucet" 5350 class="w-full h-full aspect-square md:aspect-[16/9] object-cover object-center " 5351 width="1360" 5352 height="572" 5353 loading="eager" 5354 fetchpriority="high" 5355 decoding="async" 5356 > 5357 </picture></div> 5358 5359 5360 5361 <div class="flex-1 md:absolute md:inset-0 md:p-10 w-full h-auto flex items-center justify-center md:items-start md:justify-start"> 5362 5363 <div class="container-text-image_slide_RH9pwF max-w-[448px] text-center md:text-left md:max-w-2xl px-4 md:px-0 my-8 md:my-0"> 5364 5365 5366 5367 5368 5369 5370 <div class="flex flex-col gap-[8px] text--description [&>ul]:list-disc [&>ol]:list-decimal [&>ol]:ml-4 [&>ul]:ml-4 text-[32px] text-base py-1 max-sm:max-w-[360px] max-sm:mx-auto" style="--text-color:#000000;--text-color-mob:#000000;"> 5371 <h2><strong>Beautiful Design, Outstanding Features</strong></h2><h6>Aspirations Kitchen Collection</h6> 5372 </div> 5373 5374 5375 5376 5377 <div class="button-wrapper flex gap-4 justify-center md:justify-start mt-6 "> 5378 <a class="btn " href="/collections/aspirations-kitchen">See All Features</a> 5379 </div> 5380 5381 5382 </div> 5383 5384 </div> 5385 5386</div> 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404<style> 5405 #icon-image_slide_GQaRy8 { 5406 width: 50px; 5407 z-index: 1; 5408 } 5409 5410 @media (min-width: 768px) { 5411 #icon-image_slide_GQaRy8 { 5412 width: 300px; 5413 } 5414 5415 .container-text-image_slide_GQaRy8 { 5416 padding-left: 80px; 5417 padding-right: 0px; 5418 } 5419 } 5420 @media (max-width: 767px) { 5421 .container-text-image_slide_GQaRy8 h2{ 5422 font-size: 32px; 5423 } 5424 .container-text-image_slide_GQaRy8 .text--description p { 5425 font-size: 1rem; 5426 } 5427 } 5428</style> 5429 5430<div class="swiper-slide !h-auto video flex flex-col items-stretch"> 5431 5432 <div class="relative w-full h-[306px] md:h-[603px] 2xl:h-[790px] bg-[#ACABAE] "> 5433 <div class="md:absolute md:inset-0" style="background: linear-gradient(269.73deg, rgba(224, 218, 218, 0) 47.93%, rgba(224, 218, 218, 0.9) 79.02%);"></div> 5434 5435 <picture> 5436 <source 5437 type="image/webp" 5438 media="(max-width: 767px)" 5439 srcset=" 5440 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=360 360w, 5441 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=480 480w, 5442 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=600 600w 5443 " 5444 sizes="100vw" 5445 > 5446 <source 5447 type="image/webp" 5448 media="(min-width: 768px) and (max-width: 1023px)" 5449 srcset=" 5450 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=480 480w, 5451 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=640 640w, 5452 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=768 768w, 5453 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=880 880w 5454 " 5455 sizes="76vw" 5456 > 5457 <source 5458 type="image/webp" 5459 media="(min-width: 1024px)" 5460 srcset=" 5461 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=640 640w, 5462 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=880 880w, 5463 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=1024 1024
5463w, 5464 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=1280 1280w 5465 " 5466 sizes="76vw" 5467 > 5468 <img 5469 src="//www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=480" 5470 srcset=" 5471 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=360 360w, 5472 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=480 480w, 5473 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=600 600w, 5474 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=880 880w, 5475 //www.americanstandard-us.com/cdn/shop/files/0d1360b69631a044f4f0b316b90b401122e09243_2.png?format=webp&quality=58&v=1759250771&width=1024 1024w 5476 " 5477 sizes="(max-width: 767px) 100vw, (min-width: 768px) and (max-width: 1023px) 76vw, 76vw" 5478 alt="" 5479 class="w-full h-full aspect-square md:aspect-[16/9] object-cover object-center md:w-[76%] md:ml-auto" 5480 width="4096" 5481 height="2851" 5482 loading="lazy" 5483 fetchpriority="low" 5484 decoding="async" 5485 > 5486 </picture></div> 5487 5488 5489 5490 <div class="flex-1 md:absolute md:inset-0 md:p-10 w-full h-auto flex items-center justify-center md:items-center md:justify-start"> 5491 5492 <div class="container-text-image_slide_GQaRy8 max-w-[448px] text-center md:text-left md:max-w-2xl px-4 md:px-0 my-8 md:my-0"> 5493 5494 5495 <div class="mb-3 pt-[0.438rem] pr-9 pb-1.5 pl-[2.125rem] inline-block" style="--text-color: #ffffff;--text-color-mob: #ffffff; background-color: #e70026;"> 5496 <p class="text-xs leading-[0.75rem] font-bold tracking-[4px]">HOME SERVICES</p> 5497 </div> 5498 5499 5500 5501 5502 5503 <div class="flex flex-col gap-[8px] text--description [&>ul]:list-disc [&>ol]:list-decimal [&>ol]:ml-4 [&>ul]:ml-4 text-[32px] text-base py-1 max-sm:max-w-[360px] max-sm:mx-auto" style="--text-color:;--text-color-mob:;"> 5504 <h2><strong>Transform your Bathroom with our Remodel Services</strong></h2> 5505 </div> 5506 5507 5508 5509 <div class="mt-2 mb-6 md:mb-10" style="--text-color:;--text-color-mob:;"> 5510 <ul class="list-none flex flex-col gap-2"> 5511 5512 <li class="flex items-center justify-center gap-3 text-lg font-semibold md:text-xl md:justify-start"> 5513 <svg role="presentation" aria-hidden="true" focusable="false" width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 5514 <path d="M16.9756 6.39844L7.3291 16.0449L3.02441 11.7402L3.85352 10.918L7.3291 14.3936L7.50586 14.2168L16.1533 5.57617L16.9756 6.39844Z" fill="black" stroke="black" stroke-width="0.5"/> 5515</svg> 5516 5517 <span>For Shower, Tubs & Walk-In Tubs</span> 5518 </li> 5519 5520 <li class="flex items-center justify-center gap-3 text-lg font-semibold md:text-xl md:justify-start"> 5521 <svg role="presentation" aria-hidden="true" focusable="false" width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 5522 <path d="M16.9756 6.39844L7.3291 16.0449L3.02441 11.7402L3.85352 10.918L7.3291 14.3936L7.50586 14.2168L16.1533 5.57617L16.9756 6.39844Z" fill="black" stroke="black" stroke-width="0.5"/> 5523</svg> 5524 5525 <span>Complete in as little as 2 days</span> 5526 </li> 5527 5528 <li class="flex items-center justify-center gap-3 text-lg font-semibold md:text-xl md:justify-start"> 5529 <svg role="presentation" aria-hidden="true" focusable="false" width="20" height="21" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> 5530 <path d="M16.9756 6.39844L7.3291 16.0449L3.02441 11.7402L3.85352 10.918L7.3291 14.3936L7.50586 14.2168L16.1533 5.57617L16.9756 6.39844Z" fill="black" stroke="black" stroke-width="0.5"/> 5531</svg> 5532
5533 <span>Backed by a Lifetime Warranty</span> 5534 </li> 5535 5536 </ul> 5537 </div> 5538 5539 5540 <div class="button-wrapper flex gap-4 justify-center md:justify-start mt-6 "> 5541 <a class="btn " href="https://www.americanstandard-us.com/pages/shower-tub?utm_content=hp_Hero">Discover Home Services</a> 5542 </div> 5543 5544 5545 </div> 5546 5547 </div> 5548 5549</div> 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567<style> 5568 #icon-image_slide_rjUrPx { 5569 width: 150px; 5570 z-index: 1; 5571 } 5572 5573 @media (min-width: 768px) { 5574 #icon-image_slide_rjUrPx { 5575 width: 300px; 5576 } 5577 5578 .container-text-image_slide_rjUrPx { 5579 padding-left: 0%; 5580 padding-right: 0%; 5581 } 5582 } 5583 @media (max-width: 767px) { 5584 .container-text-image_slide_rjUrPx h2{ 5585 font-size: 32px; 5586 } 5587 .container-text-image_slide_rjUrPx .text--description p { 5588 font-size: 1rem; 5589 } 5590 } 5591</style> 5592 5593<div class="swiper-slide !h-auto video flex flex-col items-stretch"> 5594 5595 <div class="relative w-full h-[306px] md:h-[603px] 2xl:h-[790px] "> 5596 5597<div id="icon-image_slide_rjUrPx" class="absolute top-0 right-0"> 5598 5599 5600 5601 5602 <img src="//www.americanstandard-us.com/cdn/shop/files/Image20250917150117.png?v=1758135749&width=200" alt="Image" srcset="//www.americanstandard-us.com/cdn/shop/files/Image20250917150117.png?v=1758135749&width=120 120w, //www.americanstandard-us.com/cdn/shop/files/Image20250917150117.png?v=1758135749&width=160 160w, //www.americanstandard-us.com/cdn/shop/files/Image20250917150117.png?v=1758135749&width=200 200w" width="400" height="300" loading="lazy" sizes="120px" class="w-full h-full aspect-square object-cover object-center" fetchpriority="low" decoding="async"> 5603 5604 5605 </div> 5606 <picture> 5607 <source 5608 type="image/webp" 5609 media="(max-width: 767px)" 5610 srcset=" 5611 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=360 360w, 5612 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=480 480w, 5613 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=600 600w 5614 " 5615 sizes="100vw" 5616 > 5617 <source 5618 type="image/webp" 5619 media="(min-width: 768px) and (max-width: 1023px)" 5620 srcset=" 5621 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=480 480w, 5622 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=640 640w, 5623 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=768 768w, 5624 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=880 880w 5625 " 5626 sizes="100vw" 5627 > 5628 <source 5629 type="image/webp" 5630 media="(min-width: 1024px)" 5631 srcset=" 5632 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=640 640w, 5633 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=880 880w, 5634 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=1024 1024
5634w, 5635 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=1280 1280w 5636 " 5637 sizes="100vw" 5638 > 5639 <img 5640 src="//www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=480" 5641 srcset=" 5642 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=360 360w, 5643 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=480 480w, 5644 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=600 600w, 5645 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=880 880w, 5646 //www.americanstandard-us.com/cdn/shop/files/Champion_Golf_Ball_211AA104020_1360x572_3db81a27-cc62-43f3-9866-4628aa03f445.jpg?format=webp&quality=58&v=1758053623&width=1024 1024w 5647 " 5648 sizes="(max-width: 767px) 100vw, (min-width: 768px) and (max-width: 1023px) 100vw, 100vw" 5649 alt="" 5650 class="w-full h-full aspect-square md:aspect-[16/9] object-cover object-center " 5651 width="1360" 5652 height="572" 5653 loading="lazy" 5654 fetchpriority="low" 5655 decoding="async" 5656 > 5657 </picture></div> 5658 5659 5660 5661 <div class="flex-1 md:absolute md:inset-0 md:p-10 w-full h-auto flex items-center justify-center md:items-end md:justify-start"> 5662 5663 <div class="container-text-image_slide_rjUrPx max-w-[448px] text-center md:text-left md:max-w-2xl px-4 md:px-0 my-8 md:my-0"> 5664 5665 5666 5667 5668 5669 5670 <div class="flex flex-col gap-[8px] text--description [&>ul]:list-disc [&>ol]:list-decimal [&>ol]:ml-4 [&>ul]:ml-4 text-[32px] text-base py-1 max-sm:max-w-[360px] max-sm:mx-auto" style="--text-color:;--text-color-mob:;"> 5671 <h2><strong>A toilet that will never clog</strong></h2> 5672 </div> 5673 5674 5675 5676 5677 <div class="button-wrapper flex gap-4 justify-center md:justify-start mt-6 "> 5678 <a class="btn " href="/collections/champion-toilet">Learn More</a> 5679 </div> 5680 5681 5682 </div> 5683 5684 </div> 5685 5686</div> 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704<style> 5705 #icon-image_slide_DWkHzT { 5706 width: 50px; 5707 z-index: 1; 5708 } 5709 5710 @media (min-width: 768px) { 5711 #icon-image_slide_DWkHzT { 5712 width: 300px; 5713 } 5714 5715 .container-text-image_slide_DWkHzT { 5716 padding-left: 0%; 5717 padding-right: 0%; 5718 } 5719 } 5720 @media (max-width: 767px) { 5721 .container-text-image_slide_DWkHzT h2{ 5722 font-size: 32px; 5723 } 5724 .container-text-image_slide_DWkHzT .text--description p { 5725 font-size: 1rem; 5726 } 5727 } 5728</style> 5729 5730<div class="swiper-slide !h-auto video flex flex-col items-stretch"> 5731 5732 <div class="relative w-full h-[306px] md:h-[603px] 2xl:h-[790px] "> 5733 5734 5735 <picture> 5736 <source 5737 type="image/webp" 5738 media="(max-width: 767px)" 5739 srcset=" 5740 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=360 360w, 5741 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=480 480w, 5742 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=600 600w 5743 " 5744 sizes="100vw" 5745 > 5746 <source 5747 type="image/webp" 5748 media="(min-width: 768px) and (max-width: 1023px)" 5749 srcset=" 5750 //www.americanstandard-us.com/cdn/shop/files/Image2025072
57501133749.jpg?format=webp&quality=58&v=1753986142&width=480 480w, 5751 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=640 640w, 5752 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=768 768w, 5753 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=880 880w 5754 " 5755 sizes="100vw" 5756 > 5757 <source 5758 type="image/webp" 5759 media="(min-width: 1024px)" 5760 srcset=" 5761 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=640 640w, 5762 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=880 880w, 5763 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=1024 1024w, 5764 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=1280 1280w 5765 " 5766 sizes="100vw" 5767 > 5768 <img 5769 src="//www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=480" 5770 srcset=" 5771 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=360 360w, 5772 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=480 480w, 5773 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=600 600w, 5774 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=880 880w, 5775 //www.americanstandard-us.com/cdn/shop/files/Image20250721133749.jpg?format=webp&quality=58&v=1753986142&width=1024 1024w 5776 " 5777 sizes="(max-width: 767px) 100vw, (min-width: 768px) and (max-width: 1023px) 100vw, 100vw" 5778 alt="" 5779 class="w-full h-full aspect-square md:aspect-[16/9] object-cover object-center " 5780 width="1360" 5781 height="572" 5782 loading="lazy" 5783 fetchpriority="low" 5784 decoding="async" 5785 > 5786 </picture></div> 5787 5788 5789 5790 <div class="flex-1 md:absolute md:inset-0 md:p-10 w-full h-auto flex items-center justify-center md:items-start md:justify-start"> 5791 5792 <div class="container-text-image_slide_DWkHzT max-w-[448px] text-center md:text-left md:max-w-2xl px-4 md:px-0 my-8 md:my-0"> 5793 5794 5795 5796 5797 <div class="py-1" style="--text-color: #000000;--text-color-mob: #000000;"> 5798 <h1 class="text-[32px] md:text-[56px] tracking-normal leading-none font-bold font-title "> 5799 Inspired by life, Designed for you since 1875 5800 </h1> 5801 </div> 5802 5803 5804 5805 <div class="flex flex-col gap-[8px] text--description [&>ul]:list-disc [&>ol]:list-decimal [&>ol]:ml-4 [&>ul]:ml-4 text-[32px] text-base py-1 max-sm:max-w-[360px] max-sm:mx-auto" style="--text-color:#000000;--text-color-mob:#000000;"> 5806 <h5>Aspirations Bathroom Collection</h5> 5807 </div> 5808 5809 5810 5811 5812 <div class="button-wrapper flex gap-4 justify-center md:justify-start mt-6 "> 5813 <a class="btn " href="/collections/aspirations">Shop Now</a> 5814 </div> 5815 5816 5817 </div> 5818 5819 </div> 5820 5821</div> 5822 5823 5824 5825 5826 </div> 5827 5828 <div class="swiper-pagination md:hidden !bottom-0"></div> 5829 <button type="button" class="template--19594871701551__banner_overlay_rxzaEq-prev swiper-example-button-prev default-button-prev !top-[172px] md:!top-[43%] !left-[1%] md:!left-[3%]" aria-label="Previous slide"></button> 5830 <button type="button" class="template--19594871701551__banner_overlay_rxzaEq-next swiper-example-button-next default-button-next !top-[172px] md:!top-[43%] !right-[1%] md:!right-[3%]" aria-label="Next slide"></button> 5831 5832 </swiper-slider> 5833</div> 5834 5835</banner-overlay> 5836 5837<style> 5838 #shopify-section-template--19594871701551__banner_overlay_rxzaEq { 5839 padding-top: 0.0rem; 5840 padding-bottom: 0.0rem; 5841 } 5842 5843 #shopify-section-template--19594871701551__banner_overlay_rxzaEq div, 5844 #shopify-section-template--19594871701551__banner_overlay_rxzaEq p { 5845 color: var(--text-color); 5846 } 5847 5848 @media (max-width: 768px) { 5849 #shopify-section-template--19594871701551__banner_overlay_rxzaEq { 5850 padding-top: 0.0rem; 5851 padding-bottom: 0.0rem; 5852 } 5853 5854 #shopify-section-template--19594871701551__banner_overlay_rxzaEq div, 5855 #shopify-section-template--19594871701551__banner_overlay_rxzaEq p { 5856 color: var(--text-color-mob); 5857 } 5858 } 5859 5860 banner-overlay .swiper-pagination-bullet { 5861 background-color: #fff; 5862 } 5863 5864 #shopify-section-template--19594871701551__banner_overlay_rxzaEq img { 5865 object-position: center !important; 5866 } 5867 5868 @media (max-width: 768px) { 5869 #shopify-section-template--19594871701551__banner_overlay_rxzaEq img { 5870 object-position: center !important; 5871 } 5872 } 5873 5874 #icon-template--19594871701551__banner_overlay_rxzaEq { 5875 width: 50px; 5876 z-index: 1; 5877 } 5878 5879 @media (min-width: 768px) { 5880 #icon-template--19594871701551__banner_overlay_rxzaEq { 5881 width: 200px; 5882 } 5883 } 5884</style> 5885 5886</div><div id="shopify-section-template--19594871701551__collection_tabs_Y3ReVU" class="shopify-section section-collection-tabs"><style> 5887 .section-collection-tabs .tabs-container { 5888 overflow-x: auto; 5889 scrollbar-width: none; 5890 -ms-overflow-style: none; 5891 } 5892 5893 .section-collection-tabs .tabs-container::-webkit-scrollbar { 5894 display: none; 5895 } 5896</style> 5897 5898<div class="max-lg:px-0 container my-10 "> 5899 5900 <h2 class="text-2xl md:text-[32px] font-bold mb-6 tracking-normal text-center">Featured Products</h2> 5901 5902 5903 5904 <component-tabs> 5905 <div class="tabs"> 5906 <div class="overflow-auto flex tabs-container"> 5907 <ul class="tabs__heading-wrapper inline-flex m-auto" role="tablist"> 5908 5909 <li class="tabs__heading flex-shrink-0 max-lg:first:ml-4 max-lg:last:mr-4" role="presentation"> 5910 <button 5911 type="button" 5912 role="tab"
5913 id="tab-template--19594871701551__collection_tabs_Y3ReVU-0" 5914 aria-controls="content-template--19594871701551__collection_tabs_Y3ReVU-0" 5915 aria-selected="true" 5916 tabindex="0" 5917 data-tab-heading-index="0" 5918 > 5919 View All 5920 </button> 5921 </li> 5922 5923 <li class="tabs__heading flex-shrink-0 max-lg:first:ml-4 max-lg:last:mr-4" role="presentation"> 5924 <button 5925 type="button" 5926 role="tab" 5927 id="tab-template--19594871701551__collection_tabs_Y3ReVU-1" 5928 aria-controls="content-template--19594871701551__collection_tabs_Y3ReVU-1" 5929 aria-selected="false" 5930 tabindex="-1" 5931 data-tab-heading-index="1" 5932 > 5933 Toilets 5934 </button> 5935 </li> 5936 5937 <li class="tabs__heading flex-shrink-0 max-lg:first:ml-4 max-lg:last:mr-4" role="presentation"> 5938 <button 5939 type="button" 5940 role="tab" 5941 id="tab-template--19594871701551__collection_tabs_Y3ReVU-2" 5942 aria-controls="content-template--19594871701551__collection_tabs_Y3ReVU-2" 5943 aria-selected="false" 5944 tabindex="-1" 5945 data-tab-heading-index="2" 5946 > 5947 Bathroom Sink Faucets 5948 </button> 5949 </li> 5950 5951 <li class="tabs__heading flex-shrink-0 max-lg:first:ml-4 max-lg:last:mr-4" role="presentation"> 5952 <button 5953 type="button" 5954 role="tab" 5955 id="tab-template--19594871701551__collection_tabs_Y3ReVU-3" 5956 aria-controls="content-template--19594871701551__collection_tabs_Y3ReVU-3" 5957 aria-selected="false" 5958 tabindex="-1" 5959 data-tab-heading-index="3" 5960 > 5961 Bathroom Sinks 5962 </button> 5963 </li> 5964 5965 <li class="tabs__heading flex-shrink-0 max-lg:first:ml-4 max-lg:last:mr-4" role="presentation"> 5966 <button 5967 type="button" 5968 role="tab" 5969 id="tab-template--19594871701551__collection_tabs_Y3ReVU-4" 5970 aria-controls="content-template--19594871701551__collection_tabs_Y3ReVU-4" 5971 aria-selected="false" 5972 tabindex="-1" 5973 data-tab-heading-index="4" 5974 > 5975 Kitchen Sinks 5976 </button> 5977 </li> 5978 5979 <li class="tabs__heading flex-shrink-0 max-lg:first:ml-4 max-lg:last:mr-4" role="presentation"> 5980 <button 5981 type="button" 5982 role="tab" 5983 id="tab-template--19594871701551__collection_tabs_Y3ReVU-5" 5984 aria-controls="content-template--19594871701551__collection_tabs_Y3ReVU-5" 5985 aria-selected="false" 5986 tabindex="-1" 5987 data-tab-heading-index="5" 5988 > 5989 Kitchen Faucets 5990 </button> 5991 </li> 5992 5993 </ul> 5994 </div> 5995 <div class="tabs__content-wrapper mt-6"> 5996 5997 <div 5998 id="content-template--19594871701551__collection_tabs_Y3ReVU-0" 5999 class="tabs__content active" 6000 data-tab-content-index="0" 6001 role="tabpanel" 6002 aria-labelledby="tab-template--19594871701551__collection_tabs_Y3ReVU-0" 6003 6004 > 6005 <div class="relative swiper-slider-wrapper"> 6006 <swiper-slider 6007 class="swiper w-full block" 6008 data-options='{ 6009 "spaceBetween": 12, 6010 "slidesPerView": 1.2, 6011 "centeredSlides": true, 6012 "allowTouchMove": true, 6013 "breakpoints": { 6014 "640": { 6015 "slidesPerView": 2, 6016 "spaceBetween": 12, 6017 "centeredSlides": false 6018 }, 6019 "768": { 6020 "slidesPerView": 3, 6021 "spaceBetween": 12, 6022 "centeredSlides": false, 6023 "allowTouchMove": false 6024 }, 6025 "1024": { 6026 "slidesPerView": 4, 6027 "spaceBetween": 12, 6028 "centeredSlides": false, 6029 "allowTouchMove": false 6030 }, 6031 "1280": { 6032 "slidesPerView": 4, 6033 "spaceBetween": 12, 6034 "centeredSlides": false, 6035 "allowTouchMove": false 6036 }, 6037 "1920": { 6038 "slidesPerView": 4, 6039 "spaceBetween": 12, 6040 "centeredSlides": false, 6041 "allowTouchMove": false 6042 } 6043 } 6044 }' 6045 data-view-mobile="1.1" 6046 data-view-mobile-extra="2" 6047 data-view-tablet="3" 6048 data-view-tablet-extra="4" 6049 data-view-desktop="4" 6050 data-next-button-class=".swiper-example-button-next" 6051 data-prev-button-class=".swiper-example-button-prev" 6052 > 6053 6054 <div class="swiper-wrapper"> 6055 6056 �<div class="swiper-slide !h-auto"> 6057 6058 <style> 6059 6060 @media screen and (max-width:768px){ 6061 6062 .price-finish-container { 6063 flex-direction: column; 6064 align-items: flex-start; 6065 gap: 0.5rem; 6066 } 6067 6068 collection-listing[data-view-mode="grid"] .text-custom-grid { 6069 font-size: 8px; 6070 } 6071 6072 6073 collection-listing[data-view-mode="list"] .product-card-image { 6074 padding-left: 4rem; 6075 padding-right: 4rem; 6076 } 6077 } 6078</style> 6079 6080 6081 6082 6083 6084 6085
6086<product-card data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 6087 6088 <div class="product-card-7932833169455 group card-blend-darken flex flex-col h-full"> 6089 6090 <div class="relative"> 6091 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/belmeade-two-handle-8-inch-widespread-bathroom-faucet?variant=43622395150383" title="Polished Chrome"> 6092 <picture> 6093 <source 6094 type="image/webp" 6095 srcset=" 6096 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=320 320w, 6097 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=480 480w, 6098 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=720 720w 6099 " 6100 sizes="(max-width: 768px) 100vw, 480px"> 6101 6102 <img 6103 src="//www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=480" 6104 srcset=" 6105 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=320 320w, 6106 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=480 480w, 6107 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=720 720w 6108 " 6109 sizes="(max-width: 768px) 100vw, 480px" 6110 width="480" height="480" 6111 alt="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 6112 class="w-full block " 6113 loading="lazy" 6114 decoding="async"> 6115 </picture> 6116 6117 6118 <img 6119 width="480" 6120 height="480" 6121 src="//www.americanstandard-us.com/cdn/shop/files/244571_7426801.243_1_CDNwebp.webp?v=1790751110&width=480" 6122 alt="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 6123 class="w-full !hidden " 6124 loading="lazy" 6125 decoding="async" 6126 > 6127 6128 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 6129 6130 </a> 6131 6132 6133 <compared-products-add-button 6134 data-add-compare-product-btn 6135 data-product-is-sellable="true" 6136 data-product-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" 6137 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 6138 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 6139 role="button" 6140 aria-label="Compare Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 6141 tabindex="0" data-is-sellable="43622395150383/true,43622395183151/true,43622395215919/true" > 6142 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 6143 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 6144 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 6145</svg> 6146 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 6147 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 6148</svg> 6149 </compared-products-add-button>
6149 6150 6151 6152 6153 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 <div data-label-variant-id="43622395150383" > 6173 <style> 6174 collection-listing[data-view-mode="grid"] .tag-size-custom { 6175 font-size: 10px; 6176 } 6177</style> 6178 6179 6180 6181 6182 6183 6184 6185 </div> 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 <div data-label-variant-id="43622395183151" class="hidden" > 6207 <style> 6208 collection-listing[data-view-mode="grid"] .tag-size-custom { 6209 font-size: 10px; 6210 } 6211</style> 6212 6213 6214 6215 6216 6217 6218 6219 </div> 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 <div data-label-variant-id="43622395215919" class="hidden" > 6241 <style> 6242 collection-listing[data-view-mode="grid"] .tag-size-custom { 6243 font-size: 10px; 6244 } 6245</style> 6246 6247 6248 6249 6250 6251 6252 6253 </div> 6254 6255 6256 6257 </div> 6258 6259 </div> 6260 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 6261 <div class="flex flex-col md:justify-between flex-1 gap-2"> 6262 6263 6264 6265 6266 6267 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7426801" data-bv-redirect-url="/products/belmeade-two-handle-8-inch-widespread-bathroom-faucet?variant=43622395150383" data-bv-seo="false"> </div> 6268 6269 6270 6271 <a 6272 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 6273 href="/products/belmeade-two-handle-8-inch-widespread-bathroom-faucet?variant=43622395150383"> 6274 Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet 6275 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 6276 Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet 6277 </span> 6278 </a> 6279 6280 6281 <div class="text-xs text-gray-700"> 6282 <span class="uppercase">Model: </span> 6283 <span >7426801</span> 6284 <span data-swatch-variant-sku class="hidden">7426801.002</span> 6285 </div> 6286 6287 6288 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 6289 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 6290 6291 6292 <span data-price-list="43622395150383" class="hidden">$180.70 </span> 6293 6294 <span data-price-list="43622395183151" class="hidden">$221.65 </span> 6295 6296 <span data-price-list="43622395215919" class="hidden">$253.50 </span> 6297 6298 6299 </span> 6300 6301 6302 6303 <product-swatch class="hidden" data-first-variant-selected="43622395150383" data-category-product="Bathroom Faucets"> 6304 6305 6306 <div class="swatch-option-js"> 6307 <input 6308 type="radio" 6309 name="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet" 6310 id="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-polished-chrome" 6311 value="43622395150383" 6312 checked data-value="Polished Chrome" 6313 data-product-variant-title="Polished Chrome" 6314 data-product-title="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 6315 data-variant-available-in="\US\" 6316 product-swatch-input 6317 > 6318 <label for="home-view-all-category-feat--belmeade-two-handle-8
6318-inch-widespread-bathroom-faucet-Finish-polished-chrome"> 6319 Polished Chrome 6320 6321 6322 6323 6324 6325 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6326 6327 6328 </label> 6329 </div> 6330 6331 6332 <div class="swatch-option-js"> 6333 <input 6334 type="radio" 6335 name="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet" 6336 id="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel" 6337 value="43622395183151" 6338 data-value="Brushed Nickel" 6339 data-product-variant-title="Brushed Nickel" 6340 data-product-title="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 6341 data-variant-available-in="\US\" 6342 product-swatch-input 6343 > 6344 <label for="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel"> 6345 Brushed Nickel 6346 6347 6348 6349 6350 6351 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6352 6353 6354 </label> 6355 </div> 6356 6357 6358 <div class="swatch-option-js"> 6359 <input 6360 type="radio" 6361 name="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet" 6362 id="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-matte-black" 6363 value="43622395215919" 6364 data-value="Matte Black" 6365 data-product-variant-title="Matte Black" 6366 data-product-title="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 6367 data-variant-available-in="\US\" 6368 product-swatch-input 6369 > 6370 <label for="home-view-all-category-feat--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-matte-black"> 6371 Matte Black 6372 6373 6374 6375 6376 6377 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6378 6379 6380 </label> 6381 </div> 6382 6383 </product-swatch> 6384 6385 6386 </div> 6387 </div> 6388 6389 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="belmeade-two-handle-8
6389-inch-widespread-bathroom-faucet" data-is-sellable="43622395150383/true,43622395183151/true,43622395215919/true"> 6390 <form method="post" action="/cart/add" id="product_form_7932833169455" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 6391 <variant-selector class="hidden" data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet"></variant-selector> 6392 <input type="hidden" name="qty" value="1" /> 6393 <addtocart-button data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" class="flex" data-build-text> 6394 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled> 6395 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 6396 </button> 6397 </addtocart-button> 6398 <input type="hidden" name="product-id" value="7932833169455" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 6399 </component-addtocart> 6400 6401 </div> 6402 </div> 6403 6404</product-card> 6405 6406 6407 </div>�<div class="swiper-slide !h-auto"> 6408 6409 <style> 6410 6411 @media screen and (max-width:768px){ 6412 6413 .price-finish-container { 6414 flex-direction: column; 6415 align-items: flex-start; 6416 gap: 0.5rem; 6417 } 6418 6419 collection-listing[data-view-mode="grid"] .text-custom-grid { 6420 font-size: 8px; 6421 } 6422 6423 6424 collection-listing[data-view-mode="list"] .product-card-image { 6425 padding-left: 4rem; 6426 padding-right: 4rem; 6427 } 6428 } 6429</style> 6430 6431 6432 6433 6434 6435 6436 6437<product-card data-handle="becklow-8-inch-widespread-bathroom-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 6438 6439 <div class="product-card-7932833464367 group card-blend-darken flex flex-col h-full"> 6440 6441 <div class="relative"> 6442 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/becklow-8-inch-widespread-bathroom-faucet?variant=43622395641903" title="Polished Chrome"> 6443 <picture> 6444 <source 6445 type="image/webp" 6446 srcset=" 6447 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=320 320w, 6448 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480 480w, 6449 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=720 720w 6450 " 6451 sizes="(max-width: 768px) 100vw, 480px"> 6452 6453 <img 6454 src="//www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480" 6455 srcset=" 6456 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=320 320w, 6457 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480 480w, 6458 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=720 720w 6459 " 6460 sizes="(max-width: 768px) 100vw, 480px" 6461 width="480" height="480" 6462 alt="Becklow 8-Inch Widespread Bathroom Faucet" 6463 class="w-full block " 6464 loading="lazy" 6465 decoding="async"> 6466 </picture> 6467 6468 6469 <img 6470 width="480" 6471 height="480" 6472 src="//www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480" 6473 alt="Becklow 8-Inch Widespread Bathroom Faucet" 6474 class="w-full !hidden " 6475 loading="lazy" 6476 decoding="async" 6477 > 6478 6479 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Becklow 8-Inch Widespread Bathroom Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 6480 6481 </a> 6482 6483 6484 <compared-products-add-button 6485 data-add-compare-product-btn 6486 data-product-is-sellable="true" 6487 data-product-handle="becklow-8-inch-widespread-bathroom-faucet" 6488 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 6489 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 6490 role="button" 6491 aria-label="Compare Becklow 8-Inch Widespread Bathroom Faucet" 6492 tabindex="0" data-is-sellable="43622395641903/true,43622395674671/true,43622395707439/true" >
6493 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 6494 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 6495 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 6496</svg> 6497 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 6498 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 6499</svg> 6500 </compared-products-add-button> 6501 6502 6503 6504 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 <div data-label-variant-id="43622395641903" > 6524 <style> 6525 collection-listing[data-view-mode="grid"] .tag-size-custom { 6526 font-size: 10px; 6527 } 6528</style> 6529 6530 6531 6532 6533 6534 6535 6536 </div> 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 <div data-label-variant-id="43622395674671" class="hidden" > 6558 <style> 6559 collection-listing[data-view-mode="grid"] .tag-size-custom { 6560 font-size: 10px; 6561 } 6562</style> 6563 6564 6565 6566 6567 6568 6569 6570 </div> 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 <div data-label-variant-id="43622395707439" class="hidden" > 6592 <style> 6593 collection-listing[data-view-mode="grid"] .tag-size-custom { 6594 font-size: 10px; 6595 } 6596</style> 6597 6598 6599 6600 6601 6602 6603 6604 </div> 6605 6606 6607 6608 </div> 6609 6610 </div> 6611 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 6612 <div class="flex flex-col md:justify-between flex-1 gap-2"> 6613 6614 6615 6616 6617 6618 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7429801" data-bv-redirect-url="/products/becklow-8-inch-widespread-bathroom-faucet?variant=43622395641903" data-bv-seo="false"> </div> 6619 6620 6621 6622 <a 6623 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 6624 href="/products/becklow-8-inch-widespread-bathroom-faucet?variant=43622395641903"> 6625 Becklow 8-Inch Widespread Bathroom Faucet 6626 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 6627 Becklow 8-Inch Widespread Bathroom Faucet 6628 </span> 6629 </a> 6630 6631 6632 <div class="text-xs text-gray-700"> 6633 <span class="uppercase">Model: </span> 6634 <span >7429801</span> 6635 <span data-swatch-variant-sku class="hidden">7429801.002</span> 6636 </div> 6637 6638 6639 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 6640 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 6641 6642 6643 <span data-price-list="43622395641903" class="hidden">$183.95 </span> 6644 6645 <span data-price-list="43622395674671" class="hidden">$239.85 </span> 6646 6647 <span data-price-list="43622395707439" class="hidden">$258.05 </span> 6648 6649 6650 </span> 6651 6652 6653 6654 <product-swatch class="hidden" data-first-variant-selected="43622395641903" data-category-product="Bathroom Faucets"> 6655 6656 6657 <div class="swatch-option-js"> 6658 <input 6659 type="radio" 6660 name="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet" 6661 id="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet-Finish-p
6661olished-chrome" 6662 value="43622395641903" 6663 checked data-value="Polished Chrome" 6664 data-product-variant-title="Polished Chrome" 6665 data-product-title="Becklow 8-Inch Widespread Bathroom Faucet" 6666 data-variant-available-in="\US\" 6667 product-swatch-input 6668 > 6669 <label for="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet-Finish-polished-chrome"> 6670 Polished Chrome 6671 6672 6673 6674 6675 6676 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6677 6678 6679 </label> 6680 </div> 6681 6682 6683 <div class="swatch-option-js"> 6684 <input 6685 type="radio" 6686 name="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet" 6687 id="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel" 6688 value="43622395674671" 6689 data-value="Brushed Nickel" 6690 data-product-variant-title="Brushed Nickel" 6691 data-product-title="Becklow 8-Inch Widespread Bathroom Faucet" 6692 data-variant-available-in="\US\" 6693 product-swatch-input 6694 > 6695 <label for="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel"> 6696 Brushed Nickel 6697 6698 6699 6700 6701 6702 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6703 6704 6705 </label> 6706 </div> 6707 6708 6709 <div class="swatch-option-js"> 6710 <input 6711 type="radio" 6712 name="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet" 6713 id="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet-Finish-matte-black" 6714 value="43622395707439" 6715 data-value="Matte Black" 6716 data-product-variant-title="Matte Black" 6717 data-product-title="Becklow 8-Inch Widespread Bathroom Faucet" 6718 data-variant-available-in="\US\" 6719 product-swatch-input 6720 > 6721 <label for="home-view-all-category-feat--becklow-8-inch-widespread-bathroom-faucet-Finish-matte-black"> 6722 Matte Black 6723 6724 6725 6726 6727 6728 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6729 6730 6731 </label> 6732 </div> 6733 6734 </product-swatch> 6735 6736 6737 </div> 6738 </div> 6739 6740 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="becklow-8-inch-widespread-bathroom-faucet" data-is-sellable="43622395641903/true,43622395674671/true,43622395707439/true"> 6741 <form method="post" action="/cart/add" id="product_form_7932833464367" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 6742 <variant-selector class="hidden" data-handle="becklow-8-inch-widespread-bathroom-faucet"></variant-selector> 6743 <input type="hidden" name="qty" value="1" /> 6744 <addtocart-button data-handle="becklow-8-inch-widespread-bathroom-faucet" class="flex" data-build-text> 6745 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
6746 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 6747 </button> 6748 </addtocart-button> 6749 <input type="hidden" name="product-id" value="7932833464367" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 6750 </component-addtocart> 6751 6752 </div> 6753 </div> 6754 6755</product-card> 6756 6757 6758 </div>�<div class="swiper-slide !h-auto"> 6759 6760 <style> 6761 6762 @media screen and (max-width:768px){ 6763 6764 .price-finish-container { 6765 flex-direction: column; 6766 align-items: flex-start; 6767 gap: 0.5rem; 6768 } 6769 6770 collection-listing[data-view-mode="grid"] .text-custom-grid { 6771 font-size: 8px; 6772 } 6773 6774 6775 collection-listing[data-view-mode="list"] .product-card-image { 6776 padding-left: 4rem; 6777 padding-right: 4rem; 6778 } 6779 } 6780</style> 6781 6782 6783 6784 6785 6786 6787 6788<product-card data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" data-static class="block h-full 3xl:h-408 product-with-price " > 6789 6790 <div class="product-card-7932856500271 group card-blend-darken flex flex-col h-full"> 6791 6792 <div class="relative"> 6793 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter?variant=43622438109231" title="Polished Chrome"> 6794 <picture> 6795 <source 6796 type="image/webp" 6797 srcset=" 6798 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=320 320w, 6799 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=480 480w, 6800 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=720 720w 6801 " 6802 sizes="(max-width: 768px) 100vw, 480px"> 6803 6804 <img 6805 src="//www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=480" 6806 srcset=" 6807 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=320 320w, 6808 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=480 480w, 6809 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=720 720w 6810 " 6811 sizes="(max-width: 768px) 100vw, 480px" 6812 width="480" height="480" 6813 alt="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 6814 class="w-full block " 6815 loading="lazy" 6816 decoding="async"> 6817 </picture> 6818 6819 6820 <img 6821 width="480" 6822 height="480" 6823 src="//www.americanstandard-us.com/cdn/shop/files/56672_4902330075_1_0_CDNwebp.webp?v=1790748771&width=480" 6824 alt="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 6825 class="w-full !hidden " 6826 loading="lazy" 6827 decoding="async" 6828 > 6829 6830 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 6831 6832 </a> 6833 6834 6835 <compared-products-add-button 6836 data-add-compare-product-btn 6837 data-product-is-sellable="true" 6838 data-product-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" 6839 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 6840 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 6841 role="button" 6842 aria-label="Compare Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 6843 tabindex="0" data-is-sellable="43622438109231/true,43622438141999/true" >
6844 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 6845 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 6846 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 6847</svg> 6848 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 6849 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 6850</svg> 6851 </compared-products-add-button> 6852 6853 6854 6855 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 <div data-label-variant-id="43622438109231" > 6875 <style> 6876 collection-listing[data-view-mode="grid"] .tag-size-custom { 6877 font-size: 10px; 6878 } 6879</style> 6880 6881 6882 6883 6884 6885 6886 6887 </div> 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 <div data-label-variant-id="43622438141999" class="hidden" > 6909 <style> 6910 collection-listing[data-view-mode="grid"] .tag-size-custom { 6911 font-size: 10px; 6912 } 6913</style> 6914 6915 6916 6917 6918 6919 6920 6921 </div> 6922 6923 6924 6925 </div> 6926 6927 </div> 6928 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 6929 <div class="flex flex-col md:justify-between flex-1 gap-2"> 6930 6931 6932 6933 6934 6935 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4902330" data-bv-redirect-url="/products/saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter?variant=43622438109231" data-bv-seo="false"> </div> 6936 6937 6938 6939 <a 6940 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 6941 href="/products/saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter?variant=43622438109231"> 6942 Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter 6943 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 6944 Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter 6945 </span> 6946 </a> 6947 6948 6949 <div class="text-xs text-gray-700"> 6950 <span class="uppercase">Model: </span> 6951 <span >4902330</span> 6952 <span data-swatch-variant-sku class="hidden">4902330.002</span> 6953 </div> 6954 6955 6956 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 6957 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 6958 6959 6960 <span data-price-list="43622438109231" class="hidden">$400.40 </span> 6961 6962 <span data-price-list="43622438141999" class="hidden">$411.45 </span> 6963 6964 6965 </span> 6966 6967 6968 6969 <product-swatch class="hidden" data-first-variant-selected="43622438109231" data-category-product="Kitchen Faucets"> 6970 6971 6972 <div class="swatch-option-js"> 6973 <input 6974 type="radio" 6975 name="home-view-all-category-feat--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" 6976 id="home-view-all-category-feat--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-p
6976olished-chrome" 6977 value="43622438109231" 6978 checked data-value="Polished Chrome" 6979 data-product-variant-title="Polished Chrome" 6980 data-product-title="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 6981 data-variant-available-in="\US\, \CA\" 6982 product-swatch-input 6983 > 6984 <label for="home-view-all-category-feat--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-polished-chrome"> 6985 Polished Chrome 6986 6987 6988 6989 6990 6991 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 6992 6993 6994 </label> 6995 </div> 6996 6997 6998 <div class="swatch-option-js"> 6999 <input 7000 type="radio" 7001 name="home-view-all-category-feat--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" 7002 id="home-view-all-category-feat--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-stainless-steel" 7003 value="43622438141999" 7004 data-value="Stainless Steel" 7005 data-product-variant-title="Stainless Steel" 7006 data-product-title="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 7007 data-variant-available-in="\US\, \CA\" 7008 product-swatch-input 7009 > 7010 <label for="home-view-all-category-feat--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-stainless-steel"> 7011 Stainless Steel 7012 7013 7014 7015 7016 7017 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7018 7019 7020 </label> 7021 </div> 7022 7023 </product-swatch> 7024 7025 7026 </div> 7027 </div> 7028 7029 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" data-is-sellable="43622438109231/true,43622438141999/true"> 7030 <form method="post" action="/cart/add" id="product_form_7932856500271" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 7031 <variant-selector class="hidden" data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter"></variant-selector> 7032 <input type="hidden" name="qty" value="1" /> 7033 <addtocart-button data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" class="flex" data-build-text> 7034 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
7035 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 7036 </button> 7037 </addtocart-button> 7038 <input type="hidden" name="product-id" value="7932856500271" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 7039 </component-addtocart> 7040 7041 </div> 7042 </div> 7043 7044</product-card> 7045 7046 7047 </div>�<div class="swiper-slide !h-auto"> 7048 7049 <style> 7050 7051 @media screen and (max-width:768px){ 7052 7053 .price-finish-container { 7054 flex-direction: column; 7055 align-items: flex-start; 7056 gap: 0.5rem; 7057 } 7058 7059 collection-listing[data-view-mode="grid"] .text-custom-grid { 7060 font-size: 8px; 7061 } 7062 7063 7064 collection-listing[data-view-mode="list"] .product-card-image { 7065 padding-left: 4rem; 7066 padding-right: 4rem; 7067 } 7068 } 7069</style> 7070 7071 7072 7073 7074 7075 7076 7077<product-card data-handle="aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" data-static class="block h-full 3xl:h-408 product-with-price " > 7078 7079 <div class="product-card-7932828090415 group card-blend-darken flex flex-col h-full"> 7080 7081 <div class="relative"> 7082 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle?variant=43622384009263" title="Polished Chrome"> 7083 <picture> 7084 <source 7085 type="image/webp" 7086 srcset=" 7087 //www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=320 320w, 7088 //www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=480 480w, 7089 //www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=720 720w 7090 " 7091 sizes="(max-width: 768px) 100vw, 480px"> 7092 7093 <img 7094 src="//www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=480" 7095 srcset=" 7096 //www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=320 320w, 7097 //www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=480 480w, 7098 //www.americanstandard-us.com/cdn/shop/files/155546_Aspirations_SiloSide_7061101.002_0001_Jan2023_0_CDNwebp.webp?v=1790750056&width=720 720w 7099 " 7100 sizes="(max-width: 768px) 100vw, 480px" 7101 width="480" height="480" 7102 alt="Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" 7103 class="w-full block " 7104 loading="lazy" 7105 decoding="async"> 7106 </picture> 7107 7108 7109 <img 7110 width="480" 7111 height="480" 7112 src="//www.americanstandard-us.com/cdn/shop/files/155522_Aspirations_SiloRight_7061101.243_0001_Jan2023_0_CDNwebp.webp?v=1790750060&width=480" 7113 alt="Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" 7114 class="w-full !hidden " 7115 loading="lazy" 7116 decoding="async" 7117 > 7118 7119 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 7120 7121 </a> 7122 7123 7124 <compared-products-add-button 7125 data-add-compare-product-btn 7126 data-product-is-sellable="true" 7127 data-product-handle="aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" 7128 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 7129 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 7130 role="button" 7131 aria-label="Compare Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" 7132 tabindex="0" data-is-sellable="43622384009263/true,43622384042031/true,43782959956015/true" >
7133 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 7134 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 7135 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 7136</svg> 7137 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 7138 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 7139</svg> 7140 </compared-products-add-button> 7141 7142 7143 7144 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 <div data-label-variant-id="43622384009263" > 7164 <style> 7165 collection-listing[data-view-mode="grid"] .tag-size-custom { 7166 font-size: 10px; 7167 } 7168</style> 7169 7170 7171 7172 7173 7174 7175 7176 </div> 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 <div data-label-variant-id="43622384042031" class="hidden" > 7198 <style> 7199 collection-listing[data-view-mode="grid"] .tag-size-custom { 7200 font-size: 10px; 7201 } 7202</style> 7203 7204 7205 7206 7207 7208 7209 7210 </div> 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 <div data-label-variant-id="43782959956015" class="hidden" > 7232 <style> 7233 collection-listing[data-view-mode="grid"] .tag-size-custom { 7234 font-size: 10px; 7235 } 7236</style> 7237 7238 7239 7240 7241 7242 7243 7244 </div> 7245 7246 7247 7248 </div> 7249 7250 </div> 7251 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 7252 <div class="flex flex-col md:justify-between flex-1 gap-2"> 7253 7254 7255 7256 7257 7258 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7061101" data-bv-redirect-url="/products/aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle?variant=43622384009263" data-bv-seo="false"> </div> 7259 7260 7261 7262 <a 7263 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 7264 href="/products/aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle?variant=43622384009263"> 7265 Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle 7266 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 7267 Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle 7268 </span> 7269 </a> 7270 7271 7272 <div class="text-xs text-gray-700"> 7273 <span class="uppercase">Model: </span> 7274 <span >7061101</span> 7275 <span data-swatch-variant-sku class="hidden">7061101.002</span> 7276 </div> 7277 7278 7279 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 7280 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 7281 7282 7283 <span data-price-list="43622384009263" class="hidden">$234.00 </span> 7284 7285 <span data-price-list="43622384042031" class="hidden">$316.55 </span> 7286 7287 <span data-price-list="43782959956015" class="hidden">$316.55 </span> 7288 7289 7290 </span> 7291 7292 7293 7294 <product-swatch class="hidden" data-first-variant-selected="43622384009263" data-category-product="Bathroom Faucets"> 7295 7296 7297 <div class="swatch-option-js"> 7298 <input 7299 type="radio" 7300 name="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" 7301 id="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle-Finish-p
7301olished-chrome" 7302 value="43622384009263" 7303 checked data-value="Polished Chrome" 7304 data-product-variant-title="Polished Chrome" 7305 data-product-title="Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" 7306 data-variant-available-in="\US\, \CA\, \MX\" 7307 product-swatch-input 7308 > 7309 <label for="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle-Finish-polished-chrome"> 7310 Polished Chrome 7311 7312 7313 7314 7315 7316 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7317 7318 7319 </label> 7320 </div> 7321 7322 7323 <div class="swatch-option-js"> 7324 <input 7325 type="radio" 7326 name="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" 7327 id="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle-Finish-matte-black" 7328 value="43622384042031" 7329 data-value="Matte Black" 7330 data-product-variant-title="Matte Black" 7331 data-product-title="Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" 7332 data-variant-available-in="\US\, \CA\, \MX\" 7333 product-swatch-input 7334 > 7335 <label for="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle-Finish-matte-black"> 7336 Matte Black 7337 7338 7339 7340 7341 7342 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7343 7344 7345 </label> 7346 </div> 7347 7348 7349 <div class="swatch-option-js"> 7350 <input 7351 type="radio" 7352 name="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" 7353 id="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle-Finish-brushed-nickel" 7354 value="43782959956015" 7355 data-value="Brushed Nickel" 7356 data-product-variant-title="Brushed Nickel" 7357 data-product-title="Aspirations Single-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handle" 7358 data-variant-available-in="\US\, \CA\" 7359 product-swatch-input 7360 > 7361 <label for="home-view-all-category-feat--aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle-Finish-brushed-nickel"> 7362 Brushed Nickel 7363 7364 7365 7366 7367 7368 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7369 7370 7371 </label> 7372 </div> 7373 7374 </product-swatch> 7375 7376 7377 </div> 7378 </div> 7379 7380 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" data-is-sellable="43622384009263/true,43622384042031/true,43782959956015/true"> 7381 <form method="post" action="/cart/add" id="product_form_7932828090415" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 7382 <variant-selector class="hidden" data-handle="aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle"></variant-selector> 7383 <input type="hidden" name="qty" value="1" /> 7384 <addtocart-button data-handle="aspirations-single-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handle" class="flex" data-build-text> 7385 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
7386 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 7387 </button> 7388 </addtocart-button> 7389 <input type="hidden" name="product-id" value="7932828090415" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 7390 </component-addtocart> 7391 7392 </div> 7393 </div> 7394 7395</product-card> 7396 7397 7398 </div>�<div class="swiper-slide !h-auto"> 7399 7400 <style> 7401 7402 @media screen and (max-width:768px){ 7403 7404 .price-finish-container { 7405 flex-direction: column; 7406 align-items: flex-start; 7407 gap: 0.5rem; 7408 } 7409 7410 collection-listing[data-view-mode="grid"] .text-custom-grid { 7411 font-size: 8px; 7412 } 7413 7414 7415 collection-listing[data-view-mode="list"] .product-card-image { 7416 padding-left: 4rem; 7417 padding-right: 4rem; 7418 } 7419 } 7420</style> 7421 7422 7423 7424 7425 7426 7427 7428<product-card data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" data-static class="block h-full 3xl:h-408 product-with-price " > 7429 7430 <div class="product-card-7932853387311 group card-blend-darken flex flex-col h-full"> 7431 7432 <div class="relative"> 7433 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout?variant=43622434340911" title="Polished Chrome"> 7434 <picture> 7435 <source 7436 type="image/webp" 7437 srcset=" 7438 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=320 320w, 7439 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=480 480w, 7440 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=720 720w 7441 " 7442 sizes="(max-width: 768px) 100vw, 480px"> 7443 7444 <img 7445 src="//www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=480" 7446 srcset=" 7447 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=320 320w, 7448 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=480 480w, 7449 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=720 720w 7450 " 7451 sizes="(max-width: 768px) 100vw, 480px" 7452 width="480" height="480" 7453 alt="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7454 class="w-full block " 7455 loading="lazy" 7456 decoding="async"> 7457 </picture> 7458 7459 7460 <img 7461 width="480" 7462 height="480" 7463 src="//www.americanstandard-us.com/cdn/shop/files/56565_4803350243_1_0_CDNwebp.webp?v=1790748626&width=480" 7464 alt="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7465 class="w-full !hidden " 7466 loading="lazy" 7467 decoding="async" 7468 > 7469 7470 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 7471 7472 </a> 7473 7474 7475 <compared-products-add-button 7476 data-add-compare-product-btn 7477 data-product-is-sellable="true" 7478 data-product-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 7479 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 7480 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 7481 role="button" 7482 aria-label="Compare Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7483 tabindex="0" data-is-sellable="43622434340911/true,43622434373679/true,43622434406447/true,43622434439215/true" >
7484 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 7485 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 7486 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 7487</svg> 7488 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 7489 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 7490</svg> 7491 </compared-products-add-button> 7492 7493 7494 7495 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 <div data-label-variant-id="43622434340911" > 7515 <style> 7516 collection-listing[data-view-mode="grid"] .tag-size-custom { 7517 font-size: 10px; 7518 } 7519</style> 7520 7521 7522 7523 7524 7525 7526 7527 </div> 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 <div data-label-variant-id="43622434373679" class="hidden" > 7549 <style> 7550 collection-listing[data-view-mode="grid"] .tag-size-custom { 7551 font-size: 10px; 7552 } 7553</style> 7554 7555 7556 7557 7558 7559 7560 7561 </div> 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 <div data-label-variant-id="43622434406447" class="hidden" > 7583 <style> 7584 collection-listing[data-view-mode="grid"] .tag-size-custom { 7585 font-size: 10px; 7586 } 7587</style> 7588 7589 7590 7591 7592 7593 7594 7595 </div> 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 <div data-label-variant-id="43622434439215" class="hidden" > 7617 <style> 7618 collection-listing[data-view-mode="grid"] .tag-size-custom { 7619 font-size: 10px; 7620 } 7621</style> 7622 7623 7624 7625 7626 7627 7628 7629 </div> 7630 7631 7632 7633 </div> 7634 7635 </div> 7636 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 7637 <div class="flex flex-col md:justify-between flex-1 gap-2"> 7638 7639 7640 7641 7642 7643 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4803350" data-bv-redirect-url="/products/studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout?variant=43622434340911" data-bv-seo="false"> </div> 7644 7645 7646 7647 <a 7648 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 7649 href="/products/studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout?variant=43622434340911"> 7650 Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout 7651 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 7652 Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout 7653 </span> 7654 </a> 7655 7656 7657 <div class="text-xs text-gray-700"> 7658 <span class="uppercase">Model: </span> 7659 <span >4803350</span> 7660 <span data-swatch-variant-sku class="hidden">4803350.002</span> 7661 </div> 7662 7663 7664 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 7665 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 7666 7667 7668 <span data-price-list="43622434340911" class="hidden">$460.20 </span> 7669 7670 <span data-price-list="43622434373679" class="hidden">$621.40 </span> 7671 7672 <span data-price-list="43622434406447" class="hidden">$621.40 </span> 7673
7674 <span data-price-list="43622434439215" class="hidden">$667.55 </span> 7675 7676 7677 </span> 7678 7679 7680 7681 <product-swatch class="hidden" data-first-variant-selected="43622434340911" data-category-product="Kitchen Faucets"> 7682 7683 7684 <div class="swatch-option-js"> 7685 <input 7686 type="radio" 7687 name="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 7688 id="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-polished-chrome" 7689 value="43622434340911" 7690 checked data-value="Polished Chrome" 7691 data-product-variant-title="Polished Chrome" 7692 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7693 data-variant-available-in="\US\, \CA\" 7694 product-swatch-input 7695 > 7696 <label for="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-polished-chrome"> 7697 Polished Chrome 7698 7699 7700 7701 7702 7703 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7704 7705 7706 </label> 7707 </div> 7708 7709 7710 <div class="swatch-option-js"> 7711 <input 7712 type="radio" 7713 name="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 7714 id="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-stainless-steel" 7715 value="43622434373679" 7716 data-value="Stainless Steel" 7717 data-product-variant-title="Stainless Steel" 7718 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7719 data-variant-available-in="\US\, \CA\" 7720 product-swatch-input 7721 > 7722 <label for="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-stainless-steel"> 7723 Stainless Steel 7724 7725 7726 7727 7728 7729 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7730 7731 7732 </label> 7733 </div> 7734 7735 7736 <div class="swatch-option-js"> 7737 <input 7738 type="radio" 7739 name="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 7740 id="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-matte-black" 7741 value="43622434406447" 7742 data-value="Matte Black" 7743 data-product-variant-title="Matte Black" 7744 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7745 data-variant-available-in="\US\, \CA\" 7746 product-swatch-input 7747 > 7748 <label for="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-matte-black"> 7749 Matte Black 7750 7751 7752 7753 7754 7755 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7756 7757 7758 </label> 7759 </div> 7760 7761 7762 <div class="swatch-option-js"> 7763 <input 7764 type="radio" 7765 name="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 7766 id="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-brushed-cool-sunrise" 7767 value="43622434439215" 7768 data-value="Brushed Cool Sunrise" 7769 data-product-variant-title="Brushed Cool Sunrise" 7770 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 7771 data-variant-available-in="\US\, \CA\" 7772 product-swatch-input 7773 > 7774 <label for="home-view-all-category-feat--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-brushed-cool-sunrise"> 7775 Brushed Cool Sunrise 7776 7777 7778 7779 7780 7781 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 7782 7783 7784 </label> 7785 </div> 7786 7787 </product-swatch> 7788 7789 7790 </div> 7791 </div> 7792 7793 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" data-is-sellable="43622434340911/true,43622434373679/true,43622434406447/true,43622434439215/true"> 7794 <form method="post" action="/cart/add" id="product_form_7932853387311" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 7795 <variant-selector class="hidden" data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout"></variant-selector> 7796 <input type="hidden" name="qty" value="1" /> 7797 <addtocart-button data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" class="flex" data-build-text> 7798 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
7799 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 7800 </button> 7801 </addtocart-button> 7802 <input type="hidden" name="product-id" value="7932853387311" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 7803 </component-addtocart> 7804 7805 </div> 7806 </div> 7807 7808</product-card> 7809 7810 7811 </div>�<div class="swiper-slide !h-auto"> 7812 7813 <style> 7814 7815 @media screen and (max-width:768px){ 7816 7817 .price-finish-container { 7818 flex-direction: column; 7819 align-items: flex-start; 7820 gap: 0.5rem; 7821 } 7822 7823 collection-listing[data-view-mode="grid"] .text-custom-grid { 7824 font-size: 8px; 7825 } 7826 7827 7828 collection-listing[data-view-mode="list"] .product-card-image { 7829 padding-left: 4rem; 7830 padding-right: 4rem; 7831 } 7832 } 7833</style> 7834 7835 7836 7837 7838 7839 7840 7841<product-card data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 7842 7843 <div class="product-card-7932836020271 group card-blend-darken flex flex-col h-full"> 7844 7845 <div class="relative"> 7846 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622400786479" title="Matte Black"> 7847 <picture> 7848 <source 7849 type="image/webp" 7850 srcset=" 7851 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=320 320w, 7852 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=480 480w, 7853 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=720 720w 7854 " 7855 sizes="(max-width: 768px) 100vw, 480px"> 7856 7857 <img 7858 src="//www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=480" 7859 srcset=" 7860 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=320 320w, 7861 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=480 480w, 7862 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=720 720w 7863 " 7864 sizes="(max-width: 768px) 100vw, 480px" 7865 width="480" height="480" 7866 alt="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 7867 class="w-full block " 7868 loading="lazy" 7869 decoding="async"> 7870 </picture> 7871 7872 7873 <img 7874 width="480" 7875 height="480" 7876 src="//www.americanstandard-us.com/cdn/shop/files/59070_7105801.295_0_CDNwebp.webp?v=1790750327&width=480" 7877 alt="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 7878 class="w-full !hidden " 7879 loading="lazy" 7880 decoding="async" 7881 > 7882 7883 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 7884 7885 </a> 7886 7887 7888 <compared-products-add-button 7889 data-add-compare-product-btn 7890 data-product-is-sellable="true" 7891 data-product-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 7892 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 7893 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 7894 role="button" 7895 aria-label="Compare Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 7896 tabindex="0" data-is-sellable="43622400786479/true,43622400819247/true,43622400852015/true,43622400884783/true" >
7897 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 7898 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 7899 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 7900</svg> 7901 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 7902 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 7903</svg> 7904 </compared-products-add-button> 7905 7906 7907 7908 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 <div data-label-variant-id="43622400786479" > 7928 <style> 7929 collection-listing[data-view-mode="grid"] .tag-size-custom { 7930 font-size: 10px; 7931 } 7932</style> 7933 7934 7935 7936 7937 7938 7939 7940 </div> 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 <div data-label-variant-id="43622400819247" class="hidden" > 7962 <style> 7963 collection-listing[data-view-mode="grid"] .tag-size-custom { 7964 font-size: 10px; 7965 } 7966</style> 7967 7968 7969 7970 7971 7972 7973 7974 </div> 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 <div data-label-variant-id="43622400852015" class="hidden" > 7996 <style> 7997 collection-listing[data-view-mode="grid"] .tag-size-custom { 7998 font-size: 10px; 7999 } 8000</style> 8001 8002 8003 8004 8005 8006 8007 8008 </div> 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 <div data-label-variant-id="43622400884783" class="hidden" > 8030 <style> 8031 collection-listing[data-view-mode="grid"] .tag-size-custom { 8032 font-size: 10px; 8033 } 8034</style> 8035 8036 8037 8038 8039 8040 8041 8042 </div> 8043 8044 8045 8046 </div> 8047 8048 </div> 8049 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 8050 <div class="flex flex-col md:justify-between flex-1 gap-2"> 8051 8052 8053 8054 8055 8056 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7105801" data-bv-redirect-url="/products/studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622400786479" data-bv-seo="false"> </div> 8057 8058 8059 8060 <a 8061 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 8062 href="/products/studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622400786479"> 8063 Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 8064 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 8065 Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 8066 </span> 8067 </a> 8068 8069 8070 <div class="text-xs text-gray-700"> 8071 <span class="uppercase">Model: </span> 8072 <span >7105801</span> 8073 <span data-swatch-variant-sku class="hidden">7105801.243</span> 8074 </div> 8075 8076 8077 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 8078 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 8079 8080 8081 <span data-price-list="43622400786479" class="hidden">$534.95 </span> 8082 8083 <span data-price-list="43622400819247" class="hidden">$396.50 </span> 8084
8085 <span data-price-list="43622400852015" class="hidden">$534.95 </span> 8086 8087 <span data-price-list="43622400884783" class="hidden">$575.25 </span> 8088 8089 8090 </span> 8091 8092 8093 8094 <product-swatch class="hidden" data-first-variant-selected="43622400786479" data-category-product="Bathroom Faucets"> 8095 8096 8097 <div class="swatch-option-js"> 8098 <input 8099 type="radio" 8100 name="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 8101 id="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black" 8102 value="43622400786479" 8103 checked data-value="Matte Black" 8104 data-product-variant-title="Matte Black" 8105 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 8106 data-variant-available-in="\US\, \CA\, \MX\" 8107 product-swatch-input 8108 > 8109 <label for="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black"> 8110 Matte Black 8111 8112 8113 8114 8115 8116 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8117 8118 8119 </label> 8120 </div> 8121 8122 8123 <div class="swatch-option-js"> 8124 <input 8125 type="radio" 8126 name="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 8127 id="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-p
8127olished-chrome" 8128 value="43622400819247" 8129 data-value="Polished Chrome" 8130 data-product-variant-title="Polished Chrome" 8131 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 8132 data-variant-available-in="\US\, \CA\" 8133 product-swatch-input 8134 > 8135 <label for="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 8136 Polished Chrome 8137 8138 8139 8140 8141 8142 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8143 8144 8145 </label> 8146 </div> 8147 8148 8149 <div class="swatch-option-js"> 8150 <input 8151 type="radio" 8152 name="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 8153 id="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 8154 value="43622400852015" 8155 data-value="Brushed Nickel" 8156 data-product-variant-title="Brushed Nickel" 8157 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 8158 data-variant-available-in="\US\, \CA\" 8159 product-swatch-input 8160 > 8161 <label for="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 8162 Brushed Nickel 8163 8164 8165 8166 8167 8168 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8169 8170 8171 </label> 8172 </div> 8173 8174 8175 <div class="swatch-option-js"> 8176 <input 8177 type="radio" 8178 name="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 8179 id="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-cool-sunrise" 8180 value="43622400884783" 8181 data-value="Brushed Cool Sunrise" 8182 data-product-variant-title="Brushed Cool Sunrise" 8183 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 8184 data-variant-available-in="\US\, \CA\" 8185 product-swatch-input 8186 > 8187 <label for="home-view-all-category-feat--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-cool-sunrise"> 8188 Brushed Cool Sunrise 8189 8190 8191 8192 8193 8194 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8195 8196 8197 </label> 8198 </div> 8199 8200 </product-swatch> 8201 8202 8203 </div> 8204 </div> 8205 8206 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-is-sellable="43622400786479/true,43622400819247/true,43622400852015/true,43622400884783/true"> 8207 <form method="post" action="/cart/add" id="product_form_7932836020271" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 8208 <variant-selector class="hidden" data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles"></variant-selector> 8209 <input type="hidden" name="qty" value="1" /> 8210 <addtocart-button data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" class="flex" data-build-text> 8211 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
8212 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 8213 </button> 8214 </addtocart-button> 8215 <input type="hidden" name="product-id" value="7932836020271" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 8216 </component-addtocart> 8217 8218 </div> 8219 </div> 8220 8221</product-card> 8222 8223 8224 </div>�<div class="swiper-slide !h-auto"> 8225 8226 <style> 8227 8228 @media screen and (max-width:768px){ 8229 8230 .price-finish-container { 8231 flex-direction: column; 8232 align-items: flex-start; 8233 gap: 0.5rem; 8234 } 8235 8236 collection-listing[data-view-mode="grid"] .text-custom-grid { 8237 font-size: 8px; 8238 } 8239 8240 8241 collection-listing[data-view-mode="list"] .product-card-image { 8242 padding-left: 4rem; 8243 padding-right: 4rem; 8244 } 8245 } 8246</style> 8247 8248 8249 8250 8251 8252 8253 8254<product-card data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 8255 8256 <div class="product-card-7932825600047 group card-blend-darken flex flex-col h-full"> 8257 8258 <div class="relative"> 8259 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/becklow-two-handle-4-inch-centerset-bathroom-faucet?variant=43622377717807" title="Polished Chrome"> 8260 <picture> 8261 <source 8262 type="image/webp" 8263 srcset=" 8264 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=320 320w, 8265 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480 480w, 8266 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=720 720w 8267 " 8268 sizes="(max-width: 768px) 100vw, 480px"> 8269 8270 <img 8271 src="//www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480" 8272 srcset=" 8273 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=320 320w, 8274 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480 480w, 8275 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=720 720w 8276 " 8277 sizes="(max-width: 768px) 100vw, 480px" 8278 width="480" height="480" 8279 alt="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 8280 class="w-full block " 8281 loading="lazy" 8282 decoding="async"> 8283 </picture> 8284 8285 8286 <img 8287 width="480" 8288 height="480" 8289 src="//www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480" 8290 alt="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 8291 class="w-full !hidden " 8292 loading="lazy" 8293 decoding="async" 8294 > 8295 8296 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 8297 8298 </a> 8299 8300 8301 <compared-products-add-button 8302 data-add-compare-product-btn 8303 data-product-is-sellable="true" 8304 data-product-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" 8305 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 8306 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 8307 role="button" 8308 aria-label="Compare Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 8309 tabindex="0" data-is-sellable="43622377717807/true,43622377750575/true,43622377783343/true" >
8310 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 8311 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 8312 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 8313</svg> 8314 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 8315 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 8316</svg> 8317 </compared-products-add-button> 8318 8319 8320 8321 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 <div data-label-variant-id="43622377717807" > 8341 <style> 8342 collection-listing[data-view-mode="grid"] .tag-size-custom { 8343 font-size: 10px; 8344 } 8345</style> 8346 8347 8348 8349 8350 8351 8352 8353 </div> 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 <div data-label-variant-id="43622377750575" class="hidden" > 8375 <style> 8376 collection-listing[data-view-mode="grid"] .tag-size-custom { 8377 font-size: 10px; 8378 } 8379</style> 8380 8381 8382 8383 8384 8385 8386 8387 </div> 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 <div data-label-variant-id="43622377783343" class="hidden" > 8409 <style> 8410 collection-listing[data-view-mode="grid"] .tag-size-custom { 8411 font-size: 10px; 8412 } 8413</style> 8414 8415 8416 8417 8418 8419 8420 8421 </div> 8422 8423 8424 8425 </div> 8426 8427 </div> 8428 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 8429 <div class="flex flex-col md:justify-between flex-1 gap-2"> 8430 8431 8432 8433 8434 8435 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7429201" data-bv-redirect-url="/products/becklow-two-handle-4-inch-centerset-bathroom-faucet?variant=43622377717807" data-bv-seo="false"> </div> 8436 8437 8438 8439 <a 8440 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 8441 href="/products/becklow-two-handle-4-inch-centerset-bathroom-faucet?variant=43622377717807"> 8442 Becklow Two-Handle 4-Inch Centerset Bathroom Faucet 8443 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 8444 Becklow Two-Handle 4-Inch Centerset Bathroom Faucet 8445 </span> 8446 </a> 8447 8448 8449 <div class="text-xs text-gray-700"> 8450 <span class="uppercase">Model: </span> 8451 <span >7429201</span> 8452 <span data-swatch-variant-sku class="hidden">7429201.002</span> 8453 </div> 8454 8455 8456 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 8457 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 8458 8459 8460 <span data-price-list="43622377717807" class="hidden">$136.50 </span> 8461 8462 <span data-price-list="43622377750575" class="hidden">$177.45 </span> 8463 8464 <span data-price-list="43622377783343" class="hidden">$191.10 </span> 8465 8466 8467 </span> 8468 8469 8470 8471 <product-swatch class="hidden" data-first-variant-selected="43622377717807" data-category-product="Bathroom Faucets"> 8472 8473 8474 <div class="swatch-option-js"> 8475 <input 8476 type="radio" 8477 name="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet" 8478 id="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-p
8478olished-chrome" 8479 value="43622377717807" 8480 checked data-value="Polished Chrome" 8481 data-product-variant-title="Polished Chrome" 8482 data-product-title="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 8483 data-variant-available-in="\US\" 8484 product-swatch-input 8485 > 8486 <label for="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-polished-chrome"> 8487 Polished Chrome 8488 8489 8490 8491 8492 8493 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8494 8495 8496 </label> 8497 </div> 8498 8499 8500 <div class="swatch-option-js"> 8501 <input 8502 type="radio" 8503 name="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet" 8504 id="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-brushed-nickel" 8505 value="43622377750575" 8506 data-value="Brushed Nickel" 8507 data-product-variant-title="Brushed Nickel" 8508 data-product-title="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 8509 data-variant-available-in="\US\" 8510 product-swatch-input 8511 > 8512 <label for="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-brushed-nickel"> 8513 Brushed Nickel 8514 8515 8516 8517 8518 8519 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8520 8521 8522 </label> 8523 </div> 8524 8525 8526 <div class="swatch-option-js"> 8527 <input 8528 type="radio" 8529 name="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet" 8530 id="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-matte-black" 8531 value="43622377783343" 8532 data-value="Matte Black" 8533 data-product-variant-title="Matte Black" 8534 data-product-title="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 8535 data-variant-available-in="\US\" 8536 product-swatch-input 8537 > 8538 <label for="home-view-all-category-feat--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-matte-black"> 8539 Matte Black 8540 8541 8542 8543 8544 8545 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8546 8547 8548 </label> 8549 </div> 8550 8551 </product-swatch> 8552 8553 8554 </div> 8555 </div> 8556 8557 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" data-is-sellable="43622377717807/true,43622377750575/true,43622377783343/true"> 8558 <form method="post" action="/cart/add" id="product_form_7932825600047" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 8559 <variant-selector class="hidden" data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet"></variant-selector> 8560 <input type="hidden" name="qty" value="1" /> 8561 <addtocart-button data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" class="flex" data-build-text> 8562 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
8563 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 8564 </button> 8565 </addtocart-button> 8566 <input type="hidden" name="product-id" value="7932825600047" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 8567 </component-addtocart> 8568 8569 </div> 8570 </div> 8571 8572</product-card> 8573 8574 8575 </div>�<div class="swiper-slide !h-auto"> 8576 8577 <style> 8578 8579 @media screen and (max-width:768px){ 8580 8581 .price-finish-container { 8582 flex-direction: column; 8583 align-items: flex-start; 8584 gap: 0.5rem; 8585 } 8586 8587 collection-listing[data-view-mode="grid"] .text-custom-grid { 8588 font-size: 8px; 8589 } 8590 8591 8592 collection-listing[data-view-mode="list"] .product-card-image { 8593 padding-left: 4rem; 8594 padding-right: 4rem; 8595 } 8596 } 8597</style> 8598 8599 8600 8601 8602 8603 8604 8605<product-card data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 8606 8607 <div class="product-card-7932829335599 group card-blend-darken flex flex-col h-full"> 8608 8609 <div class="relative"> 8610 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles?variant=43622387351599" title="Polished Chrome"> 8611 <picture> 8612 <source 8613 type="image/webp" 8614 srcset=" 8615 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=320 320w, 8616 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=480 480w, 8617 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=720 720w 8618 " 8619 sizes="(max-width: 768px) 100vw, 480px"> 8620 8621 <img 8622 src="//www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=480" 8623 srcset=" 8624 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=320 320w, 8625 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=480 480w, 8626 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=720 720w 8627 " 8628 sizes="(max-width: 768px) 100vw, 480px" 8629 width="480" height="480" 8630 alt="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8631 class="w-full block " 8632 loading="lazy" 8633 decoding="async"> 8634 </picture> 8635 8636 8637 <img 8638 width="480" 8639 height="480" 8640 src="//www.americanstandard-us.com/cdn/shop/files/57895_7018201278_1_0_CDNwebp.webp?v=1790749858&width=480" 8641 alt="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8642 class="w-full !hidden " 8643 loading="lazy" 8644 decoding="async" 8645 > 8646 8647 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 8648 8649 </a> 8650 8651 8652 <compared-products-add-button 8653 data-add-compare-product-btn 8654 data-product-is-sellable="true" 8655 data-product-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 8656 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 8657 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 8658 role="button" 8659 aria-label="Compare Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8660 tabindex="0" data-is-sellable="43622387351599/true,43622387384367/true,43622387417135/true,43622387449903/true" >
8661 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 8662 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 8663 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 8664</svg> 8665 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 8666 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 8667</svg> 8668 </compared-products-add-button> 8669 8670 8671 8672 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 <div data-label-variant-id="43622387351599" > 8692 <style> 8693 collection-listing[data-view-mode="grid"] .tag-size-custom { 8694 font-size: 10px; 8695 } 8696</style> 8697 8698 8699 8700 8701 8702 8703 8704 </div> 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 <div data-label-variant-id="43622387384367" class="hidden" > 8726 <style> 8727 collection-listing[data-view-mode="grid"] .tag-size-custom { 8728 font-size: 10px; 8729 } 8730</style> 8731 8732 8733 8734 8735 8736 8737 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-white text-primary border-2 border-primary "> 8738 Last Chance 8739 </span> 8740 8741 8742 </div> 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 <div data-label-variant-id="43622387417135" class="hidden" > 8764 <style> 8765 collection-listing[data-view-mode="grid"] .tag-size-custom { 8766 font-size: 10px; 8767 } 8768</style> 8769 8770 8771 8772 8773 8774 8775 8776 </div> 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 <div data-label-variant-id="43622387449903" class="hidden" > 8798 <style> 8799 collection-listing[data-view-mode="grid"] .tag-size-custom { 8800 font-size: 10px; 8801 } 8802</style> 8803 8804 8805 8806 8807 8808 8809 8810 </div> 8811 8812 8813 8814 </div> 8815 8816 </div> 8817 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 8818 <div class="flex flex-col md:justify-between flex-1 gap-2"> 8819 8820 8821 8822 8823 8824 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7018201" data-bv-redirect-url="/products/edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles?variant=43622387351599" data-bv-seo="false"> </div> 8825 8826 8827 8828 <a 8829 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 8830 href="/products/edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles?variant=43622387351599"> 8831 Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles 8832 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 8833 Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles 8834 </span> 8835 </a> 8836 8837 8838 <div class="text-xs text-gray-700"> 8839 <span class="uppercase">Model: </span> 8840 <span >7018201</span> 8841 <span data-swatch-variant-sku class="hidden">7018201.002</span> 8842 </div> 8843 8844 8845 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 8846 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 8847 8848
8849 <span data-price-list="43622387351599" class="hidden">$193.05 </span> 8850 8851 <span data-price-list="43622387384367" class="hidden">$234.65 </span> 8852 8853 <span data-price-list="43622387417135" class="hidden">$260.65 </span> 8854 8855 <span data-price-list="43622387449903" class="hidden">$260.65 </span> 8856 8857 8858 </span> 8859 8860 8861 8862 <product-swatch class="hidden" data-first-variant-selected="43622387351599" data-category-product="Bathroom Faucets"> 8863 8864 8865 <div class="swatch-option-js"> 8866 <input 8867 type="radio" 8868 name="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 8869 id="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-p
8869olished-chrome" 8870 value="43622387351599" 8871 checked data-value="Polished Chrome" 8872 data-product-variant-title="Polished Chrome" 8873 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8874 data-variant-available-in="\US\" 8875 product-swatch-input 8876 > 8877 <label for="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 8878 Polished Chrome 8879 8880 8881 8882 8883 8884 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8885 8886 8887 </label> 8888 </div> 8889 8890 8891 <div class="swatch-option-js"> 8892 <input 8893 type="radio" 8894 name="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 8895 id="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-legacy-bronze" 8896 value="43622387384367" 8897 data-value="Legacy Bronze" 8898 data-product-variant-title="Legacy Bronze" 8899 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8900 data-variant-available-in="\US\" 8901 product-swatch-input 8902 > 8903 <label for="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-legacy-bronze"> 8904 Legacy Bronze 8905 8906 8907 8908 8909 8910 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_legacy-bronze_small.png?v=18037087531363801800" alt="Legacy Bronze" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8911 8912 8913 </label> 8914 </div> 8915 8916 8917 <div class="swatch-option-js"> 8918 <input 8919 type="radio" 8920 name="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 8921 id="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 8922 value="43622387417135" 8923 data-value="Brushed Nickel" 8924 data-product-variant-title="Brushed Nickel" 8925 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8926 data-variant-available-in="\US\" 8927 product-swatch-input 8928 > 8929 <label for="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 8930 Brushed Nickel 8931 8932 8933 8934 8935 8936 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8937 8938 8939 </label> 8940 </div> 8941 8942 8943 <div class="swatch-option-js"> 8944 <input 8945 type="radio" 8946 name="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 8947 id="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-matte-black" 8948 value="43622387449903" 8949 data-value="Matte Black" 8950 data-product-variant-title="Matte Black" 8951 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 8952 data-variant-available-in="\US\" 8953 product-swatch-input 8954 > 8955 <label for="home-view-all-category-feat--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-matte-black"> 8956 Matte Black 8957 8958 8959 8960 8961 8962 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 8963 8964 8965 </label> 8966 </div> 8967 8968 </product-swatch> 8969 8970 8971 </div> 8972 </div> 8973 8974 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" data-is-sellable="43622387351599/true,43622387384367/true,43622387417135/true,43622387449903/true"> 8975 <form method="post" action="/cart/add" id="product_form_7932829335599" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 8976 <variant-selector class="hidden" data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles"></variant-selector> 8977 <input type="hidden" name="qty" value="1" /> 8978 <addtocart-button data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" class="flex" data-build-text> 8979 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
8980 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 8981 </button> 8982 </addtocart-button> 8983 <input type="hidden" name="product-id" value="7932829335599" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 8984 </component-addtocart> 8985 8986 </div> 8987 </div> 8988 8989</product-card> 8990 8991 8992 </div> 8993 </div> 8994 8995 8996 <button type="button" class="swiper-example-button-prev default-button-prev !top-[42%] !left-4 lg:!left-0" aria-label="Previous slide"></button> 8997 <button type="button" class="swiper-example-button-next default-button-next !top-[42%] !right-4 lg:!right-0" aria-label="Next slide"></button> 8998 8999 </swiper-slider> 9000 </div> 9001 9002 <div class="text-center m-4"> 9003 9004 9005 <a 9006 href="" 9007 class="btn " 9008 > 9009 View All 9010 </a> 9011 </div> 9012 9013 </div> 9014 9015 <div 9016 id="content-template--19594871701551__collection_tabs_Y3ReVU-1" 9017 class="tabs__content" 9018 data-tab-content-index="1" 9019 role="tabpanel" 9020 aria-labelledby="tab-template--19594871701551__collection_tabs_Y3ReVU-1" 9021 hidden 9022 > 9023 <div class="relative swiper-slider-wrapper"> 9024 <swiper-slider 9025 class="swiper w-full block" 9026 data-options='{ 9027 "spaceBetween": 12, 9028 "slidesPerView": 1.2, 9029 "centeredSlides": true, 9030 "allowTouchMove": true, 9031 "breakpoints": { 9032 "640": { 9033 "slidesPerView": 2, 9034 "spaceBetween": 12, 9035 "centeredSlides": false 9036 }, 9037 "768": { 9038 "slidesPerView": 3, 9039 "spaceBetween": 12, 9040 "centeredSlides": false, 9041 "allowTouchMove": false 9042 }, 9043 "1024": { 9044 "slidesPerView": 4, 9045 "spaceBetween": 12, 9046 "centeredSlides": false, 9047 "allowTouchMove": false 9048 }, 9049 "1280": { 9050 "slidesPerView": 4, 9051 "spaceBetween": 12, 9052 "centeredSlides": false, 9053 "allowTouchMove": false 9054 }, 9055 "1920": { 9056 "slidesPerView": 4, 9057 "spaceBetween": 12, 9058 "centeredSlides": false, 9059 "allowTouchMove": false 9060 } 9061 } 9062 }' 9063 data-view-mobile="1.1" 9064 data-view-mobile-extra="2" 9065 data-view-tablet="3" 9066 data-view-tablet-extra="4" 9067 data-view-desktop="4" 9068 data-next-button-class=".swiper-example-button-next" 9069 data-prev-button-class=".swiper-example-button-prev" 9070 > 9071 9072 <div class="swiper-wrapper"> 9073 9074 �<div class="swiper-slide !h-auto"> 9075 9076 <style> 9077 9078 @media screen and (max-width:768px){ 9079 9080 .price-finish-container { 9081 flex-direction: column; 9082 align-items: flex-start; 9083 gap: 0.5rem; 9084 } 9085 9086 collection-listing[data-view-mode="grid"] .text-custom-grid { 9087 font-size: 8px; 9088 } 9089 9090 9091 collection-listing[data-view-mode="list"] .product-card-image { 9092 padding-left: 4rem; 9093 padding-right: 4rem; 9094 } 9095 } 9096</style> 9097 9098 9099 9100 9101 9102 9103 9104<product-card data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 9105 9106 <div class="product-card-7932781625391 group card-blend-darken flex flex-col h-full"> 9107 9108 <div class="relative"> 9109 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat?variant=43622288949295" title="White"> 9110 <picture> 9111 <source 9112 type="image/webp" 9113 srcset=" 9114 //www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=320 320w, 9115 //www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=480 480w, 9116 //www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=720 720w 9117 " 9118 sizes="(max-width: 768px) 100vw, 480px"> 9119 9120 <img 9121 src="//www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=480" 9122 srcset=" 9123 //www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=320 320w, 9124 //www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=480 480w, 9125 //www.americanstandard-us.com/cdn/shop/files/153436_2034314.020_2_1_CDNwebp_a3114a68-76f7-4042-bc98-f91e2305b50e.webp?v=1758816379&width=720 720w 9126 " 9127 sizes="(max-width: 768px) 100vw, 480px" 9128 width="480" height="480" 9129 alt="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" 9130 class="w-full block " 9131 loading="lazy" 9132 decoding="async"> 9133 </picture> 9134 9135 9136 <img 9137 width="480" 9138 height="480" 9139 src="//www.americanstandard-us.com/cdn/shop/files/153430_2034314.021_2_0_CDNwebp_08a23d8e-f350-480f-b077-5885f71fc6dc.webp?v=1774637442&width=480" 9140 alt="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" 9141 class="w-full !hidden " 9142 loading="lazy" 9143 decoding="async" 9144 > 9145 9146 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 9147 9148 </a> 9149 9150 9151 <compared-products-add-button 9152 data-add-compare-product-btn 9153 data-product-is-sellable="true" 9154 data-product-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" 9155 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 9156 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 9157 role="button" 9158 aria-label="Compare Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" 9159 tabindex="0" data-is-sellable="43622288949295/true,43622288982063/false,43622289014831/true" >
9160 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 9161 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 9162 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 9163</svg> 9164 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 9165 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 9166</svg> 9167 </compared-products-add-button> 9168 9169 9170 9171 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 <div data-label-variant-id="43622288949295" > 9191 <style> 9192 collection-listing[data-view-mode="grid"] .tag-size-custom { 9193 font-size: 10px; 9194 } 9195</style> 9196 9197 9198 9199 9200 9201 9202 9203 </div> 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 <div data-label-variant-id="43622288982063" class="hidden" > 9225 <style> 9226 collection-listing[data-view-mode="grid"] .tag-size-custom { 9227 font-size: 10px; 9228 } 9229</style> 9230 9231 9232 9233 9234 9235 9236 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 9237 Discontinued 9238 </span> 9239 9240 9241 </div> 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 <div data-label-variant-id="43622289014831" class="hidden" > 9263 <style> 9264 collection-listing[data-view-mode="grid"] .tag-size-custom { 9265 font-size: 10px; 9266 } 9267</style> 9268 9269 9270 9271 9272 9273 9274 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-white text-primary border-2 border-primary "> 9275 Last Chance 9276 </span> 9277 9278 9279 </div> 9280 9281 9282 9283 </div> 9284 9285 </div> 9286 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 9287 <div class="flex flex-col md:justify-between flex-1 gap-2"> 9288 9289 9290 9291 9292 9293 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="2034314" data-bv-redirect-url="/products/champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat?variant=43622288949295" data-bv-seo="false"> </div> 9294 9295 9296 9297 <a 9298 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 9299 href="/products/champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat?variant=43622288949295"> 9300 Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat 9301 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 9302 Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat 9303 </span> 9304 </a> 9305 9306 9307 <div class="text-xs text-gray-700"> 9308 <span class="uppercase">Model: </span> 9309 <span >2034314</span> 9310 <span data-swatch-variant-sku class="hidden">2034314.020</span> 9311 </div> 9312 9313 9314 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 9315 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 9316 9317
9318 <span data-price-list="43622288949295" class="hidden">$592.15 </span> 9319 9320 <span data-price-list="43622288982063" class="hidden">$691.60 </span> 9321 9322 <span data-price-list="43622289014831" class="hidden">$691.60 </span> 9323 9324 9325 </span> 9326 9327 9328 9329 <product-swatch class="hidden" data-first-variant-selected="43622288949295" data-category-product="Toilets"> 9330 9331 9332 <div class="swatch-option-js"> 9333 <input 9334 type="radio" 9335 name="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" 9336 id="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-Finish-white" 9337 value="43622288949295" 9338 checked data-value="White" 9339 data-product-variant-title="White" 9340 data-product-title="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" 9341 data-variant-available-in="\US\, \CA\" 9342 product-swatch-input 9343 > 9344 <label for="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-Finish-white"> 9345 White 9346 9347 9348 9349 9350 9351 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9352 9353 9354 </label> 9355 </div> 9356 9357 9358 <div class="swatch-option-js"> 9359 <input 9360 type="radio" 9361 name="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" 9362 id="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-Finish-bone" 9363 value="43622288982063" 9364 data-value="Bone" 9365 data-product-variant-title="Bone" 9366 data-product-title="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" 9367 data-variant-available-in="\US\, \CA\" 9368 product-swatch-input 9369 > 9370 <label for="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-Finish-bone"> 9371 Bone 9372 9373 9374 9375 9376 9377 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_bone_small.png?v=6103344909817657990" alt="Bone" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9378 9379 9380 </label> 9381 </div> 9382 9383 9384 <div class="swatch-option-js"> 9385 <input 9386 type="radio" 9387 name="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" 9388 id="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-Finish-linen" 9389 value="43622289014831" 9390 data-value="Linen" 9391 data-product-variant-title="Linen" 9392 data-product-title="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat" 9393 data-variant-available-in="\US\, \CA\" 9394 product-swatch-input 9395 > 9396 <label for="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-Finish-linen"> 9397 Linen 9398 9399 9400 9401 9402 9403 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_linen_small.png?v=3322418815731166398" alt="Linen" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9404 9405 9406 </label> 9407 </div> 9408 9409 </product-swatch> 9410 9411 9412 </div> 9413 </div> 9414 9415 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" data-is-sellable="43622288949295/true,43622288982063/false,43622289014831/true"> 9416 <form method="post" action="/cart/add" id="product_form_7932781625391" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 9417 <variant-selector class="hidden" data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat"></variant-selector> 9418 <input type="hidden" name="qty" value="1" /> 9419 <addtocart-button data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat" class="flex" data-build-text> 9420 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
9421 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 9422 </button> 9423 </addtocart-button> 9424 <input type="hidden" name="product-id" value="7932781625391" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 9425 </component-addtocart> 9426 9427 </div> 9428 </div> 9429 9430</product-card> 9431 9432 9433 </div>�<div class="swiper-slide !h-auto"> 9434 9435 <style> 9436 9437 @media screen and (max-width:768px){ 9438 9439 .price-finish-container { 9440 flex-direction: column; 9441 align-items: flex-start; 9442 gap: 0.5rem; 9443 } 9444 9445 collection-listing[data-view-mode="grid"] .text-custom-grid { 9446 font-size: 8px; 9447 } 9448 9449 9450 collection-listing[data-view-mode="list"] .product-card-image { 9451 padding-left: 4rem; 9452 padding-right: 4rem; 9453 } 9454 } 9455</style> 9456 9457 9458 9459 9460 9461 9462 9463<product-card data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 9464 9465 <div class="product-card-7932779331631 group card-blend-darken flex flex-col h-full"> 9466 9467 <div class="relative"> 9468 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat?variant=43622285344815" title="White"> 9469 <picture> 9470 <source 9471 type="image/webp" 9472 srcset=" 9473 //www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=320 320w, 9474 //www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=480 480w, 9475 //www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=720 720w 9476 " 9477 sizes="(max-width: 768px) 100vw, 480px"> 9478 9479 <img 9480 src="//www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=480" 9481 srcset=" 9482 //www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=320 320w, 9483 //www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=480 480w, 9484 //www.americanstandard-us.com/cdn/shop/files/231787_CadetPro_SiloFront_215AA104.020_0001_Oct2023_CDNwebp_50051330-a355-4ca1-afc4-b2619995bd15.webp?v=1744849846&width=720 720w 9485 " 9486 sizes="(max-width: 768px) 100vw, 480px" 9487 width="480" height="480" 9488 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" 9489 class="w-full block " 9490 loading="lazy" 9491 decoding="async"> 9492 </picture> 9493 9494 9495 <img 9496 width="480" 9497 height="480" 9498 src="//www.americanstandard-us.com/cdn/shop/files/29517_215aa104021_0_CDNwebp.webp?v=1790746422&width=480" 9499 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" 9500 class="w-full !hidden " 9501 loading="lazy" 9502 decoding="async" 9503 > 9504 9505 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 9506 9507 </a> 9508 9509 9510 <compared-products-add-button 9511 data-add-compare-product-btn 9512 data-product-is-sellable="true" 9513 data-product-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" 9514 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 9515 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 9516 role="button" 9517 aria-label="Compare Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" 9518 tabindex="0" data-is-sellable="43622285344815/true,43622285377583/true,43622285410351/true" >
9519 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 9520 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 9521 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 9522</svg> 9523 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 9524 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 9525</svg> 9526 </compared-products-add-button> 9527 9528 9529 9530 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 <div data-label-variant-id="43622285344815" > 9550 <style> 9551 collection-listing[data-view-mode="grid"] .tag-size-custom { 9552 font-size: 10px; 9553 } 9554</style> 9555 9556 9557 9558 9559 9560 9561 9562 </div> 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 <div data-label-variant-id="43622285377583" class="hidden" > 9584 <style> 9585 collection-listing[data-view-mode="grid"] .tag-size-custom { 9586 font-size: 10px; 9587 } 9588</style> 9589 9590 9591 9592 9593 9594 9595 9596 </div> 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 <div data-label-variant-id="43622285410351" class="hidden" > 9618 <style> 9619 collection-listing[data-view-mode="grid"] .tag-size-custom { 9620 font-size: 10px; 9621 } 9622</style> 9623 9624 9625 9626 9627 9628 9629 9630 </div> 9631 9632 9633 9634 </div> 9635 9636 </div> 9637 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 9638 <div class="flex flex-col md:justify-between flex-1 gap-2"> 9639 9640 9641 9642 9643 9644 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="215AA104" data-bv-redirect-url="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat?variant=43622285344815" data-bv-seo="false"> </div> 9645 9646 9647 9648 <a 9649 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 9650 href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat?variant=43622285344815"> 9651 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat 9652 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 9653 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat 9654 </span> 9655 </a> 9656 9657 9658 <div class="text-xs text-gray-700"> 9659 <span class="uppercase">Model: </span> 9660 <span >215AA104</span> 9661 <span data-swatch-variant-sku class="hidden">215AA104.020</span> 9662 </div> 9663 9664 9665 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 9666 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 9667 9668 9669 <span data-price-list="43622285344815" class="hidden">$303.55 </span> 9670 9671 <span data-price-list="43622285377583" class="hidden">$482.30 </span> 9672 9673 <span data-price-list="43622285410351" class="hidden">$482.30 </span> 9674 9675 9676 </span> 9677 9678 9679 9680 <product-swatch class="hidden" data-first-variant-selected="43622285344815" data-category-product="Toilets"> 9681 9682 9683 <div class="swatch-option-js"> 9684 <input 9685 type="radio" 9686 name="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" 9687 id="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat-Finish-white" 9688 value="43622285344815" 9689 checked data-value="White" 9690 data-product-variant-title="White" 9691 data-product-title="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" 9692 data-variant-available-in="\US\, \CA\" 9693 product-swatch-input 9694 > 9695 <label for="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat-Finish-white"> 9696 White 9697 9698 9699 9700 9701 9702 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9703 9704 9705 </label> 9706 </div> 9707 9708 9709 <div class="swatch-option-js"> 9710 <input 9711 type="radio" 9712 name="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" 9713 id="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat-Finish-bone" 9714 value="43622285377583" 9715 data-value="Bone" 9716 data-product-variant-title="Bone" 9717 data-product-title="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" 9718 data-variant-available-in="\US\, \CA\" 9719 product-swatch-input 9720 > 9721 <label for="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat-Finish-bone"> 9722 Bone 9723 9724 9725 9726 9727 9728 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_bone_small.png?v=6103344909817657990" alt="Bone" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9729 9730 9731 </label> 9732 </div> 9733 9734 9735 <div class="swatch-option-js"> 9736 <input 9737 type="radio" 9738 name="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" 9739 id="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat-Finish-linen" 9740 value="43622285410351" 9741 data-value="Linen" 9742 data-product-variant-title="Linen" 9743 data-product-title="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet Less Seat" 9744 data-variant-available-in="\US\, \CA\" 9745 product-swatch-input 9746 > 9747 <label for="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat-Finish-linen"> 9748 Linen 9749 9750 9751 9752 9753 9754 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_linen_small.png?v=3322418815731166398" alt="Linen" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9755 9756 9757 </label> 9758 </div> 9759 9760 </product-swatch> 9761 9762 9763 </div> 9764 </div> 9765 9766 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" data-is-sellable="43622285344815/true,43622285377583/true,43622285410351/true"> 9767 <form method="post" action="/cart/add" id="product_form_7932779331631" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 9768 <variant-selector class="hidden" data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat"></variant-selector> 9769 <input type="hidden" name="qty" value="1" /> 9770 <addtocart-button data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-less-seat" class="flex" data-build-text> 9771 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
9772 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 9773 </button> 9774 </addtocart-button> 9775 <input type="hidden" name="product-id" value="7932779331631" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 9776 </component-addtocart> 9777 9778 </div> 9779 </div> 9780 9781</product-card> 9782 9783 9784 </div>�<div class="swiper-slide !h-auto"> 9785 9786 <style> 9787 9788 @media screen and (max-width:768px){ 9789 9790 .price-finish-container { 9791 flex-direction: column; 9792 align-items: flex-start; 9793 gap: 0.5rem; 9794 } 9795 9796 collection-listing[data-view-mode="grid"] .text-custom-grid { 9797 font-size: 8px; 9798 } 9799 9800 9801 collection-listing[data-view-mode="list"] .product-card-image { 9802 padding-left: 4rem; 9803 padding-right: 4rem; 9804 } 9805 } 9806</style> 9807 9808 9809 9810 9811 9812 9813 9814<product-card data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring" data-static class="block h-full 3xl:h-408 product-with-price " > 9815 9816 <div class="product-card-7932778709039 group card-blend-darken flex flex-col h-full"> 9817 9818 <div class="relative"> 9819 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring?variant=43622284427311" title="White"> 9820 <picture> 9821 <source 9822 type="image/webp" 9823 srcset=" 9824 //www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=320 320w, 9825 //www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=480 480w, 9826 //www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=720 720w 9827 " 9828 sizes="(max-width: 768px) 100vw, 480px"> 9829 9830 <img 9831 src="//www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=480" 9832 srcset=" 9833 //www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=320 320w, 9834 //www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=480 480w, 9835 //www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=720 720w 9836 " 9837 sizes="(max-width: 768px) 100vw, 480px" 9838 width="480" height="480" 9839 alt="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring" 9840 class="w-full block " 9841 loading="lazy" 9842 decoding="async"> 9843 </picture> 9844 9845 9846 <img 9847 width="480" 9848 height="480" 9849 src="//www.americanstandard-us.com/cdn/shop/files/236758_Champion_4_SideView_613AA001.020_0001_Jan2024_CDNwebp.webp?v=1790749518&width=480" 9850 alt="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring" 9851 class="w-full !hidden " 9852 loading="lazy" 9853 decoding="async" 9854 > 9855 9856 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 9857 9858 </a> 9859 9860 9861 <compared-products-add-button 9862 data-add-compare-product-btn 9863 data-product-is-sellable="true" 9864 data-product-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring" 9865 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 9866 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 9867 role="button" 9868 aria-label="Compare Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring" 9869 tabindex="0" data-is-sellable="43622284427311/true" >
9870 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 9871 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 9872 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 9873</svg> 9874 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 9875 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 9876</svg> 9877 </compared-products-add-button> 9878 9879 9880 9881 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 <div data-label-variant-id="43622284427311" > 9901 <style> 9902 collection-listing[data-view-mode="grid"] .tag-size-custom { 9903 font-size: 10px; 9904 } 9905</style> 9906 9907 9908 9909 9910 9911 9912 9913 </div> 9914 9915 9916 9917 </div> 9918 9919 </div> 9920 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 9921 <div class="flex flex-col md:justify-between flex-1 gap-2"> 9922 9923 9924 9925 9926 9927 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="613AA001" data-bv-redirect-url="/products/champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring?variant=43622284427311" data-bv-seo="false"> </div> 9928 9929 9930 9931 <a 9932 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 9933 href="/products/champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring?variant=43622284427311"> 9934 Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring 9935 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 9936 Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring 9937 </span> 9938 </a> 9939 9940 9941 <div class="text-xs text-gray-700"> 9942 <span class="uppercase">Model: </span> 9943 <span >613AA001</span> 9944 <span data-swatch-variant-sku class="hidden">613AA001.020</span> 9945 </div> 9946 9947 9948 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 9949 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 9950 9951 9952 <span data-price-list="43622284427311" class="hidden">$599.95 </span> 9953 9954 9955 </span> 9956 9957 9958 9959 <product-swatch class="hidden" data-first-variant-selected="43622284427311" data-category-product="Toilets"> 9960 9961 9962 <div class="swatch-option-js"> 9963 <input 9964 type="radio" 9965 name="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring" 9966 id="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring-Finish-white" 9967 value="43622284427311" 9968 checked data-value="White" 9969 data-product-variant-title="White" 9970 data-product-title="Champion® 4 One-Piece 1.6 gpf/6.0 Lpf Chair Height Elongated Toilet With Seat and Wax Ring" 9971 data-variant-available-in="\US\" 9972 product-swatch-input 9973 > 9974 <label for="toilets-list--champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring-Finish-white"> 9975 White 9976 9977 9978 9979 9980 9981 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 9982 9983 9984 </label> 9985 </div> 9986 9987 </product-swatch> 9988 9989 9990 </div> 9991 </div> 9992 9993 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring" data-is-sellable="43622284427311/true"> 9994 <form method="post" action="/cart/add" id="product_form_7932778709039" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 9995 <variant-selector class="hidden" data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring"></variant-selector> 9996 <input type="hidden" name="qty" value="1" /> 9997 <addtocart-button data-handle="champion-r-4-one-piece-1-6-gpf-6-0-lpf-chair-height-elongated-toilet-with-seat-and-wax-ring" class="flex" data-build-text> 9998 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
9999 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 10000 </button> 10001 </addtocart-button> 10002 <input type="hidden" name="product-id" value="7932778709039" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 10003 </component-addtocart> 10004 10005 </div> 10006 </div> 10007 10008</product-card> 10009 10010 10011 </div>�<div class="swiper-slide !h-auto"> 10012 10013 <style> 10014 10015 @media screen and (max-width:768px){ 10016 10017 .price-finish-container { 10018 flex-direction: column; 10019 align-items: flex-start; 10020 gap: 0.5rem; 10021 } 10022 10023 collection-listing[data-view-mode="grid"] .text-custom-grid { 10024 font-size: 8px; 10025 } 10026 10027 10028 collection-listing[data-view-mode="list"] .product-card-image { 10029 padding-left: 4rem; 10030 padding-right: 4rem; 10031 } 10032 } 10033</style> 10034 10035 10036 10037 10038 10039 10040 10041<product-card data-handle="aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 10042 10043 <div class="product-card-7932790210607 group card-blend-darken flex flex-col h-full"> 10044 10045 <div class="relative"> 10046 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat?variant=43622302122031" title="Left / White"> 10047 <picture> 10048 <source 10049 type="image/webp" 10050 srcset=" 10051 //www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=320 320w, 10052 //www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=480 480w, 10053 //www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=720 720w 10054 " 10055 sizes="(max-width: 768px) 100vw, 480px"> 10056 10057 <img 10058 src="//www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=480" 10059 srcset=" 10060 //www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=320 320w, 10061 //www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=480 480w, 10062 //www.americanstandard-us.com/cdn/shop/files/167308_Aspirations_SiloFront_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=720 720w 10063 " 10064 sizes="(max-width: 768px) 100vw, 480px" 10065 width="480" height="480" 10066 alt="Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat" 10067 class="w-full block " 10068 loading="lazy" 10069 decoding="async"> 10070 </picture> 10071 10072 10073 <img 10074 width="480" 10075 height="480" 10076 src="//www.americanstandard-us.com/cdn/shop/files/169076_Aspirations_SiloLeft_252AA899.020_0001_Apr2023_0_CDNwebp.webp?v=1790746753&width=480" 10077 alt="Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat" 10078 class="w-full !hidden " 10079 loading="lazy" 10080 decoding="async" 10081 > 10082 10083 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 10084 10085 </a> 10086 10087 10088 <compared-products-add-button 10089 data-add-compare-product-btn 10090 data-product-is-sellable="true" 10091 data-product-handle="aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" 10092 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 10093 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 10094 role="button" 10095 aria-label="Compare Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat" 10096 tabindex="0" data-is-sellable="43622302122031/true" >
10097 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 10098 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10099 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 10100</svg> 10101 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10102 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 10103</svg> 10104 </compared-products-add-button> 10105 10106 10107 10108 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 <div data-label-variant-id="43622302122031" > 10128 <style> 10129 collection-listing[data-view-mode="grid"] .tag-size-custom { 10130 font-size: 10px; 10131 } 10132</style> 10133 10134 10135 10136 10137 10138 10139 10140 </div> 10141 10142 10143 10144 </div> 10145 10146 </div> 10147 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 10148 <div class="flex flex-col md:justify-between flex-1 gap-2"> 10149 10150 10151 10152 10153 10154 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="252AA899" data-bv-redirect-url="/products/aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat?variant=43622302122031" data-bv-seo="false"> </div> 10155 10156 10157 10158 <a 10159 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 10160 href="/products/aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat?variant=43622302122031"> 10161 Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat 10162 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 10163 Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat 10164 </span> 10165 </a> 10166 10167 10168 <div class="text-xs text-gray-700"> 10169 <span class="uppercase">Model: </span> 10170 <span >252AA899</span> 10171 <span data-swatch-variant-sku class="hidden">252AA899.020</span> 10172 </div> 10173 10174 10175 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 10176 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 10177 10178 10179 <span data-price-list="43622302122031" class="hidden">$465.40 </span> 10180 10181 10182 </span> 10183 10184 10185 10186 10187 10188 10189 <product-swatch class="hidden" data-first-variant-selected="43622302122031" data-category-product="Toilets"> 10190 10191 10192 <div class="swatch-option-js"> 10193 <input 10194 type="radio" 10195 name="toilets-list--aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" 10196 id="toilets-list--aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat-Finish-white" 10197 value="43622302122031" 10198 checked data-value="White" 10199 data-product-variant-title="Left / White" 10200 data-product-title="Cadet® Aspirations Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair-Height Elongated Toilet With Seat" 10201 data-variant-available-in="\US\" 10202 product-swatch-input 10203 > 10204 <label for="toilets-list--aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat-Finish-white"> 10205 White 10206 10207 10208 10209 10210 10211 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 10212 10213 10214 </label> 10215 </div> 10216 10217 </product-swatch> 10218 10219 10220 </div> 10221 </div> 10222 10223 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" data-is-sellable="43622302122031/true"> 10224 <form method="post" action="/cart/add" id="product_form_7932790210607" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 10225 <variant-selector class="hidden" data-handle="aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat"></variant-selector> 10226 <input type="hidden" name="qty" value="1" /> 10227 <addtocart-button data-handle="aspirations-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" class="flex" data-build-text> 10228 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
10229 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 10230 </button> 10231 </addtocart-button> 10232 <input type="hidden" name="product-id" value="7932790210607" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 10233 </component-addtocart> 10234 10235 </div> 10236 </div> 10237 10238</product-card> 10239 10240 10241 </div>�<div class="swiper-slide !h-auto"> 10242 10243 <style> 10244 10245 @media screen and (max-width:768px){ 10246 10247 .price-finish-container { 10248 flex-direction: column; 10249 align-items: flex-start; 10250 gap: 0.5rem; 10251 } 10252 10253 collection-listing[data-view-mode="grid"] .text-custom-grid { 10254 font-size: 8px; 10255 } 10256 10257 10258 collection-listing[data-view-mode="list"] .product-card-image { 10259 padding-left: 4rem; 10260 padding-right: 4rem; 10261 } 10262 } 10263</style> 10264 10265 10266 10267 10268 10269 10270 10271<product-card data-handle="cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 10272 10273 <div class="product-card-7932782247983 group card-blend-darken flex flex-col h-full"> 10274 10275 <div class="relative"> 10276 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat?variant=43622289997871" title="White"> 10277 <picture> 10278 <source 10279 type="image/webp" 10280 srcset=" 10281 //www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=320 320w, 10282 //www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=480 480w, 10283 //www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=720 720w 10284 " 10285 sizes="(max-width: 768px) 100vw, 480px"> 10286 10287 <img 10288 src="//www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=480" 10289 srcset=" 10290 //www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=320 320w, 10291 //www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=480 480w, 10292 //www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=720 720w 10293 " 10294 sizes="(max-width: 768px) 100vw, 480px" 10295 width="480" height="480" 10296 alt="Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat" 10297 class="w-full block " 10298 loading="lazy" 10299 decoding="async"> 10300 </picture> 10301 10302 10303 <img 10304 width="480" 10305 height="480" 10306 src="//www.americanstandard-us.com/cdn/shop/files/153349_2989101020_0_CDNwebp.webp?v=1790747440&width=480" 10307 alt="Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat" 10308 class="w-full !hidden " 10309 loading="lazy" 10310 decoding="async" 10311 > 10312 10313 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 10314 10315 </a> 10316 10317 10318 <compared-products-add-button 10319 data-add-compare-product-btn 10320 data-product-is-sellable="true" 10321 data-product-handle="cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" 10322 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 10323 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 10324 role="button" 10325 aria-label="Compare Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat" 10326 tabindex="0" data-is-sellable="43622289997871/true" >
10327 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 10328 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10329 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 10330</svg> 10331 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10332 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 10333</svg> 10334 </compared-products-add-button> 10335 10336 10337 10338 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 <div data-label-variant-id="43622289997871" > 10358 <style> 10359 collection-listing[data-view-mode="grid"] .tag-size-custom { 10360 font-size: 10px; 10361 } 10362</style> 10363 10364 10365 10366 10367 10368 10369 10370 </div> 10371 10372 10373 10374 </div> 10375 10376 </div> 10377 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 10378 <div class="flex flex-col md:justify-between flex-1 gap-2"> 10379 10380 10381 10382 10383 10384 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="2989101" data-bv-redirect-url="/products/cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat?variant=43622289997871" data-bv-seo="false"> </div> 10385 10386 10387 10388 <a 10389 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 10390 href="/products/cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat?variant=43622289997871"> 10391 Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat 10392 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 10393 Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat 10394 </span> 10395 </a> 10396 10397 10398 <div class="text-xs text-gray-700"> 10399 <span class="uppercase">Model: </span> 10400 <span >2989101</span> 10401 <span data-swatch-variant-sku class="hidden">2989101.020</span> 10402 </div> 10403 10404 10405 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 10406 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 10407 10408 10409 <span data-price-list="43622289997871" class="hidden">$473.85 </span> 10410 10411 10412 </span> 10413 10414 10415 10416 <product-swatch class="hidden" data-first-variant-selected="43622289997871" data-category-product="Toilets"> 10417 10418 10419 <div class="swatch-option-js"> 10420 <input 10421 type="radio" 10422 name="toilets-list--cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" 10423 id="toilets-list--cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat-Finish-white" 10424 value="43622289997871" 10425 checked data-value="White" 10426 data-product-variant-title="White" 10427 data-product-title="Cadet®3 FloWise Skirted Two-Piece 1.28 gpf/4.8 Lpf Chair Height Elongated Toilet With Seat" 10428 data-variant-available-in="\US\" 10429 product-swatch-input 10430 > 10431 <label for="toilets-list--cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat-Finish-white"> 10432 White 10433 10434 10435 10436 10437 10438 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 10439 10440 10441 </label> 10442 </div> 10443 10444 </product-swatch> 10445 10446 10447 </div> 10448 </div> 10449 10450 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" data-is-sellable="43622289997871/true"> 10451 <form method="post" action="/cart/add" id="product_form_7932782247983" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 10452 <variant-selector class="hidden" data-handle="cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat"></variant-selector> 10453 <input type="hidden" name="qty" value="1" /> 10454 <addtocart-button data-handle="cadet-r-3-flowise-skirted-two-piece-1-28-gpf-4-8-lpf-chair-height-elongated-toilet-with-seat" class="flex" data-build-text> 10455 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
10456 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 10457 </button> 10458 </addtocart-button> 10459 <input type="hidden" name="product-id" value="7932782247983" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 10460 </component-addtocart> 10461 10462 </div> 10463 </div> 10464 10465</product-card> 10466 10467 10468 </div>�<div class="swiper-slide !h-auto"> 10469 10470 <style> 10471 10472 @media screen and (max-width:768px){ 10473 10474 .price-finish-container { 10475 flex-direction: column; 10476 align-items: flex-start; 10477 gap: 0.5rem; 10478 } 10479 10480 collection-listing[data-view-mode="grid"] .text-custom-grid { 10481 font-size: 8px; 10482 } 10483 10484 10485 collection-listing[data-view-mode="list"] .product-card-image { 10486 padding-left: 4rem; 10487 padding-right: 4rem; 10488 } 10489 } 10490</style> 10491 10492 10493 10494 10495 10496 10497 10498<product-card data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 10499 10500 <div class="product-card-7932790800431 group card-blend-darken flex flex-col h-full"> 10501 10502 <div class="relative"> 10503 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat?variant=43622302777391" title="White"> 10504 <picture> 10505 <source 10506 type="image/webp" 10507 srcset=" 10508 //www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=320 320w, 10509 //www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=480 480w, 10510 //www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=720 720w 10511 " 10512 sizes="(max-width: 768px) 100vw, 480px"> 10513 10514 <img 10515 src="//www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=480" 10516 srcset=" 10517 //www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=320 320w, 10518 //www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=480 480w, 10519 //www.americanstandard-us.com/cdn/shop/files/244025_CadetPro_SiloFront_215TA104.020_0002_MARCH2024_CDNwebp.webp?v=1790746745&width=720 720w 10520 " 10521 sizes="(max-width: 768px) 100vw, 480px" 10522 width="480" height="480" 10523 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat" 10524 class="w-full block " 10525 loading="lazy" 10526 decoding="async"> 10527 </picture> 10528 10529 10530 <img 10531 width="480" 10532 height="480" 10533 src="//www.americanstandard-us.com/cdn/shop/files/244027_CadetPro_SiloFront_215TA104.020_0001_MARCH2024_CDNwebp.webp?v=1790746745&width=480" 10534 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat" 10535 class="w-full !hidden " 10536 loading="lazy" 10537 decoding="async" 10538 > 10539 10540 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 10541 10542 </a> 10543 10544 10545 <compared-products-add-button 10546 data-add-compare-product-btn 10547 data-product-is-sellable="true" 10548 data-product-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat" 10549 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 10550 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 10551 role="button" 10552 aria-label="Compare Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat" 10553 tabindex="0" data-is-sellable="43622302777391/true" >
10554 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 10555 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10556 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 10557</svg> 10558 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10559 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 10560</svg> 10561 </compared-products-add-button> 10562 10563 10564 10565 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 <div data-label-variant-id="43622302777391" > 10585 <style> 10586 collection-listing[data-view-mode="grid"] .tag-size-custom { 10587 font-size: 10px; 10588 } 10589</style> 10590 10591 10592 10593 10594 10595 10596 10597 </div> 10598 10599 10600 10601 </div> 10602 10603 </div> 10604 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 10605 <div class="flex flex-col md:justify-between flex-1 gap-2"> 10606 10607 10608 10609 10610 10611 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="215TA104" data-bv-redirect-url="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat?variant=43622302777391" data-bv-seo="false"> </div> 10612 10613 10614 10615 <a 10616 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 10617 href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat?variant=43622302777391"> 10618 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat 10619 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 10620 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat 10621 </span> 10622 </a> 10623 10624 10625 <div class="text-xs text-gray-700"> 10626 <span class="uppercase">Model: </span> 10627 <span >215TA104</span> 10628 <span data-swatch-variant-sku class="hidden">215TA104.020</span> 10629 </div> 10630 10631 10632 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 10633 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 10634 10635 10636 <span data-price-list="43622302777391" class="hidden">$323.70 </span> 10637 10638 10639 </span> 10640 10641 10642 10643 <product-swatch class="hidden" data-first-variant-selected="43622302777391" data-category-product="Toilets"> 10644 10645 10646 <div class="swatch-option-js"> 10647 <input 10648 type="radio" 10649 name="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat" 10650 id="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat-Finish-white" 10651 value="43622302777391" 10652 checked data-value="White" 10653 data-product-variant-title="White" 10654 data-product-title="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Toilet Less Seat" 10655 data-variant-available-in="\US\, \CA\" 10656 product-swatch-input 10657 > 10658 <label for="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat-Finish-white"> 10659 White 10660 10661 10662 10663 10664 10665 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 10666 10667 10668 </label> 10669 </div> 10670 10671 </product-swatch> 10672 10673 10674 </div> 10675 </div> 10676 10677 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat" data-is-sellable="43622302777391/true"> 10678 <form method="post" action="/cart/add" id="product_form_7932790800431" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 10679 <variant-selector class="hidden" data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat"></variant-selector> 10680 <input type="hidden" name="qty" value="1" /> 10681 <addtocart-button data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-toilet-less-seat" class="flex" data-build-text> 10682 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
10683 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 10684 </button> 10685 </addtocart-button> 10686 <input type="hidden" name="product-id" value="7932790800431" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 10687 </component-addtocart> 10688 10689 </div> 10690 </div> 10691 10692</product-card> 10693 10694 10695 </div>�<div class="swiper-slide !h-auto"> 10696 10697 <style> 10698 10699 @media screen and (max-width:768px){ 10700 10701 .price-finish-container { 10702 flex-direction: column; 10703 align-items: flex-start; 10704 gap: 0.5rem; 10705 } 10706 10707 collection-listing[data-view-mode="grid"] .text-custom-grid { 10708 font-size: 8px; 10709 } 10710 10711 10712 collection-listing[data-view-mode="list"] .product-card-image { 10713 padding-left: 4rem; 10714 padding-right: 4rem; 10715 } 10716 } 10717</style> 10718 10719 10720 10721 10722 10723 10724 10725<product-card data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 10726 10727 <div class="product-card-7932787490863 group card-blend-darken flex flex-col h-full"> 10728 10729 <div class="relative"> 10730 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat?variant=43622299041839" title="White"> 10731 <picture> 10732 <source 10733 type="image/webp" 10734 srcset=" 10735 //www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=320 320w, 10736 //www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=480 480w, 10737 //www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=720 720w 10738 " 10739 sizes="(max-width: 768px) 100vw, 480px"> 10740 10741 <img 10742 src="//www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=480" 10743 srcset=" 10744 //www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=320 320w, 10745 //www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=480 480w, 10746 //www.americanstandard-us.com/cdn/shop/files/248619_Cadet_SiloRight_215TA105.020_0001_Sep2024_CDNwebp.webp?v=1790746753&width=720 720w 10747 " 10748 sizes="(max-width: 768px) 100vw, 480px" 10749 width="480" height="480" 10750 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat" 10751 class="w-full block " 10752 loading="lazy" 10753 decoding="async"> 10754 </picture> 10755 10756 10757 <img 10758 width="480" 10759 height="480" 10760 src="//www.americanstandard-us.com/cdn/shop/files/248620_Cadet_SiloSide_215TA105.020_0002_Sep2024_CDNwebp.webp?v=1790746753&width=480" 10761 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat" 10762 class="w-full !hidden " 10763 loading="lazy" 10764 decoding="async" 10765 > 10766 10767 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 10768 10769 </a> 10770 10771 10772 <compared-products-add-button 10773 data-add-compare-product-btn 10774 data-product-is-sellable="true" 10775 data-product-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat" 10776 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 10777 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 10778 role="button" 10779 aria-label="Compare Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat" 10780 tabindex="0" data-is-sellable="43622299041839/true" >
10781 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 10782 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10783 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 10784</svg> 10785 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 10786 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 10787</svg> 10788 </compared-products-add-button> 10789 10790 10791 10792 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 <div data-label-variant-id="43622299041839" > 10812 <style> 10813 collection-listing[data-view-mode="grid"] .tag-size-custom { 10814 font-size: 10px; 10815 } 10816</style> 10817 10818 10819 10820 10821 10822 10823 10824 </div> 10825 10826 10827 10828 </div> 10829 10830 </div> 10831 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 10832 <div class="flex flex-col md:justify-between flex-1 gap-2"> 10833 10834 10835 10836 10837 10838 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="215TA105" data-bv-redirect-url="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat?variant=43622299041839" data-bv-seo="false"> </div> 10839 10840 10841 10842 <a 10843 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 10844 href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat?variant=43622299041839"> 10845 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat 10846 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 10847 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat 10848 </span> 10849 </a> 10850 10851 10852 <div class="text-xs text-gray-700"> 10853 <span class="uppercase">Model: </span> 10854 <span >215TA105</span> 10855 <span data-swatch-variant-sku class="hidden">215TA105.020</span> 10856 </div> 10857 10858 10859 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 10860 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 10861 10862 10863 <span data-price-list="43622299041839" class="hidden">$344.50 </span> 10864 10865 10866 </span> 10867 10868 10869 10870 <product-swatch class="hidden" data-first-variant-selected="43622299041839" data-category-product="Toilets"> 10871 10872 10873 <div class="swatch-option-js"> 10874 <input 10875 type="radio" 10876 name="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat" 10877 id="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat-Finish-white" 10878 value="43622299041839" 10879 checked data-value="White" 10880 data-product-variant-title="White" 10881 data-product-title="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated Right-Hand Trip Lever Toilet Less Seat" 10882 data-variant-available-in="\US\, \CA\" 10883 product-swatch-input 10884 > 10885 <label for="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat-Finish-white"> 10886 White 10887 10888 10889 10890 10891 10892 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 10893 10894 10895 </label> 10896 </div> 10897 10898 </product-swatch> 10899 10900 10901 </div> 10902 </div> 10903 10904 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat" data-is-sellable="43622299041839/true"> 10905 <form method="post" action="/cart/add" id="product_form_7932787490863" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 10906 <variant-selector class="hidden" data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat"></variant-selector> 10907 <input type="hidden" name="qty" value="1" /> 10908 <addtocart-button data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-right-hand-trip-lever-toilet-less-seat" class="flex" data-build-text> 10909 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
10910 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 10911 </button> 10912 </addtocart-button> 10913 <input type="hidden" name="product-id" value="7932787490863" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 10914 </component-addtocart> 10915 10916 </div> 10917 </div> 10918 10919</product-card> 10920 10921 10922 </div>�<div class="swiper-slide !h-auto"> 10923 10924 <style> 10925 10926 @media screen and (max-width:768px){ 10927 10928 .price-finish-container { 10929 flex-direction: column; 10930 align-items: flex-start; 10931 gap: 0.5rem; 10932 } 10933 10934 collection-listing[data-view-mode="grid"] .text-custom-grid { 10935 font-size: 8px; 10936 } 10937 10938 10939 collection-listing[data-view-mode="list"] .product-card-image { 10940 padding-left: 4rem; 10941 padding-right: 4rem; 10942 } 10943 } 10944</style> 10945 10946 10947 10948 10949 10950 10951 10952<product-card data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat" data-static class="block h-full 3xl:h-408 product-with-price " > 10953 10954 <div class="product-card-7932790505519 group card-blend-darken flex flex-col h-full"> 10955 10956 <div class="relative"> 10957 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat?variant=43622302449711" title="White"> 10958 <picture> 10959 <source 10960 type="image/webp" 10961 srcset=" 10962 //www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=320 320w, 10963 //www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=480 480w, 10964 //www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=720 720w 10965 " 10966 sizes="(max-width: 768px) 100vw, 480px"> 10967 10968 <img 10969 src="//www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=480" 10970 srcset=" 10971 //www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=320 320w, 10972 //www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=480 480w, 10973 //www.americanstandard-us.com/cdn/shop/files/244043_CadetPro_SiloLeft_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=720 720w 10974 " 10975 sizes="(max-width: 768px) 100vw, 480px" 10976 width="480" height="480" 10977 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat" 10978 class="w-full block " 10979 loading="lazy" 10980 decoding="async"> 10981 </picture> 10982 10983 10984 <img 10985 width="480" 10986 height="480" 10987 src="//www.americanstandard-us.com/cdn/shop/files/244044_CadetPro_SiloFront_215TB104.020_0001_MARCH2024_CDNwebp.webp?v=1790746761&width=480" 10988 alt="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat" 10989 class="w-full !hidden " 10990 loading="lazy" 10991 decoding="async" 10992 > 10993 10994 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 10995 10996 </a> 10997 10998 10999 <compared-products-add-button 11000 data-add-compare-product-btn 11001 data-product-is-sellable="true" 11002 data-product-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat" 11003 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 11004 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 11005 role="button" 11006 aria-label="Compare Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat" 11007 tabindex="0" data-is-sellable="43622302449711/true" >
11008 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 11009 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 11010 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 11011</svg> 11012 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 11013 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 11014</svg> 11015 </compared-products-add-button> 11016 11017 11018 11019 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 <div data-label-variant-id="43622302449711" > 11039 <style> 11040 collection-listing[data-view-mode="grid"] .tag-size-custom { 11041 font-size: 10px; 11042 } 11043</style> 11044 11045 11046 11047 11048 11049 11050 11051 </div> 11052 11053 11054 11055 </div> 11056 11057 </div> 11058 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 11059 <div class="flex flex-col md:justify-between flex-1 gap-2"> 11060 11061 11062 11063 11064 11065 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="215TB104" data-bv-redirect-url="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat?variant=43622302449711" data-bv-seo="false"> </div> 11066 11067 11068 11069 <a 11070 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 11071 href="/products/cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat?variant=43622302449711"> 11072 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat 11073 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 11074 Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat 11075 </span> 11076 </a> 11077 11078 11079 <div class="text-xs text-gray-700"> 11080 <span class="uppercase">Model: </span> 11081 <span >215TB104</span> 11082 <span data-swatch-variant-sku class="hidden">215TB104.020</span> 11083 </div> 11084 11085 11086 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 11087 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 11088 11089 11090 <span data-price-list="43622302449711" class="hidden">$361.40 </span> 11091 11092 11093 </span> 11094 11095 11096 11097 <product-swatch class="hidden" data-first-variant-selected="43622302449711" data-category-product="Toilets"> 11098 11099 11100 <div class="swatch-option-js"> 11101 <input 11102 type="radio" 11103 name="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat" 11104 id="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat-Finish-white" 11105 value="43622302449711" 11106 checked data-value="White" 11107 data-product-variant-title="White" 11108 data-product-title="Cadet® PRO Two-Piece 1.28 gpf/4.8 Lpf Extra Tall Height Elongated 10-Inch Rough Toilet Less Seat" 11109 data-variant-available-in="\US\, \CA\" 11110 product-swatch-input 11111 > 11112 <label for="toilets-list--cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat-Finish-white"> 11113 White 11114 11115 11116 11117 11118 11119 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11120 11121 11122 </label> 11123 </div> 11124 11125 </product-swatch> 11126 11127 11128 </div> 11129 </div> 11130 11131 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat" data-is-sellable="43622302449711/true"> 11132 <form method="post" action="/cart/add" id="product_form_7932790505519" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 11133 <variant-selector class="hidden" data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat"></variant-selector> 11134 <input type="hidden" name="qty" value="1" /> 11135 <addtocart-button data-handle="cadet-r-pro-two-piece-1-28-gpf-4-8-lpf-extra-tall-height-elongated-10-inch-rough-toilet-less-seat" class="flex" data-build-text> 11136 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
11137 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 11138 </button> 11139 </addtocart-button> 11140 <input type="hidden" name="product-id" value="7932790505519" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 11141 </component-addtocart> 11142 11143 </div> 11144 </div> 11145 11146</product-card> 11147 11148 11149 </div> 11150 </div> 11151 11152 11153 <button type="button" class="swiper-example-button-prev default-button-prev !top-[42%] !left-4 lg:!left-0" aria-label="Previous slide"></button> 11154 <button type="button" class="swiper-example-button-next default-button-next !top-[42%] !right-4 lg:!right-0" aria-label="Next slide"></button> 11155 11156 </swiper-slider> 11157 </div> 11158 11159 <div class="text-center m-4"> 11160 11161 11162 <a 11163 href="" 11164 class="btn " 11165 > 11166 View All 11167 </a> 11168 </div> 11169 11170 </div> 11171 11172 <div 11173 id="content-template--19594871701551__collection_tabs_Y3ReVU-2" 11174 class="tabs__content" 11175 data-tab-content-index="2" 11176 role="tabpanel" 11177 aria-labelledby="tab-template--19594871701551__collection_tabs_Y3ReVU-2" 11178 hidden 11179 > 11180 <div class="relative swiper-slider-wrapper"> 11181 <swiper-slider 11182 class="swiper w-full block" 11183 data-options='{ 11184 "spaceBetween": 12, 11185 "slidesPerView": 1.2, 11186 "centeredSlides": true, 11187 "allowTouchMove": true, 11188 "breakpoints": { 11189 "640": { 11190 "slidesPerView": 2, 11191 "spaceBetween": 12, 11192 "centeredSlides": false 11193 }, 11194 "768": { 11195 "slidesPerView": 3, 11196 "spaceBetween": 12, 11197 "centeredSlides": false, 11198 "allowTouchMove": false 11199 }, 11200 "1024": { 11201 "slidesPerView": 4, 11202 "spaceBetween": 12, 11203 "centeredSlides": false, 11204 "allowTouchMove": false 11205 }, 11206 "1280": { 11207 "slidesPerView": 4, 11208 "spaceBetween": 12, 11209 "centeredSlides": false, 11210 "allowTouchMove": false 11211 }, 11212 "1920": { 11213 "slidesPerView": 4, 11214 "spaceBetween": 12, 11215 "centeredSlides": false, 11216 "allowTouchMove": false 11217 } 11218 } 11219 }' 11220 data-view-mobile="1.1" 11221 data-view-mobile-extra="2" 11222 data-view-tablet="3" 11223 data-view-tablet-extra="4" 11224 data-view-desktop="4" 11225 data-next-button-class=".swiper-example-button-next" 11226 data-prev-button-class=".swiper-example-button-prev" 11227 > 11228 11229 <div class="swiper-wrapper"> 11230 11231 �<div class="swiper-slide !h-auto"> 11232 11233 <style> 11234 11235 @media screen and (max-width:768px){ 11236 11237 .price-finish-container { 11238 flex-direction: column; 11239 align-items: flex-start; 11240 gap: 0.5rem; 11241 } 11242 11243 collection-listing[data-view-mode="grid"] .text-custom-grid { 11244 font-size: 8px; 11245 } 11246 11247 11248 collection-listing[data-view-mode="list"] .product-card-image { 11249 padding-left: 4rem; 11250 padding-right: 4rem; 11251 } 11252 } 11253</style> 11254 11255 11256 11257 11258 11259 11260 11261<product-card data-handle="becklow-8-inch-widespread-bathroom-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 11262 11263 <div class="product-card-7932833464367 group card-blend-darken flex flex-col h-full"> 11264 11265 <div class="relative"> 11266 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/becklow-8-inch-widespread-bathroom-faucet?variant=43622395641903" title="Polished Chrome"> 11267 <picture> 11268 <source 11269 type="image/webp" 11270 srcset=" 11271 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=320 320w, 11272 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480 480w, 11273 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=720 720w 11274 " 11275 sizes="(max-width: 768px) 100vw, 480px"> 11276 11277 <img 11278 src="//www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480" 11279 srcset=" 11280 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=320 320w, 11281 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480 480w, 11282 //www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=720 720w 11283 " 11284 sizes="(max-width: 768px) 100vw, 480px" 11285 width="480" height="480" 11286 alt="Becklow 8-Inch Widespread Bathroom Faucet" 11287 class="w-full block " 11288 loading="lazy" 11289 decoding="async"> 11290 </picture> 11291 11292 11293 <img 11294 width="480" 11295 height="480" 11296 src="//www.americanstandard-us.com/cdn/shop/files/61519_7429801.002_0_CDNwebp_6e4e9ea9-91d6-4c2b-96d9-a7af97d6b458.webp?v=1776747739&width=480" 11297 alt="Becklow 8-Inch Widespread Bathroom Faucet" 11298 class="w-full !hidden " 11299 loading="lazy" 11300 decoding="async" 11301 > 11302 11303 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Becklow 8-Inch Widespread Bathroom Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 11304 11305 </a> 11306 11307 11308 <compared-products-add-button 11309 data-add-compare-product-btn 11310 data-product-is-sellable="true" 11311 data-product-handle="becklow-8-inch-widespread-bathroom-faucet" 11312 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 11313 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 11314 role="button" 11315 aria-label="Compare Becklow 8-Inch Widespread Bathroom Faucet" 11316 tabindex="0" data-is-sellable="43622395641903/true,43622395674671/true,43622395707439/true" >
11317 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 11318 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 11319 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 11320</svg> 11321 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 11322 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 11323</svg> 11324 </compared-products-add-button> 11325 11326 11327 11328 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 <div data-label-variant-id="43622395641903" > 11348 <style> 11349 collection-listing[data-view-mode="grid"] .tag-size-custom { 11350 font-size: 10px; 11351 } 11352</style> 11353 11354 11355 11356 11357 11358 11359 11360 </div> 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 <div data-label-variant-id="43622395674671" class="hidden" > 11382 <style> 11383 collection-listing[data-view-mode="grid"] .tag-size-custom { 11384 font-size: 10px; 11385 } 11386</style> 11387 11388 11389 11390 11391 11392 11393 11394 </div> 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 <div data-label-variant-id="43622395707439" class="hidden" > 11416 <style> 11417 collection-listing[data-view-mode="grid"] .tag-size-custom { 11418 font-size: 10px; 11419 } 11420</style> 11421 11422 11423 11424 11425 11426 11427 11428 </div> 11429 11430 11431 11432 </div> 11433 11434 </div> 11435 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 11436 <div class="flex flex-col md:justify-between flex-1 gap-2"> 11437 11438 11439 11440 11441 11442 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7429801" data-bv-redirect-url="/products/becklow-8-inch-widespread-bathroom-faucet?variant=43622395641903" data-bv-seo="false"> </div> 11443 11444 11445 11446 <a 11447 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 11448 href="/products/becklow-8-inch-widespread-bathroom-faucet?variant=43622395641903"> 11449 Becklow 8-Inch Widespread Bathroom Faucet 11450 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 11451 Becklow 8-Inch Widespread Bathroom Faucet 11452 </span> 11453 </a> 11454 11455 11456 <div class="text-xs text-gray-700"> 11457 <span class="uppercase">Model: </span> 11458 <span >7429801</span> 11459 <span data-swatch-variant-sku class="hidden">7429801.002</span> 11460 </div> 11461 11462 11463 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 11464 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 11465 11466 11467 <span data-price-list="43622395641903" class="hidden">$183.95 </span> 11468 11469 <span data-price-list="43622395674671" class="hidden">$239.85 </span> 11470 11471 <span data-price-list="43622395707439" class="hidden">$258.05 </span> 11472 11473 11474 </span> 11475 11476 11477 11478 <product-swatch class="hidden" data-first-variant-selected="43622395641903" data-category-product="Bathroom Faucets"> 11479 11480 11481 <div class="swatch-option-js"> 11482 <input 11483 type="radio" 11484 name="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet" 11485 id="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet-Finish-p
11485olished-chrome" 11486 value="43622395641903" 11487 checked data-value="Polished Chrome" 11488 data-product-variant-title="Polished Chrome" 11489 data-product-title="Becklow 8-Inch Widespread Bathroom Faucet" 11490 data-variant-available-in="\US\" 11491 product-swatch-input 11492 > 11493 <label for="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet-Finish-polished-chrome"> 11494 Polished Chrome 11495 11496 11497 11498 11499 11500 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11501 11502 11503 </label> 11504 </div> 11505 11506 11507 <div class="swatch-option-js"> 11508 <input 11509 type="radio" 11510 name="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet" 11511 id="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel" 11512 value="43622395674671" 11513 data-value="Brushed Nickel" 11514 data-product-variant-title="Brushed Nickel" 11515 data-product-title="Becklow 8-Inch Widespread Bathroom Faucet" 11516 data-variant-available-in="\US\" 11517 product-swatch-input 11518 > 11519 <label for="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel"> 11520 Brushed Nickel 11521 11522 11523 11524 11525 11526 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11527 11528 11529 </label> 11530 </div> 11531 11532 11533 <div class="swatch-option-js"> 11534 <input 11535 type="radio" 11536 name="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet" 11537 id="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet-Finish-matte-black" 11538 value="43622395707439" 11539 data-value="Matte Black" 11540 data-product-variant-title="Matte Black" 11541 data-product-title="Becklow 8-Inch Widespread Bathroom Faucet" 11542 data-variant-available-in="\US\" 11543 product-swatch-input 11544 > 11545 <label for="bathroom-sink-faucets-list--becklow-8-inch-widespread-bathroom-faucet-Finish-matte-black"> 11546 Matte Black 11547 11548 11549 11550 11551 11552 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11553 11554 11555 </label> 11556 </div> 11557 11558 </product-swatch> 11559 11560 11561 </div> 11562 </div> 11563 11564 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="becklow-8-inch-widespread-bathroom-faucet" data-is-sellable="43622395641903/true,43622395674671/true,43622395707439/true"> 11565 <form method="post" action="/cart/add" id="product_form_7932833464367" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 11566 <variant-selector class="hidden" data-handle="becklow-8-inch-widespread-bathroom-faucet"></variant-selector> 11567 <input type="hidden" name="qty" value="1" /> 11568 <addtocart-button data-handle="becklow-8-inch-widespread-bathroom-faucet" class="flex" data-build-text> 11569 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
11570 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 11571 </button> 11572 </addtocart-button> 11573 <input type="hidden" name="product-id" value="7932833464367" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 11574 </component-addtocart> 11575 11576 </div> 11577 </div> 11578 11579</product-card> 11580 11581 11582 </div>�<div class="swiper-slide !h-auto"> 11583 11584 <style> 11585 11586 @media screen and (max-width:768px){ 11587 11588 .price-finish-container { 11589 flex-direction: column; 11590 align-items: flex-start; 11591 gap: 0.5rem; 11592 } 11593 11594 collection-listing[data-view-mode="grid"] .text-custom-grid { 11595 font-size: 8px; 11596 } 11597 11598 11599 collection-listing[data-view-mode="list"] .product-card-image { 11600 padding-left: 4rem; 11601 padding-right: 4rem; 11602 } 11603 } 11604</style> 11605 11606 11607 11608 11609 11610 11611 11612<product-card data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 11613 11614 <div class="product-card-7932836020271 group card-blend-darken flex flex-col h-full"> 11615 11616 <div class="relative"> 11617 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622400786479" title="Matte Black"> 11618 <picture> 11619 <source 11620 type="image/webp" 11621 srcset=" 11622 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=320 320w, 11623 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=480 480w, 11624 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=720 720w 11625 " 11626 sizes="(max-width: 768px) 100vw, 480px"> 11627 11628 <img 11629 src="//www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=480" 11630 srcset=" 11631 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=320 320w, 11632 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=480 480w, 11633 //www.americanstandard-us.com/cdn/shop/files/59079_7105801243_0_CDNwebp.webp?v=1790750319&width=720 720w 11634 " 11635 sizes="(max-width: 768px) 100vw, 480px" 11636 width="480" height="480" 11637 alt="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11638 class="w-full block " 11639 loading="lazy" 11640 decoding="async"> 11641 </picture> 11642 11643 11644 <img 11645 width="480" 11646 height="480" 11647 src="//www.americanstandard-us.com/cdn/shop/files/59070_7105801.295_0_CDNwebp.webp?v=1790750327&width=480" 11648 alt="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11649 class="w-full !hidden " 11650 loading="lazy" 11651 decoding="async" 11652 > 11653 11654 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 11655 11656 </a> 11657 11658 11659 <compared-products-add-button 11660 data-add-compare-product-btn 11661 data-product-is-sellable="true" 11662 data-product-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 11663 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 11664 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 11665 role="button" 11666 aria-label="Compare Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11667 tabindex="0" data-is-sellable="43622400786479/true,43622400819247/true,43622400852015/true,43622400884783/true" >
11668 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 11669 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 11670 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 11671</svg> 11672 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 11673 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 11674</svg> 11675 </compared-products-add-button> 11676 11677 11678 11679 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 <div data-label-variant-id="43622400786479" > 11699 <style> 11700 collection-listing[data-view-mode="grid"] .tag-size-custom { 11701 font-size: 10px; 11702 } 11703</style> 11704 11705 11706 11707 11708 11709 11710 11711 </div> 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 <div data-label-variant-id="43622400819247" class="hidden" > 11733 <style> 11734 collection-listing[data-view-mode="grid"] .tag-size-custom { 11735 font-size: 10px; 11736 } 11737</style> 11738 11739 11740 11741 11742 11743 11744 11745 </div> 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 <div data-label-variant-id="43622400852015" class="hidden" > 11767 <style> 11768 collection-listing[data-view-mode="grid"] .tag-size-custom { 11769 font-size: 10px; 11770 } 11771</style> 11772 11773 11774 11775 11776 11777 11778 11779 </div> 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 <div data-label-variant-id="43622400884783" class="hidden" > 11801 <style> 11802 collection-listing[data-view-mode="grid"] .tag-size-custom { 11803 font-size: 10px; 11804 } 11805</style> 11806 11807 11808 11809 11810 11811 11812 11813 </div> 11814 11815 11816 11817 </div> 11818 11819 </div> 11820 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 11821 <div class="flex flex-col md:justify-between flex-1 gap-2"> 11822 11823 11824 11825 11826 11827 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7105801" data-bv-redirect-url="/products/studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622400786479" data-bv-seo="false"> </div> 11828 11829 11830 11831 <a 11832 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 11833 href="/products/studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622400786479"> 11834 Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 11835 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 11836 Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 11837 </span> 11838 </a> 11839 11840 11841 <div class="text-xs text-gray-700"> 11842 <span class="uppercase">Model: </span> 11843 <span >7105801</span> 11844 <span data-swatch-variant-sku class="hidden">7105801.243</span> 11845 </div> 11846 11847 11848 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 11849 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 11850 11851 11852 <span data-price-list="43622400786479" class="hidden">$534.95 </span> 11853 11854 <span data-price-list="43622400819247" class="hidden">$396.50 </span> 11855
11856 <span data-price-list="43622400852015" class="hidden">$534.95 </span> 11857 11858 <span data-price-list="43622400884783" class="hidden">$575.25 </span> 11859 11860 11861 </span> 11862 11863 11864 11865 <product-swatch class="hidden" data-first-variant-selected="43622400786479" data-category-product="Bathroom Faucets"> 11866 11867 11868 <div class="swatch-option-js"> 11869 <input 11870 type="radio" 11871 name="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 11872 id="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black" 11873 value="43622400786479" 11874 checked data-value="Matte Black" 11875 data-product-variant-title="Matte Black" 11876 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11877 data-variant-available-in="\US\, \CA\, \MX\" 11878 product-swatch-input 11879 > 11880 <label for="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black"> 11881 Matte Black 11882 11883 11884 11885 11886 11887 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11888 11889 11890 </label> 11891 </div> 11892 11893 11894 <div class="swatch-option-js"> 11895 <input 11896 type="radio" 11897 name="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 11898 id="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-p
11898olished-chrome" 11899 value="43622400819247" 11900 data-value="Polished Chrome" 11901 data-product-variant-title="Polished Chrome" 11902 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11903 data-variant-available-in="\US\, \CA\" 11904 product-swatch-input 11905 > 11906 <label for="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 11907 Polished Chrome 11908 11909 11910 11911 11912 11913 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11914 11915 11916 </label> 11917 </div> 11918 11919 11920 <div class="swatch-option-js"> 11921 <input 11922 type="radio" 11923 name="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 11924 id="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 11925 value="43622400852015" 11926 data-value="Brushed Nickel" 11927 data-product-variant-title="Brushed Nickel" 11928 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11929 data-variant-available-in="\US\, \CA\" 11930 product-swatch-input 11931 > 11932 <label for="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 11933 Brushed Nickel 11934 11935 11936 11937 11938 11939 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11940 11941 11942 </label> 11943 </div> 11944 11945 11946 <div class="swatch-option-js"> 11947 <input 11948 type="radio" 11949 name="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 11950 id="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-cool-sunrise" 11951 value="43622400884783" 11952 data-value="Brushed Cool Sunrise" 11953 data-product-variant-title="Brushed Cool Sunrise" 11954 data-product-title="Studio® S 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 11955 data-variant-available-in="\US\, \CA\" 11956 product-swatch-input 11957 > 11958 <label for="bathroom-sink-faucets-list--studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-cool-sunrise"> 11959 Brushed Cool Sunrise 11960 11961 11962 11963 11964 11965 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 11966 11967 11968 </label> 11969 </div> 11970 11971 </product-swatch> 11972 11973 11974 </div> 11975 </div> 11976 11977 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-is-sellable="43622400786479/true,43622400819247/true,43622400852015/true,43622400884783/true"> 11978 <form method="post" action="/cart/add" id="product_form_7932836020271" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 11979 <variant-selector class="hidden" data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles"></variant-selector> 11980 <input type="hidden" name="qty" value="1" /> 11981 <addtocart-button data-handle="studio-r-s-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" class="flex" data-build-text> 11982 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
11983 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 11984 </button> 11985 </addtocart-button> 11986 <input type="hidden" name="product-id" value="7932836020271" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 11987 </component-addtocart> 11988 11989 </div> 11990 </div> 11991 11992</product-card> 11993 11994 11995 </div>�<div class="swiper-slide !h-auto"> 11996 11997 <style> 11998 11999 @media screen and (max-width:768px){ 12000 12001 .price-finish-container { 12002 flex-direction: column; 12003 align-items: flex-start; 12004 gap: 0.5rem; 12005 } 12006 12007 collection-listing[data-view-mode="grid"] .text-custom-grid { 12008 font-size: 8px; 12009 } 12010 12011 12012 collection-listing[data-view-mode="list"] .product-card-image { 12013 padding-left: 4rem; 12014 padding-right: 4rem; 12015 } 12016 } 12017</style> 12018 12019 12020 12021 12022 12023 12024 12025<product-card data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 12026 12027 <div class="product-card-7932833169455 group card-blend-darken flex flex-col h-full"> 12028 12029 <div class="relative"> 12030 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/belmeade-two-handle-8-inch-widespread-bathroom-faucet?variant=43622395150383" title="Polished Chrome"> 12031 <picture> 12032 <source 12033 type="image/webp" 12034 srcset=" 12035 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=320 320w, 12036 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=480 480w, 12037 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=720 720w 12038 " 12039 sizes="(max-width: 768px) 100vw, 480px"> 12040 12041 <img 12042 src="//www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=480" 12043 srcset=" 12044 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=320 320w, 12045 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=480 480w, 12046 //www.americanstandard-us.com/cdn/shop/files/60701_7426801.002_0_CDNwebp.webp?v=1790751099&width=720 720w 12047 " 12048 sizes="(max-width: 768px) 100vw, 480px" 12049 width="480" height="480" 12050 alt="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 12051 class="w-full block " 12052 loading="lazy" 12053 decoding="async"> 12054 </picture> 12055 12056 12057 <img 12058 width="480" 12059 height="480" 12060 src="//www.americanstandard-us.com/cdn/shop/files/244571_7426801.243_1_CDNwebp.webp?v=1790751110&width=480" 12061 alt="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 12062 class="w-full !hidden " 12063 loading="lazy" 12064 decoding="async" 12065 > 12066 12067 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 12068 12069 </a> 12070 12071 12072 <compared-products-add-button 12073 data-add-compare-product-btn 12074 data-product-is-sellable="true"
12075 data-product-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" 12076 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 12077 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 12078 role="button" 12079 aria-label="Compare Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 12080 tabindex="0" data-is-sellable="43622395150383/true,43622395183151/true,43622395215919/true" > 12081 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 12082 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 12083 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 12084</svg> 12085 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 12086 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 12087</svg> 12088 </compared-products-add-button> 12089 12090 12091 12092 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 <div data-label-variant-id="43622395150383" > 12112 <style> 12113 collection-listing[data-view-mode="grid"] .tag-size-custom { 12114 font-size: 10px; 12115 } 12116</style> 12117 12118 12119 12120 12121 12122 12123 12124 </div> 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 <div data-label-variant-id="43622395183151" class="hidden" > 12146 <style> 12147 collection-listing[data-view-mode="grid"] .tag-size-custom { 12148 font-size: 10px; 12149 } 12150</style> 12151 12152 12153 12154 12155 12156 12157 12158 </div> 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 <div data-label-variant-id="43622395215919" class="hidden" > 12180 <style> 12181 collection-listing[data-view-mode="grid"] .tag-size-custom { 12182 font-size: 10px; 12183 } 12184</style> 12185 12186 12187 12188 12189 12190 12191 12192 </div> 12193 12194 12195 12196 </div> 12197 12198 </div> 12199 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 12200 <div class="flex flex-col md:justify-between flex-1 gap-2"> 12201 12202 12203 12204 12205 12206 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7426801" data-bv-redirect-url="/products/belmeade-two-handle-8-inch-widespread-bathroom-faucet?variant=43622395150383" data-bv-seo="false"> </div> 12207 12208 12209 12210 <a 12211 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 12212 href="/products/belmeade-two-handle-8-inch-widespread-bathroom-faucet?variant=43622395150383"> 12213 Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet 12214 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 12215 Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet 12216 </span> 12217 </a> 12218 12219 12220 <div class="text-xs text-gray-700"> 12221 <span class="uppercase">Model: </span> 12222 <span >7426801</span> 12223 <span data-swatch-variant-sku class="hidden">7426801.002</span> 12224 </div> 12225 12226 12227 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 12228 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 12229 12230
12231 <span data-price-list="43622395150383" class="hidden">$180.70 </span> 12232 12233 <span data-price-list="43622395183151" class="hidden">$221.65 </span> 12234 12235 <span data-price-list="43622395215919" class="hidden">$253.50 </span> 12236 12237 12238 </span> 12239 12240 12241 12242 <product-swatch class="hidden" data-first-variant-selected="43622395150383" data-category-product="Bathroom Faucets"> 12243 12244 12245 <div class="swatch-option-js"> 12246 <input 12247 type="radio" 12248 name="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet" 12249 id="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-polished-chrome" 12250 value="43622395150383" 12251 checked data-value="Polished Chrome" 12252 data-product-variant-title="Polished Chrome" 12253 data-product-title="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 12254 data-variant-available-in="\US\" 12255 product-swatch-input 12256 > 12257 <label for="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-polished-chrome"> 12258 Polished Chrome 12259 12260 12261 12262 12263 12264 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12265 12266 12267 </label> 12268 </div> 12269 12270 12271 <div class="swatch-option-js"> 12272 <input 12273 type="radio" 12274 name="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet" 12275 id="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel" 12276 value="43622395183151" 12277 data-value="Brushed Nickel" 12278 data-product-variant-title="Brushed Nickel" 12279 data-product-title="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 12280 data-variant-available-in="\US\" 12281 product-swatch-input 12282 > 12283 <label for="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-brushed-nickel"> 12284 Brushed Nickel 12285 12286 12287 12288 12289 12290 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12291 12292 12293 </label> 12294 </div> 12295 12296 12297 <div class="swatch-option-js"> 12298 <input 12299 type="radio" 12300 name="bathroom-sink-faucets-list--belmeade-two-handle-8
12300-inch-widespread-bathroom-faucet" 12301 id="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-matte-black" 12302 value="43622395215919" 12303 data-value="Matte Black" 12304 data-product-variant-title="Matte Black" 12305 data-product-title="Belmeade Two-Handle 8-Inch Widespread Bathroom Faucet" 12306 data-variant-available-in="\US\" 12307 product-swatch-input 12308 > 12309 <label for="bathroom-sink-faucets-list--belmeade-two-handle-8-inch-widespread-bathroom-faucet-Finish-matte-black"> 12310 Matte Black 12311 12312 12313 12314 12315 12316 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12317 12318 12319 </label> 12320 </div> 12321 12322 </product-swatch> 12323 12324 12325 </div> 12326 </div> 12327 12328 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" data-is-sellable="43622395150383/true,43622395183151/true,43622395215919/true"> 12329 <form method="post" action="/cart/add" id="product_form_7932833169455" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 12330 <variant-selector class="hidden" data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet"></variant-selector> 12331 <input type="hidden" name="qty" value="1" /> 12332 <addtocart-button data-handle="belmeade-two-handle-8-inch-widespread-bathroom-faucet" class="flex" data-build-text> 12333 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled> 12334 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 12335 </button> 12336 </addtocart-button> 12337 <input type="hidden" name="product-id" value="7932833169455" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 12338 </component-addtocart> 12339 12340 </div> 12341 </div> 12342 12343</product-card> 12344 12345 12346 </div>�<div class="swiper-slide !h-auto"> 12347 12348 <style> 12349 12350 @media screen and (max-width:768px){ 12351 12352 .price-finish-container { 12353 flex-direction: column; 12354 align-items: flex-start; 12355 gap: 0.5rem; 12356 } 12357 12358 collection-listing[data-view-mode="grid"] .text-custom-grid { 12359 font-size: 8px; 12360 } 12361 12362 12363 collection-listing[data-view-mode="list"] .product-card-image { 12364 padding-left: 4rem; 12365 padding-right: 4rem; 12366 } 12367 } 12368</style> 12369 12370 12371 12372 12373 12374 12375 12376<product-card data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 12377 12378 <div class="product-card-7932825600047 group card-blend-darken flex flex-col h-full"> 12379 12380 <div class="relative"> 12381 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/becklow-two-handle-4-inch-centerset-bathroom-faucet?variant=43622377717807" title="Polished Chrome"> 12382 <picture> 12383 <source 12384 type="image/webp" 12385 srcset=" 12386 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=320 320w, 12387 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480 480w, 12388 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=720 720w 12389 " 12390 sizes="(max-width: 768px) 100vw, 480px"> 12391 12392 <img 12393 src="//www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480" 12394 srcset=" 12395 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=320 320w, 12396 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480 480w, 12397 //www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=720 720w 12398 " 12399 sizes="(max-width: 768px) 100vw, 480px" 12400 width="480" height="480" 12401 alt="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 12402 class="w-full block " 12403 loading="lazy" 12404 decoding="async"> 12405 </picture> 12406 12407 12408 <img 12409 width="480" 12410 height="480" 12411 src="//www.americanstandard-us.com/cdn/shop/files/61341_7429201.002_0_CDNwebp.webp?v=1790751194&width=480" 12412 alt="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 12413 class="w-full !hidden " 12414 loading="lazy" 12415 decoding="async" 12416 > 12417 12418 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 12419 12420 </a> 12421 12422 12423 <compared-products-add-button 12424 data-add-compare-product-btn 12425 data-product-is-sellable="true" 12426 data-product-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" 12427 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 12428 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 12429 role="button" 12430 aria-label="Compare Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 12431 tabindex="0" data-is-sellable="43622377717807/true,43622377750575/true,43622377783343/true" >
12432 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 12433 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 12434 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 12435</svg> 12436 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 12437 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 12438</svg> 12439 </compared-products-add-button> 12440 12441 12442 12443 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 <div data-label-variant-id="43622377717807" > 12463 <style> 12464 collection-listing[data-view-mode="grid"] .tag-size-custom { 12465 font-size: 10px; 12466 } 12467</style> 12468 12469 12470 12471 12472 12473 12474 12475 </div> 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 <div data-label-variant-id="43622377750575" class="hidden" > 12497 <style> 12498 collection-listing[data-view-mode="grid"] .tag-size-custom { 12499 font-size: 10px; 12500 } 12501</style> 12502 12503 12504 12505 12506 12507 12508 12509 </div> 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 <div data-label-variant-id="43622377783343" class="hidden" > 12531 <style> 12532 collection-listing[data-view-mode="grid"] .tag-size-custom { 12533 font-size: 10px; 12534 } 12535</style> 12536 12537 12538 12539 12540 12541 12542 12543 </div> 12544 12545 12546 12547 </div> 12548 12549 </div> 12550 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 12551 <div class="flex flex-col md:justify-between flex-1 gap-2"> 12552 12553 12554 12555 12556 12557 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7429201" data-bv-redirect-url="/products/becklow-two-handle-4-inch-centerset-bathroom-faucet?variant=43622377717807" data-bv-seo="false"> </div> 12558 12559 12560 12561 <a 12562 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 12563 href="/products/becklow-two-handle-4-inch-centerset-bathroom-faucet?variant=43622377717807"> 12564 Becklow Two-Handle 4-Inch Centerset Bathroom Faucet 12565 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 12566 Becklow Two-Handle 4-Inch Centerset Bathroom Faucet 12567 </span> 12568 </a> 12569 12570 12571 <div class="text-xs text-gray-700"> 12572 <span class="uppercase">Model: </span> 12573 <span >7429201</span> 12574 <span data-swatch-variant-sku class="hidden">7429201.002</span> 12575 </div> 12576 12577 12578 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 12579 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 12580 12581 12582 <span data-price-list="43622377717807" class="hidden">$136.50 </span> 12583 12584 <span data-price-list="43622377750575" class="hidden">$177.45 </span> 12585 12586 <span data-price-list="43622377783343" class="hidden">$191.10 </span> 12587 12588 12589 </span> 12590 12591 12592 12593 <product-swatch class="hidden" data-first-variant-selected="43622377717807" data-category-product="Bathroom Faucets"> 12594 12595 12596 <div class="swatch-option-js"> 12597 <input 12598 type="radio" 12599 name="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet" 12600 id="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-p
12600olished-chrome" 12601 value="43622377717807" 12602 checked data-value="Polished Chrome" 12603 data-product-variant-title="Polished Chrome" 12604 data-product-title="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 12605 data-variant-available-in="\US\" 12606 product-swatch-input 12607 > 12608 <label for="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-polished-chrome"> 12609 Polished Chrome 12610 12611 12612 12613 12614 12615 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12616 12617 12618 </label> 12619 </div> 12620 12621 12622 <div class="swatch-option-js"> 12623 <input 12624 type="radio" 12625 name="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet" 12626 id="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-brushed-nickel" 12627 value="43622377750575" 12628 data-value="Brushed Nickel" 12629 data-product-variant-title="Brushed Nickel" 12630 data-product-title="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 12631 data-variant-available-in="\US\" 12632 product-swatch-input 12633 > 12634 <label for="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-brushed-nickel"> 12635 Brushed Nickel 12636 12637 12638 12639 12640 12641 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12642 12643 12644 </label> 12645 </div> 12646 12647 12648 <div class="swatch-option-js"> 12649 <input 12650 type="radio" 12651 name="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet" 12652 id="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-matte-black" 12653 value="43622377783343" 12654 data-value="Matte Black" 12655 data-product-variant-title="Matte Black" 12656 data-product-title="Becklow Two-Handle 4-Inch Centerset Bathroom Faucet" 12657 data-variant-available-in="\US\" 12658 product-swatch-input 12659 > 12660 <label for="bathroom-sink-faucets-list--becklow-two-handle-4-inch-centerset-bathroom-faucet-Finish-matte-black"> 12661 Matte Black 12662 12663 12664 12665 12666 12667 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12668 12669 12670 </label> 12671 </div> 12672 12673 </product-swatch> 12674 12675 12676 </div> 12677 </div> 12678 12679 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" data-is-sellable="43622377717807/true,43622377750575/true,43622377783343/true"> 12680 <form method="post" action="/cart/add" id="product_form_7932825600047" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 12681 <variant-selector class="hidden" data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet"></variant-selector> 12682 <input type="hidden" name="qty" value="1" /> 12683 <addtocart-button data-handle="becklow-two-handle-4-inch-centerset-bathroom-faucet" class="flex" data-build-text> 12684 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
12685 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 12686 </button> 12687 </addtocart-button> 12688 <input type="hidden" name="product-id" value="7932825600047" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 12689 </component-addtocart> 12690 12691 </div> 12692 </div> 12693 12694</product-card> 12695 12696 12697 </div>�<div class="swiper-slide !h-auto"> 12698 12699 <style> 12700 12701 @media screen and (max-width:768px){ 12702 12703 .price-finish-container { 12704 flex-direction: column; 12705 align-items: flex-start; 12706 gap: 0.5rem; 12707 } 12708 12709 collection-listing[data-view-mode="grid"] .text-custom-grid { 12710 font-size: 8px; 12711 } 12712 12713 12714 collection-listing[data-view-mode="list"] .product-card-image { 12715 padding-left: 4rem; 12716 padding-right: 4rem; 12717 } 12718 } 12719</style> 12720 12721 12722 12723 12724 12725 12726 12727<product-card data-handle="aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 12728 12729 <div class="product-card-7932837167151 group card-blend-darken flex flex-col h-full"> 12730 12731 <div class="relative"> 12732 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622403342383" title="Polished Chrome"> 12733 <picture> 12734 <source 12735 type="image/webp" 12736 srcset=" 12737 //www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=320 320w, 12738 //www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=480 480w, 12739 //www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=720 720w 12740 " 12741 sizes="(max-width: 768px) 100vw, 480px"> 12742 12743 <img 12744 src="//www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=480" 12745 srcset=" 12746 //www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=320 320w, 12747 //www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=480 480w, 12748 //www.americanstandard-us.com/cdn/shop/files/155527_Aspirations_SiloSide_7061801.002_0001_Jan2023_0_CDNwebp_8dcf896b-f55a-4b29-ade7-a6dc793a4e31.webp?v=1774760785&width=720 720w 12749 " 12750 sizes="(max-width: 768px) 100vw, 480px" 12751 width="480" height="480" 12752 alt="Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 12753 class="w-full block " 12754 loading="lazy" 12755 decoding="async"> 12756 </picture> 12757 12758 12759 <img 12760 width="480" 12761 height="480" 12762 src="//www.americanstandard-us.com/cdn/shop/files/155568_Aspirations_SiloSide_7061801.295_0001_Jan2023_0_CDNwebp_730c6cf3-9e5e-4d41-a416-c2734ade7ae7.webp?v=1774847455&width=480" 12763 alt="Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 12764 class="w-full !hidden " 12765 loading="lazy" 12766 decoding="async" 12767 > 12768 12769 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 12770 12771 </a> 12772 12773 12774 <compared-products-add-button 12775 data-add-compare-product-btn 12776 data-product-is-sellable="true" 12777 data-product-handle="aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 12778 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 12779 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 12780 role="button" 12781 aria-label="Compare Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 12782 tabindex="0" data-is-sellable="43622403342383/true,43622403375151/true,43622403407919/true" >
12783 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 12784 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 12785 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 12786</svg> 12787 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 12788 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 12789</svg> 12790 </compared-products-add-button> 12791 12792 12793 12794 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 <div data-label-variant-id="43622403342383" > 12814 <style> 12815 collection-listing[data-view-mode="grid"] .tag-size-custom { 12816 font-size: 10px; 12817 } 12818</style> 12819 12820 12821 12822 12823 12824 12825 12826 </div> 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 <div data-label-variant-id="43622403375151" class="hidden" > 12848 <style> 12849 collection-listing[data-view-mode="grid"] .tag-size-custom { 12850 font-size: 10px; 12851 } 12852</style> 12853 12854 12855 12856 12857 12858 12859 12860 </div> 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 <div data-label-variant-id="43622403407919" class="hidden" > 12882 <style> 12883 collection-listing[data-view-mode="grid"] .tag-size-custom { 12884 font-size: 10px; 12885 } 12886</style> 12887 12888 12889 12890 12891 12892 12893 12894 </div> 12895 12896 12897 12898 </div> 12899 12900 </div> 12901 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 12902 <div class="flex flex-col md:justify-between flex-1 gap-2"> 12903 12904 12905 12906 12907 12908 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7061801" data-bv-redirect-url="/products/aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622403342383" data-bv-seo="false"> </div> 12909 12910 12911 12912 <a 12913 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 12914 href="/products/aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622403342383"> 12915 Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 12916 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 12917 Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 12918 </span> 12919 </a> 12920 12921 12922 <div class="text-xs text-gray-700"> 12923 <span class="uppercase">Model: </span> 12924 <span >7061801</span> 12925 <span data-swatch-variant-sku class="hidden">7061801.002</span> 12926 </div> 12927 12928 12929 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 12930 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 12931 12932 12933 <span data-price-list="43622403342383" class="hidden">$337.35 </span> 12934 12935 <span data-price-list="43622403375151" class="hidden">$455.65 </span> 12936 12937 <span data-price-list="43622403407919" class="hidden">$455.65 </span> 12938 12939 12940 </span> 12941 12942 12943 12944 <product-swatch class="hidden" data-first-variant-selected="43622403342383" data-category-product="Bathroom Faucets"> 12945 12946 12947 <div class="swatch-option-js"> 12948 <input 12949 type="radio" 12950 name="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 12951 id="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-p
12951olished-chrome" 12952 value="43622403342383" 12953 checked data-value="Polished Chrome" 12954 data-product-variant-title="Polished Chrome" 12955 data-product-title="Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 12956 data-variant-available-in="\US\, \CA\, \MX\" 12957 product-swatch-input 12958 > 12959 <label for="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 12960 Polished Chrome 12961 12962 12963 12964 12965 12966 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12967 12968 12969 </label> 12970 </div> 12971 12972 12973 <div class="swatch-option-js"> 12974 <input 12975 type="radio" 12976 name="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 12977 id="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black" 12978 value="43622403375151" 12979 data-value="Matte Black" 12980 data-product-variant-title="Matte Black" 12981 data-product-title="Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 12982 data-variant-available-in="\US\, \CA\, \MX\" 12983 product-swatch-input 12984 > 12985 <label for="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black"> 12986 Matte Black 12987 12988 12989 12990 12991 12992 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 12993 12994 12995 </label> 12996 </div> 12997 12998 12999 <div class="swatch-option-js"> 13000 <input 13001 type="radio" 13002 name="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13003 id="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 13004 value="43622403407919" 13005 data-value="Brushed Nickel" 13006 data-product-variant-title="Brushed Nickel" 13007 data-product-title="Aspirations 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13008 data-variant-available-in="\US\, \CA\" 13009 product-swatch-input 13010 > 13011 <label for="bathroom-sink-faucets-list--aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 13012 Brushed Nickel 13013 13014 13015 13016 13017 13018 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13019 13020 13021 </label> 13022 </div> 13023 13024 </product-swatch> 13025 13026 13027 </div> 13028 </div> 13029 13030 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-is-sellable="43622403342383/true,43622403375151/true,43622403407919/true"> 13031 <form method="post" action="/cart/add" id="product_form_7932837167151" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 13032 <variant-selector class="hidden" data-handle="aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles"></variant-selector> 13033 <input type="hidden" name="qty" value="1" /> 13034 <addtocart-button data-handle="aspirations-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" class="flex" data-build-text> 13035 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
13036 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 13037 </button> 13038 </addtocart-button> 13039 <input type="hidden" name="product-id" value="7932837167151" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 13040 </component-addtocart> 13041 13042 </div> 13043 </div> 13044 13045</product-card> 13046 13047 13048 </div>�<div class="swiper-slide !h-auto"> 13049 13050 <style> 13051 13052 @media screen and (max-width:768px){ 13053 13054 .price-finish-container { 13055 flex-direction: column; 13056 align-items: flex-start; 13057 gap: 0.5rem; 13058 } 13059 13060 collection-listing[data-view-mode="grid"] .text-custom-grid { 13061 font-size: 8px; 13062 } 13063 13064 13065 collection-listing[data-view-mode="list"] .product-card-image { 13066 padding-left: 4rem; 13067 padding-right: 4rem; 13068 } 13069 } 13070</style> 13071 13072 13073 13074 13075 13076 13077 13078<product-card data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 13079 13080 <div class="product-card-7932829335599 group card-blend-darken flex flex-col h-full"> 13081 13082 <div class="relative"> 13083 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles?variant=43622387351599" title="Polished Chrome"> 13084 <picture> 13085 <source 13086 type="image/webp" 13087 srcset=" 13088 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=320 320w, 13089 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=480 480w, 13090 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=720 720w 13091 " 13092 sizes="(max-width: 768px) 100vw, 480px"> 13093 13094 <img 13095 src="//www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=480" 13096 srcset=" 13097 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=320 320w, 13098 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=480 480w, 13099 //www.americanstandard-us.com/cdn/shop/files/57879_7018201002_0_CDNwebp.webp?v=1790749855&width=720 720w 13100 " 13101 sizes="(max-width: 768px) 100vw, 480px" 13102 width="480" height="480" 13103 alt="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13104 class="w-full block " 13105 loading="lazy" 13106 decoding="async"> 13107 </picture> 13108 13109 13110 <img 13111 width="480" 13112 height="480" 13113 src="//www.americanstandard-us.com/cdn/shop/files/57895_7018201278_1_0_CDNwebp.webp?v=1790749858&width=480" 13114 alt="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13115 class="w-full !hidden " 13116 loading="lazy" 13117 decoding="async" 13118 > 13119 13120 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 13121 13122 </a> 13123 13124 13125 <compared-products-add-button 13126 data-add-compare-product-btn 13127 data-product-is-sellable="true" 13128 data-product-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 13129 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 13130 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 13131 role="button" 13132 aria-label="Compare Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13133 tabindex="0" data-is-sellable="43622387351599/true,43622387384367/true,43622387417135/true,43622387449903/true" >
13134 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 13135 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 13136 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 13137</svg> 13138 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 13139 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 13140</svg> 13141 </compared-products-add-button> 13142 13143 13144 13145 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 <div data-label-variant-id="43622387351599" > 13165 <style> 13166 collection-listing[data-view-mode="grid"] .tag-size-custom { 13167 font-size: 10px; 13168 } 13169</style> 13170 13171 13172 13173 13174 13175 13176 13177 </div> 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 <div data-label-variant-id="43622387384367" class="hidden" > 13199 <style> 13200 collection-listing[data-view-mode="grid"] .tag-size-custom { 13201 font-size: 10px; 13202 } 13203</style> 13204 13205 13206 13207 13208 13209 13210 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-white text-primary border-2 border-primary "> 13211 Last Chance 13212 </span> 13213 13214 13215 </div> 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 <div data-label-variant-id="43622387417135" class="hidden" > 13237 <style> 13238 collection-listing[data-view-mode="grid"] .tag-size-custom { 13239 font-size: 10px; 13240 } 13241</style> 13242 13243 13244 13245 13246 13247 13248 13249 </div> 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 <div data-label-variant-id="43622387449903" class="hidden" > 13271 <style> 13272 collection-listing[data-view-mode="grid"] .tag-size-custom { 13273 font-size: 10px; 13274 } 13275</style> 13276 13277 13278 13279 13280 13281 13282 13283 </div> 13284 13285 13286 13287 </div> 13288 13289 </div> 13290 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 13291 <div class="flex flex-col md:justify-between flex-1 gap-2"> 13292 13293 13294 13295 13296 13297 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7018201" data-bv-redirect-url="/products/edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles?variant=43622387351599" data-bv-seo="false"> </div> 13298 13299 13300 13301 <a 13302 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 13303 href="/products/edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles?variant=43622387351599"> 13304 Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles 13305 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 13306 Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles 13307 </span> 13308 </a> 13309 13310 13311 <div class="text-xs text-gray-700"> 13312 <span class="uppercase">Model: </span> 13313 <span >7018201</span> 13314 <span data-swatch-variant-sku class="hidden">7018201.002</span> 13315 </div> 13316 13317 13318 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 13319 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 13320 13321
13322 <span data-price-list="43622387351599" class="hidden">$193.05 </span> 13323 13324 <span data-price-list="43622387384367" class="hidden">$234.65 </span> 13325 13326 <span data-price-list="43622387417135" class="hidden">$260.65 </span> 13327 13328 <span data-price-list="43622387449903" class="hidden">$260.65 </span> 13329 13330 13331 </span> 13332 13333 13334 13335 <product-swatch class="hidden" data-first-variant-selected="43622387351599" data-category-product="Bathroom Faucets"> 13336 13337 13338 <div class="swatch-option-js"> 13339 <input 13340 type="radio" 13341 name="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 13342 id="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-p
13342olished-chrome" 13343 value="43622387351599" 13344 checked data-value="Polished Chrome" 13345 data-product-variant-title="Polished Chrome" 13346 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13347 data-variant-available-in="\US\" 13348 product-swatch-input 13349 > 13350 <label for="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 13351 Polished Chrome 13352 13353 13354 13355 13356 13357 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13358 13359 13360 </label> 13361 </div> 13362 13363 13364 <div class="swatch-option-js"> 13365 <input 13366 type="radio" 13367 name="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 13368 id="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-legacy-bronze" 13369 value="43622387384367" 13370 data-value="Legacy Bronze" 13371 data-product-variant-title="Legacy Bronze" 13372 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13373 data-variant-available-in="\US\" 13374 product-swatch-input 13375 > 13376 <label for="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-legacy-bronze"> 13377 Legacy Bronze 13378 13379 13380 13381 13382 13383 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_legacy-bronze_small.png?v=18037087531363801800" alt="Legacy Bronze" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13384 13385 13386 </label> 13387 </div> 13388 13389 13390 <div class="swatch-option-js"> 13391 <input 13392 type="radio" 13393 name="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 13394 id="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 13395 value="43622387417135" 13396 data-value="Brushed Nickel" 13397 data-product-variant-title="Brushed Nickel" 13398 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13399 data-variant-available-in="\US\" 13400 product-swatch-input 13401 > 13402 <label for="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 13403 Brushed Nickel 13404 13405 13406 13407 13408 13409 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13410 13411 13412 </label> 13413 </div> 13414 13415 13416 <div class="swatch-option-js"> 13417 <input 13418 type="radio" 13419 name="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" 13420 id="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-matte-black" 13421 value="43622387449903" 13422 data-value="Matte Black" 13423 data-product-variant-title="Matte Black" 13424 data-product-title="Edgemere® 4-Inch Centerset 2-Handle Bathroom Faucet 1.2 gmp/4.5 L/min With Lever Handles" 13425 data-variant-available-in="\US\" 13426 product-swatch-input 13427 > 13428 <label for="bathroom-sink-faucets-list--edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles-Finish-matte-black"> 13429 Matte Black 13430 13431 13432 13433 13434 13435 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13436 13437 13438 </label> 13439 </div> 13440 13441 </product-swatch> 13442 13443 13444 </div> 13445 </div> 13446 13447 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" data-is-sellable="43622387351599/true,43622387384367/true,43622387417135/true,43622387449903/true"> 13448 <form method="post" action="/cart/add" id="product_form_7932829335599" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 13449 <variant-selector class="hidden" data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles"></variant-selector> 13450 <input type="hidden" name="qty" value="1" /> 13451 <addtocart-button data-handle="edgemere-r-4-inch-centerset-2-handle-bathroom-faucet-1-2-gmp-4-5-l-min-with-lever-handles" class="flex" data-build-text> 13452 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
13453 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 13454 </button> 13455 </addtocart-button> 13456 <input type="hidden" name="product-id" value="7932829335599" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 13457 </component-addtocart> 13458 13459 </div> 13460 </div> 13461 13462</product-card> 13463 13464 13465 </div>�<div class="swiper-slide !h-auto"> 13466 13467 <style> 13468 13469 @media screen and (max-width:768px){ 13470 13471 .price-finish-container { 13472 flex-direction: column; 13473 align-items: flex-start; 13474 gap: 0.5rem; 13475 } 13476 13477 collection-listing[data-view-mode="grid"] .text-custom-grid { 13478 font-size: 8px; 13479 } 13480 13481 13482 collection-listing[data-view-mode="list"] .product-card-image { 13483 padding-left: 4rem; 13484 padding-right: 4rem; 13485 } 13486 } 13487</style> 13488 13489 13490 13491 13492 13493 13494 13495<product-card data-handle="edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 13496 13497 <div class="product-card-7932839002159 group card-blend-darken flex flex-col h-full"> 13498 13499 <div class="relative"> 13500 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622407929903" title="Polished Chrome"> 13501 <picture> 13502 <source 13503 type="image/webp" 13504 srcset=" 13505 //www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=320 320w, 13506 //www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=480 480w, 13507 //www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=720 720w 13508 " 13509 sizes="(max-width: 768px) 100vw, 480px"> 13510 13511 <img 13512 src="//www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=480" 13513 srcset=" 13514 //www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=320 320w, 13515 //www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=480 480w, 13516 //www.americanstandard-us.com/cdn/shop/files/57965_7018801002_4_0_CDNwebp.webp?v=1790749897&width=720 720w 13517 " 13518 sizes="(max-width: 768px) 100vw, 480px" 13519 width="480" height="480" 13520 alt="Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13521 class="w-full block " 13522 loading="lazy" 13523 decoding="async"> 13524 </picture> 13525 13526 13527 <img 13528 width="480" 13529 height="480" 13530 src="//www.americanstandard-us.com/cdn/shop/files/152255_7018801.243_2_0_CDNwebp.webp?v=1790749906&width=480" 13531 alt="Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13532 class="w-full !hidden " 13533 loading="lazy" 13534 decoding="async" 13535 > 13536 13537 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 13538 13539 </a> 13540 13541 13542 <compared-products-add-button 13543 data-add-compare-product-btn 13544 data-product-is-sellable="true" 13545 data-product-handle="edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13546 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 13547 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 13548 role="button" 13549 aria-label="Compare Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13550 tabindex="0" data-is-sellable="43622407929903/true,43622407962671/false,43622407995439/true,43622408028207/true" >
13551 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 13552 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 13553 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 13554</svg> 13555 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 13556 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 13557</svg> 13558 </compared-products-add-button> 13559 13560 13561 13562 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 <div data-label-variant-id="43622407929903" > 13582 <style> 13583 collection-listing[data-view-mode="grid"] .tag-size-custom { 13584 font-size: 10px; 13585 } 13586</style> 13587 13588 13589 13590 13591 13592 13593 13594 </div> 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 <div data-label-variant-id="43622407962671" class="hidden" > 13616 <style> 13617 collection-listing[data-view-mode="grid"] .tag-size-custom { 13618 font-size: 10px; 13619 } 13620</style> 13621 13622 13623 13624 13625 13626 13627 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 13628 Discontinued 13629 </span> 13630 13631 13632 </div> 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 <div data-label-variant-id="43622407995439" class="hidden" > 13654 <style> 13655 collection-listing[data-view-mode="grid"] .tag-size-custom { 13656 font-size: 10px; 13657 } 13658</style> 13659 13660 13661 13662 13663 13664 13665 13666 </div> 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 <div data-label-variant-id="43622408028207" class="hidden" > 13688 <style> 13689 collection-listing[data-view-mode="grid"] .tag-size-custom { 13690 font-size: 10px; 13691 } 13692</style> 13693 13694 13695 13696 13697 13698 13699 13700 </div> 13701 13702 13703 13704 </div> 13705 13706 </div> 13707 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 13708 <div class="flex flex-col md:justify-between flex-1 gap-2"> 13709 13710 13711 13712 13713 13714 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7018801" data-bv-redirect-url="/products/edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622407929903" data-bv-seo="false"> </div> 13715 13716 13717 13718 <a 13719 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 13720 href="/products/edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622407929903"> 13721 Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 13722 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 13723 Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 13724 </span> 13725 </a> 13726 13727 13728 <div class="text-xs text-gray-700"> 13729 <span class="uppercase">Model: </span> 13730 <span >7018801</span> 13731 <span data-swatch-variant-sku class="hidden">7018801.002</span> 13732 </div> 13733 13734 13735 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 13736 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 13737 13738
13739 <span data-price-list="43622407929903" class="hidden">$290.55 </span> 13740 13741 <span data-price-list="43622407962671" class="hidden">$364.65 </span> 13742 13743 <span data-price-list="43622407995439" class="hidden">$391.95 </span> 13744 13745 <span data-price-list="43622408028207" class="hidden">$391.95 </span> 13746 13747 13748 </span> 13749 13750 13751 13752 <product-swatch class="hidden" data-first-variant-selected="43622407929903" data-category-product="Bathroom Faucets"> 13753 13754 13755 <div class="swatch-option-js"> 13756 <input 13757 type="radio" 13758 name="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13759 id="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-p
13759olished-chrome" 13760 value="43622407929903" 13761 checked data-value="Polished Chrome" 13762 data-product-variant-title="Polished Chrome" 13763 data-product-title="Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13764 data-variant-available-in="\US\" 13765 product-swatch-input 13766 > 13767 <label for="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 13768 Polished Chrome 13769 13770 13771 13772 13773 13774 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13775 13776 13777 </label> 13778 </div> 13779 13780 13781 <div class="swatch-option-js"> 13782 <input 13783 type="radio" 13784 name="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13785 id="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-legacy-bronze" 13786 value="43622407962671" 13787 data-value="Legacy Bronze" 13788 data-product-variant-title="Legacy Bronze" 13789 data-product-title="Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13790 data-variant-available-in="\US\" 13791 product-swatch-input 13792 > 13793 <label for="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-legacy-bronze"> 13794 Legacy Bronze 13795 13796 13797 13798 13799 13800 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_legacy-bronze_small.png?v=18037087531363801800" alt="Legacy Bronze" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13801 13802 13803 </label> 13804 </div> 13805 13806 13807 <div class="swatch-option-js"> 13808 <input 13809 type="radio" 13810 name="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13811 id="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 13812 value="43622407995439" 13813 data-value="Brushed Nickel" 13814 data-product-variant-title="Brushed Nickel" 13815 data-product-title="Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13816 data-variant-available-in="\US\" 13817 product-swatch-input 13818 > 13819 <label for="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 13820 Brushed Nickel 13821 13822 13823 13824 13825 13826 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13827 13828 13829 </label> 13830 </div> 13831 13832 13833 <div class="swatch-option-js"> 13834 <input 13835 type="radio" 13836 name="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13837 id="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black" 13838 value="43622408028207" 13839 data-value="Matte Black" 13840 data-product-variant-title="Matte Black" 13841 data-product-title="Edgemere® 8-Inch Widespread 2-Handle Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13842 data-variant-available-in="\US\" 13843 product-swatch-input 13844 > 13845 <label for="bathroom-sink-faucets-list--edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black"> 13846 Matte Black 13847 13848 13849 13850 13851 13852 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 13853 13854 13855 </label> 13856 </div> 13857 13858 </product-swatch> 13859 13860 13861 </div> 13862 </div> 13863 13864 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-is-sellable="43622407929903/true,43622407962671/false,43622407995439/true,43622408028207/true"> 13865 <form method="post" action="/cart/add" id="product_form_7932839002159" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 13866 <variant-selector class="hidden" data-handle="edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles"></variant-selector> 13867 <input type="hidden" name="qty" value="1" /> 13868 <addtocart-button data-handle="edgemere-r-8-inch-widespread-2-handle-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" class="flex" data-build-text> 13869 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
13870 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 13871 </button> 13872 </addtocart-button> 13873 <input type="hidden" name="product-id" value="7932839002159" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 13874 </component-addtocart> 13875 13876 </div> 13877 </div> 13878 13879</product-card> 13880 13881 13882 </div>�<div class="swiper-slide !h-auto"> 13883 13884 <style> 13885 13886 @media screen and (max-width:768px){ 13887 13888 .price-finish-container { 13889 flex-direction: column; 13890 align-items: flex-start; 13891 gap: 0.5rem; 13892 } 13893 13894 collection-listing[data-view-mode="grid"] .text-custom-grid { 13895 font-size: 8px; 13896 } 13897 13898 13899 collection-listing[data-view-mode="list"] .product-card-image { 13900 padding-left: 4rem; 13901 padding-right: 4rem; 13902 } 13903 } 13904</style> 13905 13906 13907 13908 13909 13910 13911 13912<product-card data-handle="aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-static class="block h-full 3xl:h-408 product-with-price " > 13913 13914 <div class="product-card-7932833595439 group card-blend-darken flex flex-col h-full"> 13915 13916 <div class="relative"> 13917 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622395871279" title="Brushed Nickel"> 13918 <picture> 13919 <source 13920 type="image/webp" 13921 srcset=" 13922 //www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=320 320w, 13923 //www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=480 480w, 13924 //www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=720 720w 13925 " 13926 sizes="(max-width: 768px) 100vw, 480px"> 13927 13928 <img 13929 src="//www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=480" 13930 srcset=" 13931 //www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=320 320w, 13932 //www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=480 480w, 13933 //www.americanstandard-us.com/cdn/shop/files/155551_Aspirations_SiloLeft_7061857.295_0001_Jan2023_0_CDNwebp_2a7c4875-ddca-4ba9-bdf6-7a3d7d51ba44.webp?v=1769772831&width=720 720w 13934 " 13935 sizes="(max-width: 768px) 100vw, 480px" 13936 width="480" height="480" 13937 alt="Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13938 class="w-full block " 13939 loading="lazy" 13940 decoding="async"> 13941 </picture> 13942 13943 13944 <img 13945 width="480" 13946 height="480" 13947 src="//www.americanstandard-us.com/cdn/shop/files/155537_Aspirations_SiloLeft_7061857.243_0001_Jan2023_0_CDNwebp_10df953f-5640-400e-a130-37836dec7c25.webp?v=1773812524&width=480" 13948 alt="Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13949 class="w-full !hidden " 13950 loading="lazy" 13951 decoding="async" 13952 > 13953 13954 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 13955 13956 </a> 13957 13958 13959 <compared-products-add-button 13960 data-add-compare-product-btn 13961 data-product-is-sellable="true" 13962 data-product-handle="aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 13963 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 13964 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 13965 role="button" 13966 aria-label="Compare Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 13967 tabindex="0" data-is-sellable="43622395838511/true,43622395871279/true,43622395904047/true" >
13968 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 13969 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 13970 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 13971</svg> 13972 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 13973 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 13974</svg> 13975 </compared-products-add-button> 13976 13977 13978 13979 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 <div data-label-variant-id="43622395838511" > 13999 <style> 14000 collection-listing[data-view-mode="grid"] .tag-size-custom { 14001 font-size: 10px; 14002 } 14003</style> 14004 14005 14006 14007 14008 14009 14010 14011 </div> 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 <div data-label-variant-id="43622395871279" class="hidden" > 14033 <style> 14034 collection-listing[data-view-mode="grid"] .tag-size-custom { 14035 font-size: 10px; 14036 } 14037</style> 14038 14039 14040 14041 14042 14043 14044 14045 </div> 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 <div data-label-variant-id="43622395904047" class="hidden" > 14067 <style> 14068 collection-listing[data-view-mode="grid"] .tag-size-custom { 14069 font-size: 10px; 14070 } 14071</style> 14072 14073 14074 14075 14076 14077 14078 14079 </div> 14080 14081 14082 14083 </div> 14084 14085 </div> 14086 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 14087 <div class="flex flex-col md:justify-between flex-1 gap-2"> 14088 14089 14090 14091 14092 14093 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7061857" data-bv-redirect-url="/products/aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622395871279" data-bv-seo="false"> </div> 14094 14095 14096 14097 <a 14098 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 14099 href="/products/aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles?variant=43622395871279"> 14100 Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 14101 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 14102 Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles 14103 </span> 14104 </a> 14105 14106 14107 <div class="text-xs text-gray-700"> 14108 <span class="uppercase">Model: </span> 14109 <span >7061857</span> 14110 <span data-swatch-variant-sku class="hidden">7061857.295</span> 14111 </div> 14112 14113 14114 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 14115 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 14116 14117 14118 <span data-price-list="43622395838511" class="hidden">$465.40 </span> 14119 14120 <span data-price-list="43622395871279" class="hidden">$628.55 </span> 14121 14122 <span data-price-list="43622395904047" class="hidden">$628.55 </span> 14123 14124 14125 </span> 14126 14127 14128 14129 <product-swatch class="hidden" data-first-variant-selected="43622395871279" data-category-product="Bathroom Faucets"> 14130 14131 14132 <div class="swatch-option-js"> 14133 <input 14134 type="radio" 14135 name="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 14136 id="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-p
14136olished-chrome" 14137 value="43622395838511" 14138 data-value="Polished Chrome" 14139 data-product-variant-title="Polished Chrome" 14140 data-product-title="Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 14141 data-variant-available-in="\US\, \CA\" 14142 product-swatch-input 14143 > 14144 <label for="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-polished-chrome"> 14145 Polished Chrome 14146 14147 14148 14149 14150 14151 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 14152 14153 14154 </label> 14155 </div> 14156 14157 14158 <div class="swatch-option-js"> 14159 <input 14160 type="radio" 14161 name="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 14162 id="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel" 14163 value="43622395871279" 14164 checked data-value="Brushed Nickel" 14165 data-product-variant-title="Brushed Nickel" 14166 data-product-title="Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 14167 data-variant-available-in="\US\, \CA\" 14168 product-swatch-input 14169 > 14170 <label for="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-brushed-nickel"> 14171 Brushed Nickel 14172 14173 14174 14175 14176 14177 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-nickel_small.png?v=10864196253210641007" alt="Brushed Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 14178 14179 14180 </label> 14181 </div> 14182 14183 14184 <div class="swatch-option-js"> 14185 <input 14186 type="radio" 14187 name="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" 14188 id="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black" 14189 value="43622395904047" 14190 data-value="Matte Black" 14191 data-product-variant-title="Matte Black" 14192 data-product-title="Aspirations 8-Inch Touchless Widespread Bathroom Faucet 1.2 gpm/4.5 L/min With Lever Handles" 14193 data-variant-available-in="\US\, \CA\" 14194 product-swatch-input 14195 > 14196 <label for="bathroom-sink-faucets-list--aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles-Finish-matte-black"> 14197 Matte Black 14198 14199 14200 14201 14202 14203 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 14204 14205 14206 </label> 14207 </div> 14208 14209 </product-swatch> 14210 14211 14212 </div> 14213 </div> 14214 14215 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" data-is-sellable="43622395838511/true,43622395871279/true,43622395904047/true"> 14216 <form method="post" action="/cart/add" id="product_form_7932833595439" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 14217 <variant-selector class="hidden" data-handle="aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles"></variant-selector> 14218 <input type="hidden" name="qty" value="1" /> 14219 <addtocart-button data-handle="aspirations-8-inch-touchless-widespread-bathroom-faucet-1-2-gpm-4-5-l-min-with-lever-handles" class="flex" data-build-text> 14220 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
14221 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 14222 </button> 14223 </addtocart-button> 14224 <input type="hidden" name="product-id" value="7932833595439" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 14225 </component-addtocart> 14226 14227 </div> 14228 </div> 14229 14230</product-card> 14231 14232 14233 </div> 14234 </div> 14235 14236 14237 <button type="button" class="swiper-example-button-prev default-button-prev !top-[42%] !left-4 lg:!left-0" aria-label="Previous slide"></button> 14238 <button type="button" class="swiper-example-button-next default-button-next !top-[42%] !right-4 lg:!right-0" aria-label="Next slide"></button> 14239 14240 </swiper-slider> 14241 </div> 14242 14243 <div class="text-center m-4"> 14244 14245 14246 <a 14247 href="" 14248 class="btn " 14249 > 14250 View All 14251 </a> 14252 </div> 14253 14254 </div> 14255 14256 <div 14257 id="content-template--19594871701551__collection_tabs_Y3ReVU-3" 14258 class="tabs__content" 14259 data-tab-content-index="3" 14260 role="tabpanel" 14261 aria-labelledby="tab-template--19594871701551__collection_tabs_Y3ReVU-3" 14262 hidden 14263 > 14264 <div class="relative swiper-slider-wrapper"> 14265 <swiper-slider 14266 class="swiper w-full block" 14267 data-options='{ 14268 "spaceBetween": 12, 14269 "slidesPerView": 1.2, 14270 "centeredSlides": true, 14271 "allowTouchMove": true, 14272 "breakpoints": { 14273 "640": { 14274 "slidesPerView": 2, 14275 "spaceBetween": 12, 14276 "centeredSlides": false 14277 }, 14278 "768": { 14279 "slidesPerView": 3, 14280 "spaceBetween": 12, 14281 "centeredSlides": false, 14282 "allowTouchMove": false 14283 }, 14284 "1024": { 14285 "slidesPerView": 4, 14286 "spaceBetween": 12, 14287 "centeredSlides": false, 14288 "allowTouchMove": false 14289 }, 14290 "1280": { 14291 "slidesPerView": 4, 14292 "spaceBetween": 12, 14293 "centeredSlides": false, 14294 "allowTouchMove": false 14295 }, 14296 "1920": { 14297 "slidesPerView": 4, 14298 "spaceBetween": 12, 14299 "centeredSlides": false, 14300 "allowTouchMove": false 14301 } 14302 } 14303 }' 14304 data-view-mobile="1.1" 14305 data-view-mobile-extra="2" 14306 data-view-tablet="3" 14307 data-view-tablet-extra="4" 14308 data-view-desktop="4" 14309 data-next-button-class=".swiper-example-button-next" 14310 data-prev-button-class=".swiper-example-button-prev" 14311 > 14312 14313 <div class="swiper-wrapper"> 14314 14315 �<div class="swiper-slide !h-auto"> 14316 14317 <style> 14318 14319 @media screen and (max-width:768px){ 14320 14321 .price-finish-container { 14322 flex-direction: column; 14323 align-items: flex-start; 14324 gap: 0.5rem; 14325 } 14326 14327 collection-listing[data-view-mode="grid"] .text-custom-grid { 14328 font-size: 8px; 14329 } 14330 14331 14332 collection-listing[data-view-mode="list"] .product-card-image { 14333 padding-left: 4rem; 14334 padding-right: 4rem; 14335 } 14336 } 14337</style> 14338 14339 14340 14341 14342 14343 14344 14345<product-card data-handle="studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only" data-static class="block h-full 3xl:h-408 product-with-price " > 14346 14347 <div class="product-card-7932757835823 group card-blend-darken flex flex-col h-full"> 14348 14349 <div class="relative"> 14350 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only?variant=43622243008559" title="White"> 14351 <picture> 14352 <source 14353 type="image/webp" 14354 srcset=" 14355 //www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=320 320w, 14356 //www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=480 480w, 14357 //www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=720 720w 14358 " 14359 sizes="(max-width: 768px) 100vw, 480px"> 14360 14361 <img 14362 src="//www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=480" 14363 srcset=" 14364 //www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=320 320w, 14365 //www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=480 480w, 14366 //www.americanstandard-us.com/cdn/shop/files/166681_P-0621001020_0_CDNwebp.webp?v=1790745514&width=720 720w 14367 " 14368 sizes="(max-width: 768px) 100vw, 480px" 14369 width="480" height="480" 14370 alt="Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only" 14371 class="w-full block " 14372 loading="lazy" 14373 decoding="async"> 14374 </picture> 14375 14376 14377 <img 14378 width="480" 14379 height="480" 14380 src="//www.americanstandard-us.com/cdn/shop/files/167344_P-0621001020_02_0_CDNwebp.webp?v=1790745514&width=480" 14381 alt="Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only" 14382 class="w-full !hidden " 14383 loading="lazy" 14384 decoding="async" 14385 > 14386 14387 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 14388 14389 </a> 14390 14391 14392 <compared-products-add-button 14393 data-add-compare-product-btn 14394 data-product-is-sellable="true" 14395 data-product-handle="studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only" 14396 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 14397 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 14398 role="button" 14399 aria-label="Compare Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only" 14400 tabindex="0" data-is-sellable="43622243008559/true" >
14401 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 14402 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 14403 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 14404</svg> 14405 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 14406 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 14407</svg> 14408 </compared-products-add-button> 14409 14410 14411 14412 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 <div data-label-variant-id="43622243008559" > 14432 <style> 14433 collection-listing[data-view-mode="grid"] .tag-size-custom { 14434 font-size: 10px; 14435 } 14436</style> 14437 14438 14439 14440 14441 14442 14443 14444 </div> 14445 14446 14447 14448 </div> 14449 14450 </div> 14451 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 14452 <div class="flex flex-col md:justify-between flex-1 gap-2"> 14453 14454 14455 14456 14457 14458 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="0621001" data-bv-redirect-url="/products/studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only?variant=43622243008559" data-bv-seo="false"> </div> 14459 14460 14461 14462 <a 14463 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 14464 href="/products/studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only?variant=43622243008559"> 14465 Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only 14466 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 14467 Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only 14468 </span> 14469 </a> 14470 14471 14472 <div class="text-xs text-gray-700"> 14473 <span class="uppercase">Model: </span> 14474 <span >0621001</span> 14475 <span data-swatch-variant-sku class="hidden">0621001.020</span> 14476 </div> 14477 14478 14479 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 14480 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 14481 14482 14483 <span data-price-list="43622243008559" class="hidden">$315.25 </span> 14484 14485 14486 </span> 14487 14488 14489 14490 <product-swatch class="hidden" data-first-variant-selected="43622243008559" data-category-product="Washbasins"> 14491 14492 14493 <div class="swatch-option-js"> 14494 <input 14495 type="radio" 14496 name="bathroom-sinks-list--studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only" 14497 id="bathroom-sinks-list--studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only-Finish-white" 14498 value="43622243008559" 14499 checked data-value="White" 14500 data-product-variant-title="White" 14501 data-product-title="Studio® 22 x 18-1/2-Inch Above Counter Sink With Center Hole Only" 14502 data-variant-available-in="\US\, \CA\, \MX\" 14503 product-swatch-input 14504 > 14505 <label for="bathroom-sinks-list--studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only-Finish-white"> 14506 White 14507 14508 14509 14510 14511 14512 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 14513 14514 14515 </label> 14516 </div> 14517 14518 </product-swatch> 14519 14520 14521 </div> 14522 </div> 14523 14524 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only" data-is-sellable="43622243008559/true"> 14525 <form method="post" action="/cart/add" id="product_form_7932757835823" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 14526 <variant-selector class="hidden" data-handle="studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only"></variant-selector> 14527 <input type="hidden" name="qty" value="1" /> 14528 <addtocart-button data-handle="studio-r-22-x-18-1-2-inch-above-counter-sink-with-center-hole-only" class="flex" data-build-text> 14529 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
14530 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 14531 </button> 14532 </addtocart-button> 14533 <input type="hidden" name="product-id" value="7932757835823" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 14534 </component-addtocart> 14535 14536 </div> 14537 </div> 14538 14539</product-card> 14540 14541 14542 </div>�<div class="swiper-slide !h-auto"> 14543 14544 <style> 14545 14546 @media screen and (max-width:768px){ 14547 14548 .price-finish-container { 14549 flex-direction: column; 14550 align-items: flex-start; 14551 gap: 0.5rem; 14552 } 14553 14554 collection-listing[data-view-mode="grid"] .text-custom-grid { 14555 font-size: 8px; 14556 } 14557 14558 14559 collection-listing[data-view-mode="list"] .product-card-image { 14560 padding-left: 4rem; 14561 padding-right: 4rem; 14562 } 14563 } 14564</style> 14565 14566 14567 14568 14569 14570 14571 14572<product-card data-handle="aspirations-above-counter-sink-center-hole-only" data-static class="block h-full 3xl:h-408 product-with-price " > 14573 14574 <div class="product-card-7932760129583 group card-blend-darken flex flex-col h-full"> 14575 14576 <div class="relative"> 14577 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/aspirations-above-counter-sink-center-hole-only?variant=43622247268399" title="White"> 14578 <picture> 14579 <source 14580 type="image/webp" 14581 srcset=" 14582 //www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=320 320w, 14583 //www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=480 480w, 14584 //www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=720 720w 14585 " 14586 sizes="(max-width: 768px) 100vw, 480px"> 14587 14588 <img 14589 src="//www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=480" 14590 srcset=" 14591 //www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=320 320w, 14592 //www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=480 480w, 14593 //www.americanstandard-us.com/cdn/shop/files/169088_Aspirations_SiloTop_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=720 720w 14594 " 14595 sizes="(max-width: 768px) 100vw, 480px" 14596 width="480" height="480" 14597 alt="Aspirations Above Counter Sink Center Hole Only" 14598 class="w-full block " 14599 loading="lazy" 14600 decoding="async"> 14601 </picture> 14602 14603 14604 <img 14605 width="480" 14606 height="480" 14607 src="//www.americanstandard-us.com/cdn/shop/files/169095_Aspirations_SiloLeft_1642001.020_0001_Apr2023_0_CDNwebp.webp?v=1790745931&width=480" 14608 alt="Aspirations Above Counter Sink Center Hole Only" 14609 class="w-full !hidden " 14610 loading="lazy" 14611 decoding="async" 14612 > 14613 14614 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Aspirations Above Counter Sink Center Hole Only" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 14615 14616 </a> 14617 14618 14619 <compared-products-add-button 14620 data-add-compare-product-btn 14621 data-product-is-sellable="true" 14622 data-product-handle="aspirations-above-counter-sink-center-hole-only" 14623 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 14624 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 14625 role="button" 14626 aria-label="Compare Aspirations Above Counter Sink Center Hole Only" 14627 tabindex="0" data-is-sellable="43622247268399/true" >
14628 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 14629 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 14630 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 14631</svg> 14632 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 14633 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 14634</svg> 14635 </compared-products-add-button> 14636 14637 14638 14639 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 <div data-label-variant-id="43622247268399" > 14659 <style> 14660 collection-listing[data-view-mode="grid"] .tag-size-custom { 14661 font-size: 10px; 14662 } 14663</style> 14664 14665 14666 14667 14668 14669 14670 14671 </div> 14672 14673 14674 14675 </div> 14676 14677 </div> 14678 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 14679 <div class="flex flex-col md:justify-between flex-1 gap-2"> 14680 14681 14682 14683 14684 14685 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="1642001" data-bv-redirect-url="/products/aspirations-above-counter-sink-center-hole-only?variant=43622247268399" data-bv-seo="false"> </div> 14686 14687 14688 14689 <a 14690 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 14691 href="/products/aspirations-above-counter-sink-center-hole-only?variant=43622247268399"> 14692 Aspirations Above Counter Sink Center Hole Only 14693 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 14694 Aspirations Above Counter Sink Center Hole Only 14695 </span> 14696 </a> 14697 14698 14699 <div class="text-xs text-gray-700"> 14700 <span class="uppercase">Model: </span> 14701 <span >1642001</span> 14702 <span data-swatch-variant-sku class="hidden">1642001.020</span> 14703 </div> 14704 14705 14706 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 14707 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 14708 14709 14710 <span data-price-list="43622247268399" class="hidden">$232.70 </span> 14711 14712 14713 </span> 14714 14715 14716 14717 <product-swatch class="hidden" data-first-variant-selected="43622247268399" data-category-product="Washbasins"> 14718 14719 14720 <div class="swatch-option-js"> 14721 <input 14722 type="radio" 14723 name="bathroom-sinks-list--aspirations-above-counter-sink-center-hole-only" 14724 id="bathroom-sinks-list--aspirations-above-counter-sink-center-hole-only-Finish-white" 14725 value="43622247268399" 14726 checked data-value="White" 14727 data-product-variant-title="White" 14728 data-product-title="Aspirations Above Counter Sink Center Hole Only" 14729 data-variant-available-in="\US\, \CA\" 14730 product-swatch-input 14731 > 14732 <label for="bathroom-sinks-list--aspirations-above-counter-sink-center-hole-only-Finish-white"> 14733 White 14734 14735 14736 14737 14738 14739 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 14740 14741 14742 </label> 14743 </div> 14744 14745 </product-swatch> 14746 14747 14748 </div> 14749 </div> 14750 14751 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="aspirations-above-counter-sink-center-hole-only" data-is-sellable="43622247268399/true"> 14752 <form method="post" action="/cart/add" id="product_form_7932760129583" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 14753 <variant-selector class="hidden" data-handle="aspirations-above-counter-sink-center-hole-only"></variant-selector> 14754 <input type="hidden" name="qty" value="1" /> 14755 <addtocart-button data-handle="aspirations-above-counter-sink-center-hole-only" class="flex" data-build-text> 14756 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
14757 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 14758 </button> 14759 </addtocart-button> 14760 <input type="hidden" name="product-id" value="7932760129583" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 14761 </component-addtocart> 14762 14763 </div> 14764 </div> 14765 14766</product-card> 14767 14768 14769 </div>�<div class="swiper-slide !h-auto"> 14770 14771 <style> 14772 14773 @media screen and (max-width:768px){ 14774 14775 .price-finish-container { 14776 flex-direction: column; 14777 align-items: flex-start; 14778 gap: 0.5rem; 14779 } 14780 14781 collection-listing[data-view-mode="grid"] .text-custom-grid { 14782 font-size: 8px; 14783 } 14784 14785 14786 collection-listing[data-view-mode="list"] .product-card-image { 14787 padding-left: 4rem; 14788 padding-right: 4rem; 14789 } 14790 } 14791</style> 14792 14793 14794 14795 14796 14797 14798 14799<product-card data-handle="aspirations-above-counter-sink-with-8-inch-centers" data-static class="block h-full 3xl:h-408 product-with-price " > 14800 14801 <div class="product-card-7932759441455 group card-blend-darken flex flex-col h-full"> 14802 14803 <div class="relative"> 14804 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/aspirations-above-counter-sink-with-8-inch-centers?variant=43622246252591" title="White"> 14805 <picture> 14806 <source 14807 type="image/webp" 14808 srcset=" 14809 //www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=320 320w, 14810 //www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=480 480w, 14811 //www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=720 720w 14812 " 14813 sizes="(max-width: 768px) 100vw, 480px"> 14814 14815 <img 14816 src="//www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=480" 14817 srcset=" 14818 //www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=320 320w, 14819 //www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=480 480w, 14820 //www.americanstandard-us.com/cdn/shop/files/169079_Aspirations_SiloFront_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=720 720w 14821 " 14822 sizes="(max-width: 768px) 100vw, 480px" 14823 width="480" height="480" 14824 alt="Aspirations Above Counter Sink With 8-Inch Centers" 14825 class="w-full block " 14826 loading="lazy" 14827 decoding="async"> 14828 </picture> 14829 14830 14831 <img 14832 width="480" 14833 height="480" 14834 src="//www.americanstandard-us.com/cdn/shop/files/169082_Aspirations_SiloLeft_1642008.020_0001_Apr2023_0_CDNwebp.webp?v=1790745945&width=480" 14835 alt="Aspirations Above Counter Sink With 8-Inch Centers" 14836 class="w-full !hidden " 14837 loading="lazy" 14838 decoding="async" 14839 > 14840 14841 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Aspirations Above Counter Sink With 8-Inch Centers" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 14842 14843 </a> 14844 14845 14846 <compared-products-add-button 14847 data-add-compare-product-btn 14848 data-product-is-sellable="true" 14849 data-product-handle="aspirations-above-counter-sink-with-8-inch-centers" 14850 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 14851 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 14852 role="button" 14853 aria-label="Compare Aspirations Above Counter Sink With 8-Inch Centers" 14854 tabindex="0" data-is-sellable="43622246252591/true" >
14855 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 14856 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 14857 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 14858</svg> 14859 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 14860 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 14861</svg> 14862 </compared-products-add-button> 14863 14864 14865 14866 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 <div data-label-variant-id="43622246252591" > 14886 <style> 14887 collection-listing[data-view-mode="grid"] .tag-size-custom { 14888 font-size: 10px; 14889 } 14890</style> 14891 14892 14893 14894 14895 14896 14897 14898 </div> 14899 14900 14901 14902 </div> 14903 14904 </div> 14905 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 14906 <div class="flex flex-col md:justify-between flex-1 gap-2"> 14907 14908 14909 14910 14911 14912 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="1642008" data-bv-redirect-url="/products/aspirations-above-counter-sink-with-8-inch-centers?variant=43622246252591" data-bv-seo="false"> </div> 14913 14914 14915 14916 <a 14917 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 14918 href="/products/aspirations-above-counter-sink-with-8-inch-centers?variant=43622246252591"> 14919 Aspirations Above Counter Sink With 8-Inch Centers 14920 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 14921 Aspirations Above Counter Sink With 8-Inch Centers 14922 </span> 14923 </a> 14924 14925 14926 <div class="text-xs text-gray-700"> 14927 <span class="uppercase">Model: </span> 14928 <span >1642008</span> 14929 <span data-swatch-variant-sku class="hidden">1642008.020</span> 14930 </div> 14931 14932 14933 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 14934 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 14935 14936 14937 <span data-price-list="43622246252591" class="hidden">$232.70 </span> 14938 14939 14940 </span> 14941 14942 14943 14944 <product-swatch class="hidden" data-first-variant-selected="43622246252591" data-category-product="Washbasins"> 14945 14946 14947 <div class="swatch-option-js"> 14948 <input 14949 type="radio" 14950 name="bathroom-sinks-list--aspirations-above-counter-sink-with-8-inch-centers" 14951 id="bathroom-sinks-list--aspirations-above-counter-sink-with-8-inch-centers-Finish-white" 14952 value="43622246252591" 14953 checked data-value="White" 14954 data-product-variant-title="White" 14955 data-product-title="Aspirations Above Counter Sink With 8-Inch Centers" 14956 data-variant-available-in="\US\, \CA\" 14957 product-swatch-input 14958 > 14959 <label for="bathroom-sinks-list--aspirations-above-counter-sink-with-8-inch-centers-Finish-white"> 14960 White 14961 14962 14963 14964 14965 14966 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 14967 14968 14969 </label> 14970 </div> 14971 14972 </product-swatch> 14973 14974 14975 </div> 14976 </div> 14977 14978 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="aspirations-above-counter-sink-with-8-inch-centers" data-is-sellable="43622246252591/true"> 14979 <form method="post" action="/cart/add" id="product_form_7932759441455" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 14980 <variant-selector class="hidden" data-handle="aspirations-above-counter-sink-with-8-inch-centers"></variant-selector> 14981 <input type="hidden" name="qty" value="1" /> 14982 <addtocart-button data-handle="aspirations-above-counter-sink-with-8-inch-centers" class="flex" data-build-text> 14983 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
14984 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 14985 </button> 14986 </addtocart-button> 14987 <input type="hidden" name="product-id" value="7932759441455" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 14988 </component-addtocart> 14989 14990 </div> 14991 </div> 14992 14993</product-card> 14994 14995 14996 </div>�<div class="swiper-slide !h-auto"> 14997 14998 <style> 14999 15000 @media screen and (max-width:768px){ 15001 15002 .price-finish-container { 15003 flex-direction: column; 15004 align-items: flex-start; 15005 gap: 0.5rem; 15006 } 15007 15008 collection-listing[data-view-mode="grid"] .text-custom-grid { 15009 font-size: 8px; 15010 } 15011 15012 15013 collection-listing[data-view-mode="list"] .product-card-image { 15014 padding-left: 4rem; 15015 padding-right: 4rem; 15016 } 15017 } 15018</style> 15019 15020 15021 15022 15023 15024 15025 15026<product-card data-handle="studio-r-s-above-counter-oval-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 15027 15028 <div class="product-card-7932759506991 group card-blend-darken flex flex-col h-full"> 15029 15030 <div class="relative"> 15031 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-above-counter-oval-sink?variant=43622246350895" title="White"> 15032 <picture> 15033 <source 15034 type="image/webp" 15035 srcset=" 15036 //www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=320 320w, 15037 //www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=480 480w, 15038 //www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=720 720w 15039 " 15040 sizes="(max-width: 768px) 100vw, 480px"> 15041 15042 <img 15043 src="//www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=480" 15044 srcset=" 15045 //www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=320 320w, 15046 //www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=480 480w, 15047 //www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=720 720w 15048 " 15049 sizes="(max-width: 768px) 100vw, 480px" 15050 width="480" height="480" 15051 alt="Studio® S Above Counter Oval Sink" 15052 class="w-full block " 15053 loading="lazy" 15054 decoding="async"> 15055 </picture> 15056 15057 15058 <img 15059 width="480" 15060 height="480" 15061 src="//www.americanstandard-us.com/cdn/shop/files/46336_1296000020_0_CDNwebp.webp?v=1790745716&width=480" 15062 alt="Studio® S Above Counter Oval Sink" 15063 class="w-full !hidden " 15064 loading="lazy" 15065 decoding="async" 15066 > 15067 15068 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S Above Counter Oval Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 15069 15070 </a> 15071 15072 15073 <compared-products-add-button 15074 data-add-compare-product-btn 15075 data-product-is-sellable="true" 15076 data-product-handle="studio-r-s-above-counter-oval-sink" 15077 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 15078 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 15079 role="button" 15080 aria-label="Compare Studio® S Above Counter Oval Sink" 15081 tabindex="0" data-is-sellable="43622246350895/true" >
15082 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 15083 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 15084 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 15085</svg> 15086 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 15087 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 15088</svg> 15089 </compared-products-add-button> 15090 15091 15092 15093 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 <div data-label-variant-id="43622246350895" > 15113 <style> 15114 collection-listing[data-view-mode="grid"] .tag-size-custom { 15115 font-size: 10px; 15116 } 15117</style> 15118 15119 15120 15121 15122 15123 15124 15125 </div> 15126 15127 15128 15129 </div> 15130 15131 </div> 15132 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 15133 <div class="flex flex-col md:justify-between flex-1 gap-2"> 15134 15135 15136 15137 15138 15139 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="1296000" data-bv-redirect-url="/products/studio-r-s-above-counter-oval-sink?variant=43622246350895" data-bv-seo="false"> </div> 15140 15141 15142 15143 <a 15144 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 15145 href="/products/studio-r-s-above-counter-oval-sink?variant=43622246350895"> 15146 Studio® S Above Counter Oval Sink 15147 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 15148 Studio® S Above Counter Oval Sink 15149 </span> 15150 </a> 15151 15152 15153 <div class="text-xs text-gray-700"> 15154 <span class="uppercase">Model: </span> 15155 <span >1296000</span> 15156 <span data-swatch-variant-sku class="hidden">1296000.020</span> 15157 </div> 15158 15159 15160 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 15161 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 15162 15163 15164 <span data-price-list="43622246350895" class="hidden">$297.05 </span> 15165 15166 15167 </span> 15168 15169 15170 15171 <product-swatch class="hidden" data-first-variant-selected="43622246350895" data-category-product="Washbasins"> 15172 15173 15174 <div class="swatch-option-js"> 15175 <input 15176 type="radio" 15177 name="bathroom-sinks-list--studio-r-s-above-counter-oval-sink" 15178 id="bathroom-sinks-list--studio-r-s-above-counter-oval-sink-Finish-white" 15179 value="43622246350895" 15180 checked data-value="White" 15181 data-product-variant-title="White" 15182 data-product-title="Studio® S Above Counter Oval Sink" 15183 data-variant-available-in="\US\, \CA\" 15184 product-swatch-input 15185 > 15186 <label for="bathroom-sinks-list--studio-r-s-above-counter-oval-sink-Finish-white"> 15187 White 15188 15189 15190 15191 15192 15193 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15194 15195 15196 </label> 15197 </div> 15198 15199 </product-swatch> 15200 15201 15202 </div> 15203 </div> 15204 15205 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-above-counter-oval-sink" data-is-sellable="43622246350895/true"> 15206 <form method="post" action="/cart/add" id="product_form_7932759506991" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 15207 <variant-selector class="hidden" data-handle="studio-r-s-above-counter-oval-sink"></variant-selector> 15208 <input type="hidden" name="qty" value="1" /> 15209 <addtocart-button data-handle="studio-r-s-above-counter-oval-sink" class="flex" data-build-text> 15210 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
15211 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 15212 </button> 15213 </addtocart-button> 15214 <input type="hidden" name="product-id" value="7932759506991" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 15215 </component-addtocart> 15216 15217 </div> 15218 </div> 15219 15220</product-card> 15221 15222 15223 </div>�<div class="swiper-slide !h-auto"> 15224 15225 <style> 15226 15227 @media screen and (max-width:768px){ 15228 15229 .price-finish-container { 15230 flex-direction: column; 15231 align-items: flex-start; 15232 gap: 0.5rem; 15233 } 15234 15235 collection-listing[data-view-mode="grid"] .text-custom-grid { 15236 font-size: 8px; 15237 } 15238 15239 15240 collection-listing[data-view-mode="list"] .product-card-image { 15241 padding-left: 4rem; 15242 padding-right: 4rem; 15243 } 15244 } 15245</style> 15246 15247 15248 15249 15250 15251 15252 15253<product-card data-handle="24-inch-evolution-r-center-hole-only-pedestal-sink-top" data-static class="block h-full 3xl:h-408 product-with-price " > 15254 15255 <div class="product-card-7932767961135 group card-blend-darken flex flex-col h-full"> 15256 15257 <div class="relative"> 15258 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/24-inch-evolution-r-center-hole-only-pedestal-sink-top?variant=43622259163183" title="White"> 15259 <picture> 15260 <source 15261 type="image/webp" 15262 srcset=" 15263 //www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=320 320w, 15264 //www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=480 480w, 15265 //www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=720 720w 15266 " 15267 sizes="(max-width: 768px) 100vw, 480px"> 15268 15269 <img 15270 src="//www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=480" 15271 srcset=" 15272 //www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=320 320w, 15273 //www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=480 480w, 15274 //www.americanstandard-us.com/cdn/shop/files/169563_P-0468001020_0_CDNwebp.webp?v=1790745317&width=720 720w 15275 " 15276 sizes="(max-width: 768px) 100vw, 480px" 15277 width="480" height="480" 15278 alt="24-Inch Evolution Center Hole Only Pedestal Sink Top" 15279 class="w-full block " 15280 loading="lazy" 15281 decoding="async"> 15282 </picture> 15283 15284 15285 <img 15286 width="480" 15287 height="480" 15288 src="//www.americanstandard-us.com/cdn/shop/files/259530_P-0468001020__1__CDNwebp.webp?v=1790745317&width=480" 15289 alt="24-Inch Evolution Center Hole Only Pedestal Sink Top" 15290 class="w-full !hidden " 15291 loading="lazy" 15292 decoding="async" 15293 > 15294 15295 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery 24-Inch Evolution Center Hole Only Pedestal Sink Top" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 15296 15297 </a> 15298 15299 15300 <compared-products-add-button 15301 data-add-compare-product-btn 15302 data-product-is-sellable="false" 15303 data-product-handle="24-inch-evolution-r-center-hole-only-pedestal-sink-top" 15304 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 15305 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 15306 role="button" 15307 aria-label="Compare 24-Inch Evolution Center Hole Only Pedestal Sink Top" 15308 tabindex="0" data-is-sellable="43622259163183/false,43622259195951/false,43622259228719/false" >
15309 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 15310 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 15311 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 15312</svg> 15313 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 15314 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 15315</svg> 15316 </compared-products-add-button> 15317 15318 15319 15320 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 <div data-label-variant-id="43622259163183" > 15340 <style> 15341 collection-listing[data-view-mode="grid"] .tag-size-custom { 15342 font-size: 10px; 15343 } 15344</style> 15345 15346 15347 15348 15349 15350 15351 15352 </div> 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 <div data-label-variant-id="43622259195951" class="hidden" > 15374 <style> 15375 collection-listing[data-view-mode="grid"] .tag-size-custom { 15376 font-size: 10px; 15377 } 15378</style> 15379 15380 15381 15382 15383 15384 15385 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 15386 Discontinued 15387 </span> 15388 15389 15390 </div> 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 <div data-label-variant-id="43622259228719" class="hidden" > 15412 <style> 15413 collection-listing[data-view-mode="grid"] .tag-size-custom { 15414 font-size: 10px; 15415 } 15416</style> 15417 15418 15419 15420 15421 15422 15423 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 15424 Discontinued 15425 </span> 15426 15427 15428 </div> 15429 15430 15431 15432 </div> 15433 15434 </div> 15435 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 15436 <div class="flex flex-col md:justify-between flex-1 gap-2"> 15437 15438 15439 15440 15441 15442 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="0468001" data-bv-redirect-url="/products/24-inch-evolution-r-center-hole-only-pedestal-sink-top?variant=43622259163183" data-bv-seo="false"> </div> 15443 15444 15445 15446 <a 15447 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 15448 href="/products/24-inch-evolution-r-center-hole-only-pedestal-sink-top?variant=43622259163183"> 15449 24-Inch Evolution Center Hole Only Pedestal Sink Top 15450 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 15451 24-Inch Evolution Center Hole Only Pedestal Sink Top 15452 </span> 15453 </a> 15454 15455 15456 <div class="text-xs text-gray-700"> 15457 <span class="uppercase">Model: </span> 15458 <span >0468001</span> 15459 <span data-swatch-variant-sku class="hidden">0468001.020</span> 15460 </div> 15461 15462 15463 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 15464 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 15465 15466 15467 <span data-price-list="43622259163183" class="hidden">$108.55 </span> 15468
15469 <span data-price-list="43622259195951" class="hidden"> </span> 15470 15471 <span data-price-list="43622259228719" class="hidden"> </span> 15472 15473 15474 </span> 15475 15476 15477 15478 <product-swatch class="hidden" data-first-variant-selected="43622259163183" data-category-product="Washbasins"> 15479 15480 15481 <div class="swatch-option-js"> 15482 <input 15483 type="radio" 15484 name="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top" 15485 id="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-white" 15486 value="43622259163183" 15487 checked data-value="White" 15488 data-product-variant-title="White" 15489 data-product-title="24-Inch Evolution Center Hole Only Pedestal Sink Top" 15490 data-variant-available-in="\US\, \CA\" 15491 product-swatch-input 15492 > 15493 <label for="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-white"> 15494 White 15495 15496 15497 15498 15499 15500 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15501 15502 15503 </label> 15504 </div> 15505 15506 15507 <div class="swatch-option-js"> 15508 <input 15509 type="radio" 15510 name="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top" 15511 id="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-bone" 15512 value="43622259195951" 15513 data-value="Bone" 15514 data-product-variant-title="Bone" 15515 data-product-title="24-Inch Evolution Center Hole Only Pedestal Sink Top" 15516 data-variant-available-in="\US\" 15517 product-swatch-input 15518 > 15519 <label for="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-bone"> 15520 Bone 15521 15522 15523 15524 15525 15526 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_bone_small.png?v=6103344909817657990" alt="Bone" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15527 15528 15529 </label> 15530 </div> 15531 15532 15533 <div class="swatch-option-js"> 15534 <input 15535 type="radio" 15536 name="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top" 15537 id="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-linen" 15538 value="43622259228719" 15539 data-value="Linen" 15540 data-product-variant-title="Linen" 15541 data-product-title="24-Inch Evolution Center Hole Only Pedestal Sink Top" 15542 data-variant-available-in="\US\" 15543 product-swatch-input 15544 > 15545 <label for="bathroom-sinks-list--24-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-linen"> 15546 Linen 15547 15548 15549 15550 15551 15552 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_linen_small.png?v=3322418815731166398" alt="Linen" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15553 15554 15555 </label> 15556 </div> 15557 15558 </product-swatch> 15559 15560 15561 </div> 15562 </div> 15563 15564 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="24-inch-evolution-r-center-hole-only-pedestal-sink-top" data-is-sellable="43622259163183/false,43622259195951/false,43622259228719/false"> 15565 <form method="post" action="/cart/add" id="product_form_7932767961135" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 15566 <variant-selector class="hidden" data-handle="24-inch-evolution-r-center-hole-only-pedestal-sink-top"></variant-selector> 15567 <input type="hidden" name="qty" value="1" /> 15568 <addtocart-button data-handle="24-inch-evolution-r-center-hole-only-pedestal-sink-top" class="flex" data-build-text> 15569 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
15570 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 15571 </button> 15572 </addtocart-button> 15573 <input type="hidden" name="product-id" value="7932767961135" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 15574 </component-addtocart> 15575 15576 </div> 15577 </div> 15578 15579</product-card> 15580 15581 15582 </div>�<div class="swiper-slide !h-auto"> 15583 15584 <style> 15585 15586 @media screen and (max-width:768px){ 15587 15588 .price-finish-container { 15589 flex-direction: column; 15590 align-items: flex-start; 15591 gap: 0.5rem; 15592 } 15593 15594 collection-listing[data-view-mode="grid"] .text-custom-grid { 15595 font-size: 8px; 15596 } 15597 15598 15599 collection-listing[data-view-mode="list"] .product-card-image { 15600 padding-left: 4rem; 15601 padding-right: 4rem; 15602 } 15603 } 15604</style> 15605 15606 15607 15608 15609 15610 15611 15612<product-card data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" data-static class="block h-full 3xl:h-408 product-with-price " > 15613 15614 <div class="product-card-7932767043631 group card-blend-darken flex flex-col h-full"> 15615 15616 <div class="relative"> 15617 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination?variant=43622257688623" title="White"> 15618 <picture> 15619 <source 15620 type="image/webp" 15621 srcset=" 15622 //www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=320 320w, 15623 //www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=480 480w, 15624 //www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=720 720w 15625 " 15626 sizes="(max-width: 768px) 100vw, 480px"> 15627 15628 <img 15629 src="//www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=480" 15630 srcset=" 15631 //www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=320 320w, 15632 //www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=480 480w, 15633 //www.americanstandard-us.com/cdn/shop/files/28943_0467100.020_1_0_CDNwebp.webp?v=1790745254&width=720 720w 15634 " 15635 sizes="(max-width: 768px) 100vw, 480px" 15636 width="480" height="480" 15637 alt="22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" 15638 class="w-full block " 15639 loading="lazy" 15640 decoding="async"> 15641 </picture> 15642 15643 15644 <img 15645 width="480" 15646 height="480" 15647 src="//www.americanstandard-us.com/cdn/shop/files/28945_0467100.020_2_0_CDNwebp.webp?v=1790745254&width=480" 15648 alt="22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" 15649 class="w-full !hidden " 15650 loading="lazy" 15651 decoding="async" 15652 > 15653 15654 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery 22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 15655 15656 </a> 15657 15658 15659 <compared-products-add-button 15660 data-add-compare-product-btn 15661 data-product-is-sellable="false" 15662 data-product-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" 15663 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 15664 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 15665 role="button" 15666 aria-label="Compare 22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" 15667 tabindex="0" data-is-sellable="43622257688623/false,43622257721391/false,43622257754159/false" >
15668 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 15669 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 15670 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 15671</svg> 15672 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 15673 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 15674</svg> 15675 </compared-products-add-button> 15676 15677 15678 15679 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 <div data-label-variant-id="43622257688623" > 15699 <style> 15700 collection-listing[data-view-mode="grid"] .tag-size-custom { 15701 font-size: 10px; 15702 } 15703</style> 15704 15705 15706 15707 15708 15709 15710 15711 </div> 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 <div data-label-variant-id="43622257721391" class="hidden" > 15733 <style> 15734 collection-listing[data-view-mode="grid"] .tag-size-custom { 15735 font-size: 10px; 15736 } 15737</style> 15738 15739 15740 15741 15742 15743 15744 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 15745 Discontinued 15746 </span> 15747 15748 15749 </div> 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 <div data-label-variant-id="43622257754159" class="hidden" > 15771 <style> 15772 collection-listing[data-view-mode="grid"] .tag-size-custom { 15773 font-size: 10px; 15774 } 15775</style> 15776 15777 15778 15779 15780 15781 15782 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 15783 Discontinued 15784 </span> 15785 15786 15787 </div> 15788 15789 15790 15791 </div> 15792 15793 </div> 15794 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 15795 <div class="flex flex-col md:justify-between flex-1 gap-2"> 15796 15797 15798 15799 15800 15801 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="0467100" data-bv-redirect-url="/products/22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination?variant=43622257688623" data-bv-seo="false"> </div> 15802 15803 15804 15805 <a 15806 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 15807 href="/products/22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination?variant=43622257688623"> 15808 22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination 15809 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 15810 22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination 15811 </span> 15812 </a> 15813 15814 15815 <div class="text-xs text-gray-700"> 15816 <span class="uppercase">Model: </span> 15817 <span >0467100</span> 15818 <span data-swatch-variant-sku class="hidden">0467100.020</span> 15819 </div> 15820 15821 15822 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 15823 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 15824 15825 15826 <span data-price-list="43622257688623" class="hidden">$165.75 </span> 15827
15828 <span data-price-list="43622257721391" class="hidden"> </span> 15829 15830 <span data-price-list="43622257754159" class="hidden"> </span> 15831 15832 15833 </span> 15834 15835 15836 15837 <product-swatch class="hidden" data-first-variant-selected="43622257688623" data-category-product="Washbasins"> 15838 15839 15840 <div class="swatch-option-js"> 15841 <input 15842 type="radio" 15843 name="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" 15844 id="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination-Finish-white" 15845 value="43622257688623" 15846 checked data-value="White" 15847 data-product-variant-title="White" 15848 data-product-title="22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" 15849 data-variant-available-in="\US\, \CA\" 15850 product-swatch-input 15851 > 15852 <label for="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination-Finish-white"> 15853 White 15854 15855 15856 15857 15858 15859 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15860 15861 15862 </label> 15863 </div> 15864 15865 15866 <div class="swatch-option-js"> 15867 <input 15868 type="radio" 15869 name="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" 15870 id="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination-Finish-bone" 15871 value="43622257721391" 15872 data-value="Bone" 15873 data-product-variant-title="Bone" 15874 data-product-title="22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" 15875 data-variant-available-in="\US\" 15876 product-swatch-input 15877 > 15878 <label for="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination-Finish-bone"> 15879 Bone 15880 15881 15882 15883 15884 15885 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_bone_small.png?v=6103344909817657990" alt="Bone" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15886 15887 15888 </label> 15889 </div> 15890 15891 15892 <div class="swatch-option-js"> 15893 <input 15894 type="radio" 15895 name="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" 15896 id="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination-Finish-linen" 15897 value="43622257754159" 15898 data-value="Linen" 15899 data-product-variant-title="Linen" 15900 data-product-title="22-Inch Evolution Center Hole Only Pedestal Sink Top and Leg Combination" 15901 data-variant-available-in="\US\" 15902 product-swatch-input 15903 > 15904 <label for="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination-Finish-linen"> 15905 Linen 15906 15907 15908 15909 15910 15911 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_linen_small.png?v=3322418815731166398" alt="Linen" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 15912 15913 15914 </label> 15915 </div> 15916 15917 </product-swatch> 15918 15919 15920 </div> 15921 </div> 15922 15923 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" data-is-sellable="43622257688623/false,43622257721391/false,43622257754159/false"> 15924 <form method="post" action="/cart/add" id="product_form_7932767043631" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 15925 <variant-selector class="hidden" data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination"></variant-selector> 15926 <input type="hidden" name="qty" value="1" /> 15927 <addtocart-button data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top-and-leg-combination" class="flex" data-build-text> 15928 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
15929 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 15930 </button> 15931 </addtocart-button> 15932 <input type="hidden" name="product-id" value="7932767043631" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 15933 </component-addtocart> 15934 15935 </div> 15936 </div> 15937 15938</product-card> 15939 15940 15941 </div>�<div class="swiper-slide !h-auto"> 15942 15943 <style> 15944 15945 @media screen and (max-width:768px){ 15946 15947 .price-finish-container { 15948 flex-direction: column; 15949 align-items: flex-start; 15950 gap: 0.5rem; 15951 } 15952 15953 collection-listing[data-view-mode="grid"] .text-custom-grid { 15954 font-size: 8px; 15955 } 15956 15957 15958 collection-listing[data-view-mode="list"] .product-card-image { 15959 padding-left: 4rem; 15960 padding-right: 4rem; 15961 } 15962 } 15963</style> 15964 15965 15966 15967 15968 15969 15970 15971<product-card data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top" data-static class="block h-full 3xl:h-408 product-with-price " > 15972 15973 <div class="product-card-7932765536303 group card-blend-darken flex flex-col h-full"> 15974 15975 <div class="relative"> 15976 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/22-inch-evolution-r-center-hole-only-pedestal-sink-top?variant=43622255034415" title="White"> 15977 <picture> 15978 <source 15979 type="image/webp" 15980 srcset=" 15981 //www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=320 320w, 15982 //www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=480 480w, 15983 //www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=720 720w 15984 " 15985 sizes="(max-width: 768px) 100vw, 480px"> 15986 15987 <img 15988 src="//www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=480" 15989 srcset=" 15990 //www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=320 320w, 15991 //www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=480 480w, 15992 //www.americanstandard-us.com/cdn/shop/files/28924_0467001.020_2_0_CDNwebp.webp?v=1790745221&width=720 720w 15993 " 15994 sizes="(max-width: 768px) 100vw, 480px" 15995 width="480" height="480" 15996 alt="22-Inch Evolution Center Hole Only Pedestal Sink Top" 15997 class="w-full block " 15998 loading="lazy" 15999 decoding="async"> 16000 </picture> 16001 16002 16003 <img 16004 width="480" 16005 height="480" 16006 src="//www.americanstandard-us.com/cdn/shop/files/28925_0467001.020_1_0_CDNwebp.webp?v=1790745221&width=480" 16007 alt="22-Inch Evolution Center Hole Only Pedestal Sink Top" 16008 class="w-full !hidden " 16009 loading="lazy" 16010 decoding="async" 16011 > 16012 16013 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery 22-Inch Evolution Center Hole Only Pedestal Sink Top" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 16014 16015 </a> 16016 16017 16018 <compared-products-add-button 16019 data-add-compare-product-btn 16020 data-product-is-sellable="false" 16021 data-product-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top" 16022 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 16023 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 16024 role="button" 16025 aria-label="Compare 22-Inch Evolution Center Hole Only Pedestal Sink Top" 16026 tabindex="0" data-is-sellable="43622255034415/false,43622255067183/false,43622255099951/false" >
16027 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 16028 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16029 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 16030</svg> 16031 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16032 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 16033</svg> 16034 </compared-products-add-button> 16035 16036 16037 16038 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 <div data-label-variant-id="43622255034415" > 16058 <style> 16059 collection-listing[data-view-mode="grid"] .tag-size-custom { 16060 font-size: 10px; 16061 } 16062</style> 16063 16064 16065 16066 16067 16068 16069 16070 </div> 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 <div data-label-variant-id="43622255067183" class="hidden" > 16092 <style> 16093 collection-listing[data-view-mode="grid"] .tag-size-custom { 16094 font-size: 10px; 16095 } 16096</style> 16097 16098 16099 16100 16101 16102 16103 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 16104 Discontinued 16105 </span> 16106 16107 16108 </div> 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 <div data-label-variant-id="43622255099951" class="hidden" > 16130 <style> 16131 collection-listing[data-view-mode="grid"] .tag-size-custom { 16132 font-size: 10px; 16133 } 16134</style> 16135 16136 16137 16138 16139 16140 16141 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 16142 Discontinued 16143 </span> 16144 16145 16146 </div> 16147 16148 16149 16150 </div> 16151 16152 </div> 16153 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 16154 <div class="flex flex-col md:justify-between flex-1 gap-2"> 16155 16156 16157 16158 16159 16160 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="0467001" data-bv-redirect-url="/products/22-inch-evolution-r-center-hole-only-pedestal-sink-top?variant=43622255034415" data-bv-seo="false"> </div> 16161 16162 16163 16164 <a 16165 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 16166 href="/products/22-inch-evolution-r-center-hole-only-pedestal-sink-top?variant=43622255034415"> 16167 22-Inch Evolution Center Hole Only Pedestal Sink Top 16168 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 16169 22-Inch Evolution Center Hole Only Pedestal Sink Top 16170 </span> 16171 </a> 16172 16173 16174 <div class="text-xs text-gray-700"> 16175 <span class="uppercase">Model: </span> 16176 <span >0467001</span> 16177 <span data-swatch-variant-sku class="hidden">0467001.020</span> 16178 </div> 16179 16180 16181 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 16182 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 16183 16184 16185 <span data-price-list="43622255034415" class="hidden">$99.45 </span> 16186
16187 <span data-price-list="43622255067183" class="hidden"> </span> 16188 16189 <span data-price-list="43622255099951" class="hidden"> </span> 16190 16191 16192 </span> 16193 16194 16195 16196 <product-swatch class="hidden" data-first-variant-selected="43622255034415" data-category-product="Washbasins"> 16197 16198 16199 <div class="swatch-option-js"> 16200 <input 16201 type="radio" 16202 name="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top" 16203 id="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-white" 16204 value="43622255034415" 16205 checked data-value="White" 16206 data-product-variant-title="White" 16207 data-product-title="22-Inch Evolution Center Hole Only Pedestal Sink Top" 16208 data-variant-available-in="\US\, \CA\" 16209 product-swatch-input 16210 > 16211 <label for="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-white"> 16212 White 16213 16214 16215 16216 16217 16218 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 16219 16220 16221 </label> 16222 </div> 16223 16224 16225 <div class="swatch-option-js"> 16226 <input 16227 type="radio" 16228 name="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top" 16229 id="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-bone" 16230 value="43622255067183" 16231 data-value="Bone" 16232 data-product-variant-title="Bone" 16233 data-product-title="22-Inch Evolution Center Hole Only Pedestal Sink Top" 16234 data-variant-available-in="\US\" 16235 product-swatch-input 16236 > 16237 <label for="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-bone"> 16238 Bone 16239 16240 16241 16242 16243 16244 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_bone_small.png?v=6103344909817657990" alt="Bone" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 16245 16246 16247 </label> 16248 </div> 16249 16250 16251 <div class="swatch-option-js"> 16252 <input 16253 type="radio" 16254 name="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top" 16255 id="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-linen" 16256 value="43622255099951" 16257 data-value="Linen" 16258 data-product-variant-title="Linen" 16259 data-product-title="22-Inch Evolution Center Hole Only Pedestal Sink Top" 16260 data-variant-available-in="\US\" 16261 product-swatch-input 16262 > 16263 <label for="bathroom-sinks-list--22-inch-evolution-r-center-hole-only-pedestal-sink-top-Finish-linen"> 16264 Linen 16265 16266 16267 16268 16269 16270 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_linen_small.png?v=3322418815731166398" alt="Linen" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 16271 16272 16273 </label> 16274 </div> 16275 16276 </product-swatch> 16277 16278 16279 </div> 16280 </div> 16281 16282 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top" data-is-sellable="43622255034415/false,43622255067183/false,43622255099951/false"> 16283 <form method="post" action="/cart/add" id="product_form_7932765536303" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 16284 <variant-selector class="hidden" data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top"></variant-selector> 16285 <input type="hidden" name="qty" value="1" /> 16286 <addtocart-button data-handle="22-inch-evolution-r-center-hole-only-pedestal-sink-top" class="flex" data-build-text> 16287 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
16288 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 16289 </button> 16290 </addtocart-button> 16291 <input type="hidden" name="product-id" value="7932765536303" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 16292 </component-addtocart> 16293 16294 </div> 16295 </div> 16296 16297</product-card> 16298 16299 16300 </div>�<div class="swiper-slide !h-auto"> 16301 16302 <style> 16303 16304 @media screen and (max-width:768px){ 16305 16306 .price-finish-container { 16307 flex-direction: column; 16308 align-items: flex-start; 16309 gap: 0.5rem; 16310 } 16311 16312 collection-listing[data-view-mode="grid"] .text-custom-grid { 16313 font-size: 8px; 16314 } 16315 16316 16317 collection-listing[data-view-mode="list"] .product-card-image { 16318 padding-left: 4rem; 16319 padding-right: 4rem; 16320 } 16321 } 16322</style> 16323 16324 16325 16326 16327 16328 16329 16330<product-card data-handle="studio-r-under-counter-sink-with-glazed-underside" data-static class="block h-full 3xl:h-408 product-with-price " > 16331 16332 <div class="product-card-7932766879791 group card-blend-darken flex flex-col h-full"> 16333 16334 <div class="relative"> 16335 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-under-counter-sink-with-glazed-underside?variant=43622257131567" title="White"> 16336 <picture> 16337 <source 16338 type="image/webp" 16339 srcset=" 16340 //www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=320 320w, 16341 //www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=480 480w, 16342 //www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=720 720w 16343 " 16344 sizes="(max-width: 768px) 100vw, 480px"> 16345 16346 <img 16347 src="//www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=480" 16348 srcset=" 16349 //www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=320 320w, 16350 //www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=480 480w, 16351 //www.americanstandard-us.com/cdn/shop/files/244874_0614300.020_CDNwebp.webp?v=1790745698&width=720 720w 16352 " 16353 sizes="(max-width: 768px) 100vw, 480px" 16354 width="480" height="480" 16355 alt="Studio® Under Counter Sink With Glazed Underside" 16356 class="w-full block " 16357 loading="lazy" 16358 decoding="async"> 16359 </picture> 16360 16361 16362 <img 16363 width="480" 16364 height="480" 16365 src="//www.americanstandard-us.com/cdn/shop/files/244875_0614300.020_1_CDNwebp.webp?v=1790745697&width=480" 16366 alt="Studio® Under Counter Sink With Glazed Underside" 16367 class="w-full !hidden " 16368 loading="lazy" 16369 decoding="async" 16370 > 16371 16372 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® Under Counter Sink With Glazed Underside" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 16373 16374 </a> 16375 16376 16377 <compared-products-add-button 16378 data-add-compare-product-btn 16379 data-product-is-sellable="false" 16380 data-product-handle="studio-r-under-counter-sink-with-glazed-underside" 16381 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 16382 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 16383 role="button" 16384 aria-label="Compare Studio® Under Counter Sink With Glazed Underside" 16385 tabindex="0" data-is-sellable="43622257131567/false" >
16386 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 16387 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16388 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 16389</svg> 16390 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16391 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 16392</svg> 16393 </compared-products-add-button> 16394 16395 16396 16397 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 <div data-label-variant-id="43622257131567" > 16417 <style> 16418 collection-listing[data-view-mode="grid"] .tag-size-custom { 16419 font-size: 10px; 16420 } 16421</style> 16422 16423 16424 16425 16426 16427 16428 16429 </div> 16430 16431 16432 16433 </div> 16434 16435 </div> 16436 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 16437 <div class="flex flex-col md:justify-between flex-1 gap-2"> 16438 16439 16440 16441 16442 16443 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="0614300" data-bv-redirect-url="/products/studio-r-under-counter-sink-with-glazed-underside?variant=43622257131567" data-bv-seo="false"> </div> 16444 16445 16446 16447 <a 16448 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 16449 href="/products/studio-r-under-counter-sink-with-glazed-underside?variant=43622257131567"> 16450 Studio® Under Counter Sink With Glazed Underside 16451 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 16452 Studio® Under Counter Sink With Glazed Underside 16453 </span> 16454 </a> 16455 16456 16457 <div class="text-xs text-gray-700"> 16458 <span class="uppercase">Model: </span> 16459 <span >0614300</span> 16460 <span data-swatch-variant-sku class="hidden">0614300.020</span> 16461 </div> 16462 16463 16464 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 16465 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 16466 16467 16468 <span data-price-list="43622257131567" class="hidden">$238.55 </span> 16469 16470 16471 </span> 16472 16473 16474 16475 <product-swatch class="hidden" data-first-variant-selected="43622257131567" data-category-product="Washbasins"> 16476 16477 16478 <div class="swatch-option-js"> 16479 <input 16480 type="radio" 16481 name="bathroom-sinks-list--studio-r-under-counter-sink-with-glazed-underside" 16482 id="bathroom-sinks-list--studio-r-under-counter-sink-with-glazed-underside-Finish-white" 16483 value="43622257131567" 16484 checked data-value="White" 16485 data-product-variant-title="White" 16486 data-product-title="Studio® Under Counter Sink With Glazed Underside" 16487 data-variant-available-in="\US\, \CA\" 16488 product-swatch-input 16489 > 16490 <label for="bathroom-sinks-list--studio-r-under-counter-sink-with-glazed-underside-Finish-white"> 16491 White 16492 16493 16494 16495 16496 16497 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_white_small.png?v=4787816654571174061" alt="White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 16498 16499 16500 </label> 16501 </div> 16502 16503 </product-swatch> 16504 16505 16506 </div> 16507 </div> 16508 16509 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-under-counter-sink-with-glazed-underside" data-is-sellable="43622257131567/false"> 16510 <form method="post" action="/cart/add" id="product_form_7932766879791" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 16511 <variant-selector class="hidden" data-handle="studio-r-under-counter-sink-with-glazed-underside"></variant-selector> 16512 <input type="hidden" name="qty" value="1" /> 16513 <addtocart-button data-handle="studio-r-under-counter-sink-with-glazed-underside" class="flex" data-build-text> 16514 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
16515 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 16516 </button> 16517 </addtocart-button> 16518 <input type="hidden" name="product-id" value="7932766879791" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 16519 </component-addtocart> 16520 16521 </div> 16522 </div> 16523 16524</product-card> 16525 16526 16527 </div> 16528 </div> 16529 16530 16531 <button type="button" class="swiper-example-button-prev default-button-prev !top-[42%] !left-4 lg:!left-0" aria-label="Previous slide"></button> 16532 <button type="button" class="swiper-example-button-next default-button-next !top-[42%] !right-4 lg:!right-0" aria-label="Next slide"></button> 16533 16534 </swiper-slider> 16535 </div> 16536 16537 <div class="text-center m-4"> 16538 16539 16540 <a 16541 href="" 16542 class="btn " 16543 > 16544 View All 16545 </a> 16546 </div> 16547 16548 </div> 16549 16550 <div 16551 id="content-template--19594871701551__collection_tabs_Y3ReVU-4" 16552 class="tabs__content" 16553 data-tab-content-index="4" 16554 role="tabpanel" 16555 aria-labelledby="tab-template--19594871701551__collection_tabs_Y3ReVU-4" 16556 hidden 16557 > 16558 <div class="relative swiper-slider-wrapper"> 16559 <swiper-slider 16560 class="swiper w-full block" 16561 data-options='{ 16562 "spaceBetween": 12, 16563 "slidesPerView": 1.2, 16564 "centeredSlides": true, 16565 "allowTouchMove": true, 16566 "breakpoints": { 16567 "640": { 16568 "slidesPerView": 2, 16569 "spaceBetween": 12, 16570 "centeredSlides": false 16571 }, 16572 "768": { 16573 "slidesPerView": 3, 16574 "spaceBetween": 12, 16575 "centeredSlides": false, 16576 "allowTouchMove": false 16577 }, 16578 "1024": { 16579 "slidesPerView": 4, 16580 "spaceBetween": 12, 16581 "centeredSlides": false, 16582 "allowTouchMove": false 16583 }, 16584 "1280": { 16585 "slidesPerView": 4, 16586 "spaceBetween": 12, 16587 "centeredSlides": false, 16588 "allowTouchMove": false 16589 }, 16590 "1920": { 16591 "slidesPerView": 4, 16592 "spaceBetween": 12, 16593 "centeredSlides": false, 16594 "allowTouchMove": false 16595 } 16596 } 16597 }' 16598 data-view-mobile="1.1" 16599 data-view-mobile-extra="2" 16600 data-view-tablet="3" 16601 data-view-tablet-extra="4" 16602 data-view-desktop="4" 16603 data-next-button-class=".swiper-example-button-next" 16604 data-prev-button-class=".swiper-example-button-prev" 16605 > 16606 16607 <div class="swiper-wrapper"> 16608 16609 �<div class="swiper-slide !h-auto"> 16610 16611 <style> 16612 16613 @media screen and (max-width:768px){ 16614 16615 .price-finish-container { 16616 flex-direction: column; 16617 align-items: flex-start; 16618 gap: 0.5rem; 16619 } 16620 16621 collection-listing[data-view-mode="grid"] .text-custom-grid { 16622 font-size: 8px; 16623 } 16624 16625 16626 collection-listing[data-view-mode="list"] .product-card-image { 16627 padding-left: 4rem; 16628 padding-right: 4rem; 16629 } 16630 } 16631</style> 16632 16633 16634 16635 16636 16637 16638 16639<product-card data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 16640 16641 <div class="product-card-7932855418927 group card-blend-darken flex flex-col h-full"> 16642 16643 <div class="relative"> 16644 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink?variant=43622436667439" title="Brilliant White"> 16645 <picture> 16646 <source 16647 type="image/webp" 16648 srcset=" 16649 //www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=320 320w, 16650 //www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=480 480w, 16651 //www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=720 720w 16652 " 16653 sizes="(max-width: 768px) 100vw, 480px"> 16654 16655 <img 16656 src="//www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=480" 16657 srcset=" 16658 //www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=320 320w, 16659 //www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=480 480w, 16660 //www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=720 720w 16661 " 16662 sizes="(max-width: 768px) 100vw, 480px" 16663 width="480" height="480" 16664 alt="Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink" 16665 class="w-full block " 16666 loading="lazy" 16667 decoding="async"> 16668 </picture> 16669 16670 16671 <img 16672 width="480" 16673 height="480" 16674 src="//www.americanstandard-us.com/cdn/shop/files/62719_77SB30190308_0_CDNwebp.webp?v=1790751793&width=480" 16675 alt="Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink" 16676 class="w-full !hidden " 16677 loading="lazy" 16678 decoding="async" 16679 > 16680 16681 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 16682 16683 </a> 16684 16685 16686 <compared-products-add-button 16687 data-add-compare-product-btn 16688 data-product-is-sellable="true" 16689 data-product-handle="delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink" 16690 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 16691 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 16692 role="button" 16693 aria-label="Compare Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink" 16694 tabindex="0" data-is-sellable="43622436667439/true" >
16695 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 16696 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16697 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 16698</svg> 16699 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16700 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 16701</svg> 16702 </compared-products-add-button> 16703 16704 16705 16706 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 <div data-label-variant-id="43622436667439" > 16726 <style> 16727 collection-listing[data-view-mode="grid"] .tag-size-custom { 16728 font-size: 10px; 16729 } 16730</style> 16731 16732 16733 16734 16735 16736 16737 16738 </div> 16739 16740 16741 16742 </div> 16743 16744 </div> 16745 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 16746 <div class="flex flex-col md:justify-between flex-1 gap-2"> 16747 16748 16749 16750 16751 16752 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="77SB30190" data-bv-redirect-url="/products/delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink?variant=43622436667439" data-bv-seo="false"> </div> 16753 16754 16755 16756 <a 16757 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 16758 href="/products/delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink?variant=43622436667439"> 16759 Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink 16760 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 16761 Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink 16762 </span> 16763 </a> 16764 16765 16766 <div class="text-xs text-gray-700"> 16767 <span class="uppercase">Model: </span> 16768 <span >77SB30190</span> 16769 <span data-swatch-variant-sku class="hidden">77SB30190.308</span> 16770 </div> 16771 16772 16773 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 16774 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 16775 16776 16777 <span data-price-list="43622436667439" class="hidden">$743.60 </span> 16778 16779 16780 </span> 16781 16782 16783 16784 <product-swatch class="hidden" data-first-variant-selected="43622436667439" data-category-product="Kitchen Sinks"> 16785 16786 16787 <div class="swatch-option-js"> 16788 <input 16789 type="radio" 16790 name="kitchen-sinks-list--delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink" 16791 id="kitchen-sinks-list--delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink-Finish-brilliant-white" 16792 value="43622436667439" 16793 checked data-value="Brilliant White" 16794 data-product-variant-title="Brilliant White" 16795 data-product-title="Delancey 30 x 19-Inch Cast Iron Undermount Single-Bowl Kitchen Sink" 16796 data-variant-available-in="\US\" 16797 product-swatch-input 16798 > 16799 <label for="kitchen-sinks-list--delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink-Finish-brilliant-white"> 16800 Brilliant White 16801 16802 16803 16804 16805 16806 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brilliant-white_small.png?v=9607132605231733084" alt="Brilliant White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 16807 16808 16809 </label> 16810 </div> 16811 16812 </product-swatch> 16813 16814 16815 </div> 16816 </div> 16817 16818 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink" data-is-sellable="43622436667439/true"> 16819 <form method="post" action="/cart/add" id="product_form_7932855418927" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 16820 <variant-selector class="hidden" data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink"></variant-selector> 16821 <input type="hidden" name="qty" value="1" /> 16822 <addtocart-button data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-single-bowl-kitchen-sink" class="flex" data-build-text> 16823 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
16824 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 16825 </button> 16826 </addtocart-button> 16827 <input type="hidden" name="product-id" value="7932855418927" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 16828 </component-addtocart> 16829 16830 </div> 16831 </div> 16832 16833</product-card> 16834 16835 16836 </div>�<div class="swiper-slide !h-auto"> 16837 16838 <style> 16839 16840 @media screen and (max-width:768px){ 16841 16842 .price-finish-container { 16843 flex-direction: column; 16844 align-items: flex-start; 16845 gap: 0.5rem; 16846 } 16847 16848 collection-listing[data-view-mode="grid"] .text-custom-grid { 16849 font-size: 8px; 16850 } 16851 16852 16853 collection-listing[data-view-mode="list"] .product-card-image { 16854 padding-left: 4rem; 16855 padding-right: 4rem; 16856 } 16857 } 16858</style> 16859 16860 16861 16862 16863 16864 16865 16866<product-card data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 16867 16868 <div class="product-card-7932852731951 group card-blend-darken flex flex-col h-full"> 16869 16870 <div class="relative"> 16871 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink?variant=43622433620015" title="Brilliant White"> 16872 <picture> 16873 <source 16874 type="image/webp" 16875 srcset=" 16876 //www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=320 320w, 16877 //www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=480 480w, 16878 //www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=720 720w 16879 " 16880 sizes="(max-width: 768px) 100vw, 480px"> 16881 16882 <img 16883 src="//www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=480" 16884 srcset=" 16885 //www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=320 320w, 16886 //www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=480 480w, 16887 //www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=720 720w 16888 " 16889 sizes="(max-width: 768px) 100vw, 480px" 16890 width="480" height="480" 16891 alt="Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink" 16892 class="w-full block " 16893 loading="lazy" 16894 decoding="async"> 16895 </picture> 16896 16897 16898 <img 16899 width="480" 16900 height="480" 16901 src="//www.americanstandard-us.com/cdn/shop/files/62665_77DB30190308_1_0_CDNwebp.webp?v=1790751750&width=480" 16902 alt="Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink" 16903 class="w-full !hidden " 16904 loading="lazy" 16905 decoding="async" 16906 > 16907 16908 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 16909 16910 </a> 16911 16912 16913 <compared-products-add-button 16914 data-add-compare-product-btn 16915 data-product-is-sellable="true" 16916 data-product-handle="delancey-r-30-x-19-inch-cast-iron-undermount-d
16916ouble-bowl-kitchen-sink" 16917 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 16918 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 16919 role="button" 16920 aria-label="Compare Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink" 16921 tabindex="0" data-is-sellable="43622433620015/true" > 16922 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 16923 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16924 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 16925</svg> 16926 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 16927 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 16928</svg> 16929 </compared-products-add-button> 16930 16931 16932 16933 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 <div data-label-variant-id="43622433620015" > 16953 <style> 16954 collection-listing[data-view-mode="grid"] .tag-size-custom { 16955 font-size: 10px; 16956 } 16957</style> 16958 16959 16960 16961 16962 16963 16964 16965 </div> 16966 16967 16968 16969 </div> 16970 16971 </div> 16972 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 16973 <div class="flex flex-col md:justify-between flex-1 gap-2"> 16974 16975 16976 16977 16978 16979 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="77DB30190" data-bv-redirect-url="/products/delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink?variant=43622433620015" data-bv-seo="false"> </div> 16980 16981 16982 16983 <a 16984 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 16985 href="/products/delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink?variant=43622433620015"> 16986 Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink 16987 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 16988 Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink 16989 </span> 16990 </a> 16991 16992 16993 <div class="text-xs text-gray-700"> 16994 <span class="uppercase">Model: </span> 16995 <span >77DB30190</span> 16996 <span data-swatch-variant-sku class="hidden">77DB30190.308</span> 16997 </div> 16998 16999 17000 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 17001 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 17002 17003 17004 <span data-price-list="43622433620015" class="hidden">$750.75 </span> 17005 17006 17007 </span> 17008 17009 17010 17011 <product-swatch class="hidden" data-first-variant-selected="43622433620015" data-category-product="Kitchen Sinks"> 17012 17013 17014 <div class="swatch-option-js"> 17015 <input 17016 type="radio" 17017 name="kitchen-sinks-list--delancey-r-30-x-19-inch-cast-iron-undermount-d
17017ouble-bowl-kitchen-sink" 17018 id="kitchen-sinks-list--delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink-Finish-brilliant-white" 17019 value="43622433620015" 17020 checked data-value="Brilliant White" 17021 data-product-variant-title="Brilliant White" 17022 data-product-title="Delancey 30 x 19-Inch Cast Iron Undermount Double-Bowl Kitchen Sink" 17023 data-variant-available-in="\US\" 17024 product-swatch-input 17025 > 17026 <label for="kitchen-sinks-list--delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink-Finish-brilliant-white"> 17027 Brilliant White 17028 17029 17030 17031 17032 17033 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brilliant-white_small.png?v=9607132605231733084" alt="Brilliant White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 17034 17035 17036 </label> 17037 </div> 17038 17039 </product-swatch> 17040 17041 17042 </div> 17043 </div> 17044 17045 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink" data-is-sellable="43622433620015/true"> 17046 <form method="post" action="/cart/add" id="product_form_7932852731951" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 17047 <variant-selector class="hidden" data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink"></variant-selector> 17048 <input type="hidden" name="qty" value="1" /> 17049 <addtocart-button data-handle="delancey-r-30-x-19-inch-cast-iron-undermount-double-bowl-kitchen-sink" class="flex" data-build-text> 17050 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled> 17051 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 17052 </button> 17053 </addtocart-button> 17054 <input type="hidden" name="product-id" value="7932852731951" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 17055 </component-addtocart> 17056 17057 </div> 17058 </div> 17059 17060</product-card> 17061 17062 17063 </div>�<div class="swiper-slide !h-auto"> 17064 17065 <style> 17066 17067 @media screen and (max-width:768px){ 17068 17069 .price-finish-container { 17070 flex-direction: column; 17071 align-items: flex-start; 17072 gap: 0.5rem; 17073 } 17074 17075 collection-listing[data-view-mode="grid"] .text-custom-grid { 17076 font-size: 8px; 17077 } 17078 17079 17080 collection-listing[data-view-mode="list"] .product-card-image { 17081 padding-left: 4rem; 17082 padding-right: 4rem; 17083 } 17084 } 17085</style> 17086 17087 17088 17089 17090 17091 17092 17093<product-card data-handle="edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 17094 17095 <div class="product-card-7932854665263 group card-blend-darken flex flex-col h-full"> 17096 17097 <div class="relative"> 17098 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink?variant=43622435848239" title="Stainless Steel"> 17099 <picture> 17100 <source 17101 type="image/webp" 17102 srcset=" 17103 //www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=320 320w, 17104 //www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=480 480w, 17105 //www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=720 720w 17106 " 17107 sizes="(max-width: 768px) 100vw, 480px"> 17108 17109 <img 17110 src="//www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=480" 17111 srcset=" 17112 //www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=320 320w, 17113 //www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=480 480w, 17114 //www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=720 720w 17115 " 17116 sizes="(max-width: 768px) 100vw, 480px" 17117 width="480" height="480" 17118 alt="Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17119 class="w-full block " 17120 loading="lazy" 17121 decoding="async"> 17122 </picture> 17123 17124 17125 <img 17126 width="480" 17127 height="480" 17128 src="//www.americanstandard-us.com/cdn/shop/files/48038_18SB6332211075_0_CDNwebp.webp?v=1790746348&width=480" 17129 alt="Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17130 class="w-full !hidden " 17131 loading="lazy" 17132 decoding="async" 17133 > 17134 17135 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 17136 17137 </a> 17138 17139 17140 <compared-products-add-button 17141 data-add-compare-product-btn 17142 data-product-is-sellable="true" 17143 data-product-handle="edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" 17144 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 17145 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 17146 role="button" 17147 aria-label="Compare Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17148 tabindex="0" data-is-sellable="43622435848239/true" >
17149 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 17150 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17151 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 17152</svg> 17153 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17154 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 17155</svg> 17156 </compared-products-add-button> 17157 17158 17159 17160 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 <div data-label-variant-id="43622435848239" > 17180 <style> 17181 collection-listing[data-view-mode="grid"] .tag-size-custom { 17182 font-size: 10px; 17183 } 17184</style> 17185 17186 17187 17188 17189 17190 17191 17192 </div> 17193 17194 17195 17196 </div> 17197 17198 </div> 17199 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 17200 <div class="flex flex-col md:justify-between flex-1 gap-2"> 17201 17202 17203 17204 17205 17206 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="18SB6332211" data-bv-redirect-url="/products/edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink?variant=43622435848239" data-bv-seo="false"> </div> 17207 17208 17209 17210 <a 17211 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 17212 href="/products/edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink?variant=43622435848239"> 17213 Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink 17214 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 17215 Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink 17216 </span> 17217 </a> 17218 17219 17220 <div class="text-xs text-gray-700"> 17221 <span class="uppercase">Model: </span> 17222 <span >18SB6332211</span> 17223 <span data-swatch-variant-sku class="hidden">18SB6332211.075</span> 17224 </div> 17225 17226 17227 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 17228 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 17229 17230 17231 <span data-price-list="43622435848239" class="hidden">$629.20 </span> 17232 17233 17234 </span> 17235 17236 17237 17238 <product-swatch class="hidden" data-first-variant-selected="43622435848239" data-category-product="Kitchen Sinks"> 17239 17240 17241 <div class="swatch-option-js"> 17242 <input 17243 type="radio" 17244 name="kitchen-sinks-list--edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" 17245 id="kitchen-sinks-list--edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink-Finish-stainless-steel" 17246 value="43622435848239" 17247 checked data-value="Stainless Steel" 17248 data-product-variant-title="Stainless Steel" 17249 data-product-title="Edgewater® 33 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17250 data-variant-available-in="\US\" 17251 product-swatch-input 17252 > 17253 <label for="kitchen-sinks-list--edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink-Finish-stainless-steel"> 17254 Stainless Steel 17255 17256 17257 17258 17259 17260 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 17261 17262 17263 </label> 17264 </div> 17265 17266 </product-swatch> 17267 17268 17269 </div> 17270 </div> 17271 17272 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" data-is-sellable="43622435848239/true"> 17273 <form method="post" action="/cart/add" id="product_form_7932854665263" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 17274 <variant-selector class="hidden" data-handle="edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink"></variant-selector> 17275 <input type="hidden" name="qty" value="1" /> 17276 <addtocart-button data-handle="edgewater-r-33-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" class="flex" data-build-text> 17277 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
17278 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 17279 </button> 17280 </addtocart-button> 17281 <input type="hidden" name="product-id" value="7932854665263" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 17282 </component-addtocart> 17283 17284 </div> 17285 </div> 17286 17287</product-card> 17288 17289 17290 </div>�<div class="swiper-slide !h-auto"> 17291 17292 <style> 17293 17294 @media screen and (max-width:768px){ 17295 17296 .price-finish-container { 17297 flex-direction: column; 17298 align-items: flex-start; 17299 gap: 0.5rem; 17300 } 17301 17302 collection-listing[data-view-mode="grid"] .text-custom-grid { 17303 font-size: 8px; 17304 } 17305 17306 17307 collection-listing[data-view-mode="list"] .product-card-image { 17308 padding-left: 4rem; 17309 padding-right: 4rem; 17310 } 17311 } 17312</style> 17313 17314 17315 17316 17317 17318 17319 17320<product-card data-handle="pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 17321 17322 <div class="product-card-7932852535343 group card-blend-darken flex flex-col h-full"> 17323 17324 <div class="relative"> 17325 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink?variant=43622433423407" title="Stainless Steel"> 17326 <picture> 17327 <source 17328 type="image/webp" 17329 srcset=" 17330 //www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=320 320w, 17331 //www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=480 480w, 17332 //www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=720 720w 17333 " 17334 sizes="(max-width: 768px) 100vw, 480px"> 17335 17336 <img 17337 src="//www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=480" 17338 srcset=" 17339 //www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=320 320w, 17340 //www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=480 480w, 17341 //www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=720 720w 17342 " 17343 sizes="(max-width: 768px) 100vw, 480px" 17344 width="480" height="480" 17345 alt="Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink" 17346 class="w-full block " 17347 loading="lazy" 17348 decoding="async"> 17349 </picture> 17350 17351 17352 <img 17353 width="480" 17354 height="480" 17355 src="//www.americanstandard-us.com/cdn/shop/files/29370_18SB9332200A075_0_CDNwebp.webp?v=1790746266&width=480" 17356 alt="Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink" 17357 class="w-full !hidden " 17358 loading="lazy" 17359 decoding="async" 17360 > 17361 17362 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 17363 17364 </a> 17365 17366 17367 <compared-products-add-button 17368 data-add-compare-product-btn 17369 data-product-is-sellable="true" 17370 data-product-handle="pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink" 17371 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 17372 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 17373 role="button" 17374 aria-label="Compare Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink" 17375 tabindex="0" data-is-sellable="43622433423407/true" >
17376 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 17377 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17378 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 17379</svg> 17380 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17381 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 17382</svg> 17383 </compared-products-add-button> 17384 17385 17386 17387 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 <div data-label-variant-id="43622433423407" > 17407 <style> 17408 collection-listing[data-view-mode="grid"] .tag-size-custom { 17409 font-size: 10px; 17410 } 17411</style> 17412 17413 17414 17415 17416 17417 17418 17419 </div> 17420 17421 17422 17423 </div> 17424 17425 </div> 17426 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 17427 <div class="flex flex-col md:justify-between flex-1 gap-2"> 17428 17429 17430 17431 17432 17433 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="18SB" data-bv-redirect-url="/products/pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink?variant=43622433423407" data-bv-seo="false"> </div> 17434 17435 17436 17437 <a 17438 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 17439 href="/products/pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink?variant=43622433423407"> 17440 Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink 17441 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 17442 Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink 17443 </span> 17444 </a> 17445 17446 17447 <div class="text-xs text-gray-700"> 17448 <span class="uppercase">Model: </span> 17449 <span >18SB</span> 17450 <span data-swatch-variant-sku class="hidden">18SB.9332200A.075</span> 17451 </div> 17452 17453 17454 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 17455 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 17456 17457 17458 <span data-price-list="43622433423407" class="hidden">$891.15 </span> 17459 17460 17461 </span> 17462 17463 17464 17465 <product-swatch class="hidden" data-first-variant-selected="43622433423407" data-category-product="Kitchen Sinks"> 17466 17467 17468 <div class="swatch-option-js"> 17469 <input 17470 type="radio" 17471 name="kitchen-sinks-list--pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink" 17472 id="kitchen-sinks-list--pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink-Finish-stainless-steel" 17473 value="43622433423407" 17474 checked data-value="Stainless Steel" 17475 data-product-variant-title="Stainless Steel" 17476 data-product-title="Pekoe® 33 x 22-Inch Stainless Steel Single-Bowl Farmhouse Apron Front Kitchen Sink" 17477 data-variant-available-in="\US\, \CA\" 17478 product-swatch-input 17479 > 17480 <label for="kitchen-sinks-list--pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink-Finish-stainless-steel"> 17481 Stainless Steel 17482 17483 17484 17485 17486 17487 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 17488 17489 17490 </label> 17491 </div> 17492 17493 </product-swatch> 17494 17495 17496 </div> 17497 </div> 17498 17499 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink" data-is-sellable="43622433423407/true"> 17500 <form method="post" action="/cart/add" id="product_form_7932852535343" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 17501 <variant-selector class="hidden" data-handle="pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink"></variant-selector> 17502 <input type="hidden" name="qty" value="1" /> 17503 <addtocart-button data-handle="pekoe-r-33-x-22-inch-stainless-steel-single-bowl-farmhouse-apron-front-kitchen-sink" class="flex" data-build-text> 17504 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
17505 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 17506 </button> 17507 </addtocart-button> 17508 <input type="hidden" name="product-id" value="7932852535343" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 17509 </component-addtocart> 17510 17511 </div> 17512 </div> 17513 17514</product-card> 17515 17516 17517 </div>�<div class="swiper-slide !h-auto"> 17518 17519 <style> 17520 17521 @media screen and (max-width:768px){ 17522 17523 .price-finish-container { 17524 flex-direction: column; 17525 align-items: flex-start; 17526 gap: 0.5rem; 17527 } 17528 17529 collection-listing[data-view-mode="grid"] .text-custom-grid { 17530 font-size: 8px; 17531 } 17532 17533 17534 collection-listing[data-view-mode="list"] .product-card-image { 17535 padding-left: 4rem; 17536 padding-right: 4rem; 17537 } 17538 } 17539</style> 17540 17541 17542 17543 17544 17545 17546 17547<product-card data-handle="colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 17548 17549 <div class="product-card-7932851126319 group card-blend-darken flex flex-col h-full"> 17550 17551 <div class="relative"> 17552 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink?variant=43622431948847" title="Stainless Steel"> 17553 <picture> 17554 <source 17555 type="image/webp" 17556 srcset=" 17557 //www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=320 320w, 17558 //www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=480 480w, 17559 //www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=720 720w 17560 " 17561 sizes="(max-width: 768px) 100vw, 480px"> 17562 17563 <img 17564 src="//www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=480" 17565 srcset=" 17566 //www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=320 320w, 17567 //www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=480 480w, 17568 //www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=720 720w 17569 " 17570 sizes="(max-width: 768px) 100vw, 480px" 17571 width="480" height="480" 17572 alt="Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink" 17573 class="w-full block " 17574 loading="lazy" 17575 decoding="async"> 17576 </picture> 17577 17578 17579 <img 17580 width="480" 17581 height="480" 17582 src="//www.americanstandard-us.com/cdn/shop/files/29492_20DB8332284S075_0_CDNwebp.webp?v=1790746451&width=480" 17583 alt="Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink" 17584 class="w-full !hidden " 17585 loading="lazy" 17586 decoding="async" 17587 > 17588 17589 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 17590 17591 </a> 17592 17593 17594 <compared-products-add-button 17595 data-add-compare-product-btn 17596 data-product-is-sellable="true" 17597 data-product-handle="colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink" 17598 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 17599 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 17600 role="button" 17601 aria-label="Compare Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink" 17602 tabindex="0" data-is-sellable="43622431948847/true" >
17603 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 17604 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17605 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 17606</svg> 17607 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17608 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 17609</svg> 17610 </compared-products-add-button> 17611 17612 17613 17614 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 <div data-label-variant-id="43622431948847" > 17634 <style> 17635 collection-listing[data-view-mode="grid"] .tag-size-custom { 17636 font-size: 10px; 17637 } 17638</style> 17639 17640 17641 17642 17643 17644 17645 17646 </div> 17647 17648 17649 17650 </div> 17651 17652 </div> 17653 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 17654 <div class="flex flex-col md:justify-between flex-1 gap-2"> 17655 17656 17657 17658 17659 17660 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="20DB" data-bv-redirect-url="/products/colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink?variant=43622431948847" data-bv-seo="false"> </div> 17661 17662 17663 17664 <a 17665 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 17666 href="/products/colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink?variant=43622431948847"> 17667 Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink 17668 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 17669 Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink 17670 </span> 17671 </a> 17672 17673 17674 <div class="text-xs text-gray-700"> 17675 <span class="uppercase">Model: </span> 17676 <span >20DB</span> 17677 <span data-swatch-variant-sku class="hidden">20DB.8332284S.075</span> 17678 </div> 17679 17680 17681 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 17682 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 17683 17684 17685 <span data-price-list="43622431948847" class="hidden">$315.25 </span> 17686 17687 17688 </span> 17689 17690 17691 17692 <product-swatch class="hidden" data-first-variant-selected="43622431948847" data-category-product="Kitchen Sinks"> 17693 17694 17695 <div class="swatch-option-js"> 17696 <input 17697 type="radio" 17698 name="kitchen-sinks-list--colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink" 17699 id="kitchen-sinks-list--colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink-Finish-stainless-steel" 17700 value="43622431948847" 17701 checked data-value="Stainless Steel" 17702 data-product-variant-title="Stainless Steel" 17703 data-product-title="Colony® 33 x 22-Inch Stainless Steel 4-Hole Topmount Double-Bowl Kitchen Sink" 17704 data-variant-available-in="\US\" 17705 product-swatch-input 17706 > 17707 <label for="kitchen-sinks-list--colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink-Finish-stainless-steel"> 17708 Stainless Steel 17709 17710 17711 17712 17713 17714 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 17715 17716 17717 </label> 17718 </div> 17719 17720 </product-swatch> 17721 17722 17723 </div> 17724 </div> 17725 17726 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink" data-is-sellable="43622431948847/true"> 17727 <form method="post" action="/cart/add" id="product_form_7932851126319" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 17728 <variant-selector class="hidden" data-handle="colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink"></variant-selector> 17729 <input type="hidden" name="qty" value="1" /> 17730 <addtocart-button data-handle="colony-r-33-x-22-inch-stainless-steel-4-hole-topmount-double-bowl-kitchen-sink" class="flex" data-build-text> 17731 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
17732 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 17733 </button> 17734 </addtocart-button> 17735 <input type="hidden" name="product-id" value="7932851126319" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 17736 </component-addtocart> 17737 17738 </div> 17739 </div> 17740 17741</product-card> 17742 17743 17744 </div>�<div class="swiper-slide !h-auto"> 17745 17746 <style> 17747 17748 @media screen and (max-width:768px){ 17749 17750 .price-finish-container { 17751 flex-direction: column; 17752 align-items: flex-start; 17753 gap: 0.5rem; 17754 } 17755 17756 collection-listing[data-view-mode="grid"] .text-custom-grid { 17757 font-size: 8px; 17758 } 17759 17760 17761 collection-listing[data-view-mode="list"] .product-card-image { 17762 padding-left: 4rem; 17763 padding-right: 4rem; 17764 } 17765 } 17766</style> 17767 17768 17769 17770 17771 17772 17773 17774<product-card data-handle="edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 17775 17776 <div class="product-card-7932855156783 group card-blend-darken flex flex-col h-full"> 17777 17778 <div class="relative"> 17779 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink?variant=43622436405295" title="Stainless Steel"> 17780 <picture> 17781 <source 17782 type="image/webp" 17783 srcset=" 17784 //www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=320 320w, 17785 //www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=480 480w, 17786 //www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=720 720w 17787 " 17788 sizes="(max-width: 768px) 100vw, 480px"> 17789 17790 <img 17791 src="//www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=480" 17792 srcset=" 17793 //www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=320 320w, 17794 //www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=480 480w, 17795 //www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=720 720w 17796 " 17797 sizes="(max-width: 768px) 100vw, 480px" 17798 width="480" height="480" 17799 alt="Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17800 class="w-full block " 17801 loading="lazy" 17802 decoding="async"> 17803 </picture> 17804 17805 17806 <img 17807 width="480" 17808 height="480" 17809 src="//www.americanstandard-us.com/cdn/shop/files/48033_18SB6252211075_0_CDNwebp.webp?v=1790746339&width=480" 17810 alt="Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17811 class="w-full !hidden " 17812 loading="lazy" 17813 decoding="async" 17814 > 17815 17816 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 17817 17818 </a> 17819 17820 17821 <compared-products-add-button 17822 data-add-compare-product-btn 17823 data-product-is-sellable="true" 17824 data-product-handle="edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" 17825 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 17826 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 17827 role="button" 17828 aria-label="Compare Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17829 tabindex="0" data-is-sellable="43622436405295/true" >
17830 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 17831 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17832 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 17833</svg> 17834 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 17835 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 17836</svg> 17837 </compared-products-add-button> 17838 17839 17840 17841 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 <div data-label-variant-id="43622436405295" > 17861 <style> 17862 collection-listing[data-view-mode="grid"] .tag-size-custom { 17863 font-size: 10px; 17864 } 17865</style> 17866 17867 17868 17869 17870 17871 17872 17873 </div> 17874 17875 17876 17877 </div> 17878 17879 </div> 17880 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 17881 <div class="flex flex-col md:justify-between flex-1 gap-2"> 17882 17883 17884 17885 17886 17887 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="18SB6252211" data-bv-redirect-url="/products/edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink?variant=43622436405295" data-bv-seo="false"> </div> 17888 17889 17890 17891 <a 17892 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 17893 href="/products/edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink?variant=43622436405295"> 17894 Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink 17895 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 17896 Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink 17897 </span> 17898 </a> 17899 17900 17901 <div class="text-xs text-gray-700"> 17902 <span class="uppercase">Model: </span> 17903 <span >18SB6252211</span> 17904 <span data-swatch-variant-sku class="hidden">18SB6252211.075</span> 17905 </div> 17906 17907 17908 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 17909 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 17910 17911 17912 <span data-price-list="43622436405295" class="hidden">$654.55 </span> 17913 17914 17915 </span> 17916 17917 17918 17919 <product-swatch class="hidden" data-first-variant-selected="43622436405295" data-category-product="Kitchen Sinks"> 17920 17921 17922 <div class="swatch-option-js"> 17923 <input 17924 type="radio" 17925 name="kitchen-sinks-list--edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" 17926 id="kitchen-sinks-list--edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink-Finish-stainless-steel" 17927 value="43622436405295" 17928 checked data-value="Stainless Steel" 17929 data-product-variant-title="Stainless Steel" 17930 data-product-title="Edgewater® 25 x 22-Inch Stainless Steel 1-Hole Dual Mount Single-Bowl ADA Kitchen Sink" 17931 data-variant-available-in="\US\" 17932 product-swatch-input 17933 > 17934 <label for="kitchen-sinks-list--edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink-Finish-stainless-steel"> 17935 Stainless Steel 17936 17937 17938 17939 17940 17941 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 17942 17943 17944 </label> 17945 </div> 17946 17947 </product-swatch> 17948 17949 17950 </div> 17951 </div> 17952 17953 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" data-is-sellable="43622436405295/true"> 17954 <form method="post" action="/cart/add" id="product_form_7932855156783" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 17955 <variant-selector class="hidden" data-handle="edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink"></variant-selector> 17956 <input type="hidden" name="qty" value="1" /> 17957 <addtocart-button data-handle="edgewater-r-25-x-22-inch-stainless-steel-1-hole-dual-mount-single-bowl-ada-kitchen-sink" class="flex" data-build-text> 17958 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
17959 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 17960 </button> 17961 </addtocart-button> 17962 <input type="hidden" name="product-id" value="7932855156783" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 17963 </component-addtocart> 17964 17965 </div> 17966 </div> 17967 17968</product-card> 17969 17970 17971 </div>�<div class="swiper-slide !h-auto"> 17972 17973 <style> 17974 17975 @media screen and (max-width:768px){ 17976 17977 .price-finish-container { 17978 flex-direction: column; 17979 align-items: flex-start; 17980 gap: 0.5rem; 17981 } 17982 17983 collection-listing[data-view-mode="grid"] .text-custom-grid { 17984 font-size: 8px; 17985 } 17986 17987 17988 collection-listing[data-view-mode="list"] .product-card-image { 17989 padding-left: 4rem; 17990 padding-right: 4rem; 17991 } 17992 } 17993</style> 17994 17995 17996 17997 17998 17999 18000 18001<product-card data-handle="quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 18002 18003 <div class="product-card-7932853780527 group card-blend-darken flex flex-col h-full"> 18004 18005 <div class="relative"> 18006 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink?variant=43622434930735" title="Brilliant White"> 18007 <picture> 18008 <source 18009 type="image/webp" 18010 srcset=" 18011 //www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=320 320w, 18012 //www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=480 480w, 18013 //www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=720 720w 18014 " 18015 sizes="(max-width: 768px) 100vw, 480px"> 18016 18017 <img 18018 src="//www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=480" 18019 srcset=" 18020 //www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=320 320w, 18021 //www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=480 480w, 18022 //www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=720 720w 18023 " 18024 sizes="(max-width: 768px) 100vw, 480px" 18025 width="480" height="480" 18026 alt="Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink" 18027 class="w-full block " 18028 loading="lazy" 18029 decoding="async"> 18030 </picture> 18031 18032 18033 <img 18034 width="480" 18035 height="480" 18036 src="//www.americanstandard-us.com/cdn/shop/files/62705_77SB25223308_0_CDNwebp.webp?v=1790751782&width=480" 18037 alt="Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink" 18038 class="w-full !hidden " 18039 loading="lazy" 18040 decoding="async" 18041 > 18042 18043 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 18044 18045 </a> 18046 18047 18048 <compared-products-add-button 18049 data-add-compare-product-btn 18050 data-product-is-sellable="true" 18051 data-product-handle="quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink" 18052 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 18053 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 18054 role="button" 18055 aria-label="Compare Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink" 18056 tabindex="0" data-is-sellable="43622434930735/true" >
18057 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 18058 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18059 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 18060</svg> 18061 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18062 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 18063</svg> 18064 </compared-products-add-button> 18065 18066 18067 18068 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 18084 18085 18086 18087 <div data-label-variant-id="43622434930735" > 18088 <style> 18089 collection-listing[data-view-mode="grid"] .tag-size-custom { 18090 font-size: 10px; 18091 } 18092</style> 18093 18094 18095 18096 18097 18098 18099 18100 </div> 18101 18102 18103 18104 </div> 18105 18106 </div> 18107 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 18108 <div class="flex flex-col md:justify-between flex-1 gap-2"> 18109 18110 18111 18112 18113 18114 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="77SB25223" data-bv-redirect-url="/products/quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink?variant=43622434930735" data-bv-seo="false"> </div> 18115 18116 18117 18118 <a 18119 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 18120 href="/products/quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink?variant=43622434930735"> 18121 Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink 18122 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 18123 Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink 18124 </span> 18125 </a> 18126 18127 18128 <div class="text-xs text-gray-700"> 18129 <span class="uppercase">Model: </span> 18130 <span >77SB25223</span> 18131 <span data-swatch-variant-sku class="hidden">77SB25223.308</span> 18132 </div> 18133 18134 18135 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 18136 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 18137 18138 18139 <span data-price-list="43622434930735" class="hidden">$497.90 </span> 18140 18141 18142 </span> 18143 18144 18145 18146 <product-swatch class="hidden" data-first-variant-selected="43622434930735" data-category-product="Kitchen Sinks"> 18147 18148 18149 <div class="swatch-option-js"> 18150 <input 18151 type="radio" 18152 name="kitchen-sinks-list--quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink" 18153 id="kitchen-sinks-list--quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink-Finish-brilliant-white" 18154 value="43622434930735" 18155 checked data-value="Brilliant White" 18156 data-product-variant-title="Brilliant White" 18157 data-product-title="Quince 25 x 22-Inch Cast Iron 3-Hole Drop-In Single-Bowl Kitchen Sink" 18158 data-variant-available-in="\US\" 18159 product-swatch-input 18160 > 18161 <label for="kitchen-sinks-list--quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink-Finish-brilliant-white"> 18162 Brilliant White 18163 18164 18165 18166 18167 18168 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brilliant-white_small.png?v=9607132605231733084" alt="Brilliant White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 18169 18170 18171 </label> 18172 </div> 18173 18174 </product-swatch> 18175 18176 18177 </div> 18178 </div> 18179 18180 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink" data-is-sellable="43622434930735/true"> 18181 <form method="post" action="/cart/add" id="product_form_7932853780527" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 18182 <variant-selector class="hidden" data-handle="quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink"></variant-selector> 18183 <input type="hidden" name="qty" value="1" /> 18184 <addtocart-button data-handle="quince-r-25-x-22-inch-cast-iron-3-hole-drop-in-single-bowl-kitchen-sink" class="flex" data-build-text> 18185 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
18186 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 18187 </button> 18188 </addtocart-button> 18189 <input type="hidden" name="product-id" value="7932853780527" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 18190 </component-addtocart> 18191 18192 </div> 18193 </div> 18194 18195</product-card> 18196 18197 18198 </div>�<div class="swiper-slide !h-auto"> 18199 18200 <style> 18201 18202 @media screen and (max-width:768px){ 18203 18204 .price-finish-container { 18205 flex-direction: column; 18206 align-items: flex-start; 18207 gap: 0.5rem; 18208 } 18209 18210 collection-listing[data-view-mode="grid"] .text-custom-grid { 18211 font-size: 8px; 18212 } 18213 18214 18215 collection-listing[data-view-mode="list"] .product-card-image { 18216 padding-left: 4rem; 18217 padding-right: 4rem; 18218 } 18219 } 18220</style> 18221 18222 18223 18224 18225 18226 18227 18228<product-card data-handle="quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink" data-static class="block h-full 3xl:h-408 product-with-price " > 18229 18230 <div class="product-card-7932853977135 group card-blend-darken flex flex-col h-full"> 18231 18232 <div class="relative"> 18233 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink?variant=43622435127343" title="Brilliant White"> 18234 <picture> 18235 <source 18236 type="image/webp" 18237 srcset=" 18238 //www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=320 320w, 18239 //www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=480 480w, 18240 //www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=720 720w 18241 " 18242 sizes="(max-width: 768px) 100vw, 480px"> 18243 18244 <img 18245 src="//www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=480" 18246 srcset=" 18247 //www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=320 320w, 18248 //www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=480 480w, 18249 //www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=720 720w 18250 " 18251 sizes="(max-width: 768px) 100vw, 480px" 18252 width="480" height="480" 18253 alt="Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink" 18254 class="w-full block " 18255 loading="lazy" 18256 decoding="async"> 18257 </picture> 18258 18259 18260 <img 18261 width="480" 18262 height="480" 18263 src="//www.americanstandard-us.com/cdn/shop/files/62714_77SB25224308_0_CDNwebp.webp?v=1790751788&width=480" 18264 alt="Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink" 18265 class="w-full !hidden " 18266 loading="lazy" 18267 decoding="async" 18268 > 18269 18270 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 18271 18272 </a> 18273 18274 18275 <compared-products-add-button 18276 data-add-compare-product-btn 18277 data-product-is-sellable="true" 18278 data-product-handle="quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink" 18279 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 18280 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 18281 role="button" 18282 aria-label="Compare Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink" 18283 tabindex="0" data-is-sellable="43622435127343/true" >
18284 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 18285 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18286 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 18287</svg> 18288 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18289 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 18290</svg> 18291 </compared-products-add-button> 18292 18293 18294 18295 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 18296 18297 18298 18299 18300 18301 18302 18303 18304 18305 18306 18307 18308 18309 18310 18311 18312 18313 18314 <div data-label-variant-id="43622435127343" > 18315 <style> 18316 collection-listing[data-view-mode="grid"] .tag-size-custom { 18317 font-size: 10px; 18318 } 18319</style> 18320 18321 18322 18323 18324 18325 18326 18327 </div> 18328 18329 18330 18331 </div> 18332 18333 </div> 18334 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 18335 <div class="flex flex-col md:justify-between flex-1 gap-2"> 18336 18337 18338 18339 18340 18341 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="77SB25224" data-bv-redirect-url="/products/quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink?variant=43622435127343" data-bv-seo="false"> </div> 18342 18343 18344 18345 <a 18346 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 18347 href="/products/quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink?variant=43622435127343"> 18348 Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink 18349 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 18350 Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink 18351 </span> 18352 </a> 18353 18354 18355 <div class="text-xs text-gray-700"> 18356 <span class="uppercase">Model: </span> 18357 <span >77SB25224</span> 18358 <span data-swatch-variant-sku class="hidden">77SB25224.308</span> 18359 </div> 18360 18361 18362 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 18363 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 18364 18365 18366 <span data-price-list="43622435127343" class="hidden">$497.90 </span> 18367 18368 18369 </span> 18370 18371 18372 18373 <product-swatch class="hidden" data-first-variant-selected="43622435127343" data-category-product="Kitchen Sinks"> 18374 18375 18376 <div class="swatch-option-js"> 18377 <input 18378 type="radio" 18379 name="kitchen-sinks-list--quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink" 18380 id="kitchen-sinks-list--quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink-Finish-brilliant-white" 18381 value="43622435127343" 18382 checked data-value="Brilliant White" 18383 data-product-variant-title="Brilliant White" 18384 data-product-title="Quince 25 x 22-Inch Cast Iron 4-Hole Drop-In Single-Bowl Kitchen Sink" 18385 data-variant-available-in="\US\" 18386 product-swatch-input 18387 > 18388 <label for="kitchen-sinks-list--quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink-Finish-brilliant-white"> 18389 Brilliant White 18390 18391 18392 18393 18394 18395 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brilliant-white_small.png?v=9607132605231733084" alt="Brilliant White" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 18396 18397 18398 </label> 18399 </div> 18400 18401 </product-swatch> 18402 18403 18404 </div> 18405 </div> 18406 18407 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink" data-is-sellable="43622435127343/true"> 18408 <form method="post" action="/cart/add" id="product_form_7932853977135" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 18409 <variant-selector class="hidden" data-handle="quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink"></variant-selector> 18410 <input type="hidden" name="qty" value="1" /> 18411 <addtocart-button data-handle="quince-r-25-x-22-inch-cast-iron-4-hole-drop-in-single-bowl-kitchen-sink" class="flex" data-build-text> 18412 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
18413 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 18414 </button> 18415 </addtocart-button> 18416 <input type="hidden" name="product-id" value="7932853977135" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 18417 </component-addtocart> 18418 18419 </div> 18420 </div> 18421 18422</product-card> 18423 18424 18425 </div> 18426 </div> 18427 18428 18429 <button type="button" class="swiper-example-button-prev default-button-prev !top-[42%] !left-4 lg:!left-0" aria-label="Previous slide"></button> 18430 <button type="button" class="swiper-example-button-next default-button-next !top-[42%] !right-4 lg:!right-0" aria-label="Next slide"></button> 18431 18432 </swiper-slider> 18433 </div> 18434 18435 <div class="text-center m-4"> 18436 18437 18438 <a 18439 href="" 18440 class="btn " 18441 > 18442 View All 18443 </a> 18444 </div> 18445 18446 </div> 18447 18448 <div 18449 id="content-template--19594871701551__collection_tabs_Y3ReVU-5" 18450 class="tabs__content" 18451 data-tab-content-index="5" 18452 role="tabpanel" 18453 aria-labelledby="tab-template--19594871701551__collection_tabs_Y3ReVU-5" 18454 hidden 18455 > 18456 <div class="relative swiper-slider-wrapper"> 18457 <swiper-slider 18458 class="swiper w-full block" 18459 data-options='{ 18460 "spaceBetween": 12, 18461 "slidesPerView": 1.2, 18462 "centeredSlides": true, 18463 "allowTouchMove": true, 18464 "breakpoints": { 18465 "640": { 18466 "slidesPerView": 2, 18467 "spaceBetween": 12, 18468 "centeredSlides": false 18469 }, 18470 "768": { 18471 "slidesPerView": 3, 18472 "spaceBetween": 12, 18473 "centeredSlides": false, 18474 "allowTouchMove": false 18475 }, 18476 "1024": { 18477 "slidesPerView": 4, 18478 "spaceBetween": 12, 18479 "centeredSlides": false, 18480 "allowTouchMove": false 18481 }, 18482 "1280": { 18483 "slidesPerView": 4, 18484 "spaceBetween": 12, 18485 "centeredSlides": false, 18486 "allowTouchMove": false 18487 }, 18488 "1920": { 18489 "slidesPerView": 4, 18490 "spaceBetween": 12, 18491 "centeredSlides": false, 18492 "allowTouchMove": false 18493 } 18494 } 18495 }' 18496 data-view-mobile="1.1" 18497 data-view-mobile-extra="2" 18498 data-view-tablet="3" 18499 data-view-tablet-extra="4" 18500 data-view-desktop="4" 18501 data-next-button-class=".swiper-example-button-next" 18502 data-prev-button-class=".swiper-example-button-prev" 18503 > 18504 18505 <div class="swiper-wrapper"> 18506 18507 �<div class="swiper-slide !h-auto"> 18508 18509 <style> 18510 18511 @media screen and (max-width:768px){ 18512 18513 .price-finish-container { 18514 flex-direction: column; 18515 align-items: flex-start; 18516 gap: 0.5rem; 18517 } 18518 18519 collection-listing[data-view-mode="grid"] .text-custom-grid { 18520 font-size: 8px; 18521 } 18522 18523 18524 collection-listing[data-view-mode="list"] .product-card-image { 18525 padding-left: 4rem; 18526 padding-right: 4rem; 18527 } 18528 } 18529</style> 18530 18531 18532 18533 18534 18535 18536 18537<product-card data-handle="renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" data-static class="block h-full 3xl:h-408 product-with-price " > 18538 18539 <div class="product-card-7932844179503 group card-blend-darken flex flex-col h-full"> 18540 18541 <div class="relative"> 18542 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm?variant=43622420611119" title="Polished Chrome"> 18543 <picture> 18544 <source 18545 type="image/webp" 18546 srcset=" 18547 //www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=320 320w, 18548 //www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=480 480w, 18549 //www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=720 720w 18550 " 18551 sizes="(max-width: 768px) 100vw, 480px"> 18552 18553 <img 18554 src="//www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=480" 18555 srcset=" 18556 //www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=320 320w, 18557 //www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=480 480w, 18558 //www.americanstandard-us.com/cdn/shop/files/64395_9319310.002_CDNwebp.webp?v=1790752407&width=720 720w 18559 " 18560 sizes="(max-width: 768px) 100vw, 480px" 18561 width="480" height="480" 18562 alt="Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" 18563 class="w-full block " 18564 loading="lazy" 18565 decoding="async"> 18566 </picture> 18567 18568 18569 <img 18570 width="480" 18571 height="480" 18572 src="//www.americanstandard-us.com/cdn/shop/files/169546_9319310.243_0_CDNwebp.webp?v=1790752414&width=480" 18573 alt="Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" 18574 class="w-full !hidden " 18575 loading="lazy" 18576 decoding="async" 18577 > 18578 18579 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 18580 18581 </a> 18582 18583 18584 <compared-products-add-button 18585 data-add-compare-product-btn 18586 data-product-is-sellable="true" 18587 data-product-handle="renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" 18588 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 18589 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 18590 role="button" 18591 aria-label="Compare Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" 18592 tabindex="0" data-is-sellable="43622420611119/true,43622420643887/true,43622420676655/true" >
18593 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 18594 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18595 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 18596</svg> 18597 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18598 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 18599</svg> 18600 </compared-products-add-button> 18601 18602 18603 18604 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 18605 18606 18607 18608 18609 18610 18611 18612 18613 18614 18615 18616 18617 18618 18619 18620 18621 18622 18623 <div data-label-variant-id="43622420611119" > 18624 <style> 18625 collection-listing[data-view-mode="grid"] .tag-size-custom { 18626 font-size: 10px; 18627 } 18628</style> 18629 18630 18631 18632 18633 18634 18635 18636 </div> 18637 18638 18639 18640 18641 18642 18643 18644 18645 18646 18647 18648 18649 18650 18651 18652 18653 18654 18655 18656 18657 <div data-label-variant-id="43622420643887" class="hidden" > 18658 <style> 18659 collection-listing[data-view-mode="grid"] .tag-size-custom { 18660 font-size: 10px; 18661 } 18662</style> 18663 18664 18665 18666 18667 18668 18669 18670 </div> 18671 18672 18673 18674 18675 18676 18677 18678 18679 18680 18681 18682 18683 18684 18685 18686 18687 18688 18689 18690 18691 <div data-label-variant-id="43622420676655" class="hidden" > 18692 <style> 18693 collection-listing[data-view-mode="grid"] .tag-size-custom { 18694 font-size: 10px; 18695 } 18696</style> 18697 18698 18699 18700 18701 18702 18703 18704 </div> 18705 18706 18707 18708 </div> 18709 18710 </div> 18711 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 18712 <div class="flex flex-col md:justify-between flex-1 gap-2"> 18713 18714 18715 18716 18717 18718 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="9319310" data-bv-redirect-url="/products/renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm?variant=43622420611119" data-bv-seo="false"> </div> 18719 18720 18721 18722 <a 18723 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 18724 href="/products/renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm?variant=43622420611119"> 18725 Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm 18726 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 18727 Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm 18728 </span> 18729 </a> 18730 18731 18732 <div class="text-xs text-gray-700"> 18733 <span class="uppercase">Model: </span> 18734 <span >9319310</span> 18735 <span data-swatch-variant-sku class="hidden">9319310.002</span> 18736 </div> 18737 18738 18739 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 18740 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 18741 18742 18743 <span data-price-list="43622420611119" class="hidden">$287.95 </span> 18744 18745 <span data-price-list="43622420643887" class="hidden">$389.35 </span> 18746 18747 <span data-price-list="43622420676655" class="hidden">$389.35 </span> 18748 18749 18750 </span> 18751 18752 18753 18754 <product-swatch class="hidden" data-first-variant-selected="43622420611119" data-category-product="Kitchen Faucets"> 18755 18756 18757 <div class="swatch-option-js"> 18758 <input 18759 type="radio" 18760 name="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" 18761 id="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm-Finish-p
18761olished-chrome" 18762 value="43622420611119" 18763 checked data-value="Polished Chrome" 18764 data-product-variant-title="Polished Chrome" 18765 data-product-title="Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" 18766 data-variant-available-in="\US\" 18767 product-swatch-input 18768 > 18769 <label for="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm-Finish-polished-chrome"> 18770 Polished Chrome 18771 18772 18773 18774 18775 18776 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 18777 18778 18779 </label> 18780 </div> 18781 18782 18783 <div class="swatch-option-js"> 18784 <input 18785 type="radio" 18786 name="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" 18787 id="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm-Finish-stainless-steel" 18788 value="43622420643887" 18789 data-value="Stainless Steel" 18790 data-product-variant-title="Stainless Steel" 18791 data-product-title="Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" 18792 data-variant-available-in="\US\" 18793 product-swatch-input 18794 > 18795 <label for="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm-Finish-stainless-steel"> 18796 Stainless Steel 18797 18798 18799 18800 18801 18802 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 18803 18804 18805 </label> 18806 </div> 18807 18808 18809 <div class="swatch-option-js"> 18810 <input 18811 type="radio" 18812 name="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" 18813 id="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm-Finish-matte-black" 18814 value="43622420676655" 18815 data-value="Matte Black" 18816 data-product-variant-title="Matte Black" 18817 data-product-title="Renate Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 Lpm" 18818 data-variant-available-in="\US\" 18819 product-swatch-input 18820 > 18821 <label for="kitchen-faucets-list--renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm-Finish-matte-black"> 18822 Matte Black 18823 18824 18825 18826 18827 18828 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 18829 18830 18831 </label> 18832 </div> 18833 18834 </product-swatch> 18835 18836 18837 </div> 18838 </div> 18839 18840 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" data-is-sellable="43622420611119/true,43622420643887/true,43622420676655/true"> 18841 <form method="post" action="/cart/add" id="product_form_7932844179503" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 18842 <variant-selector class="hidden" data-handle="renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm"></variant-selector> 18843 <input type="hidden" name="qty" value="1" /> 18844 <addtocart-button data-handle="renate-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-lpm" class="flex" data-build-text> 18845 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
18846 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 18847 </button> 18848 </addtocart-button> 18849 <input type="hidden" name="product-id" value="7932844179503" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 18850 </component-addtocart> 18851 18852 </div> 18853 </div> 18854 18855</product-card> 18856 18857 18858 </div>�<div class="swiper-slide !h-auto"> 18859 18860 <style> 18861 18862 @media screen and (max-width:768px){ 18863 18864 .price-finish-container { 18865 flex-direction: column; 18866 align-items: flex-start; 18867 gap: 0.5rem; 18868 } 18869 18870 collection-listing[data-view-mode="grid"] .text-custom-grid { 18871 font-size: 8px; 18872 } 18873 18874 18875 collection-listing[data-view-mode="list"] .product-card-image { 18876 padding-left: 4rem; 18877 padding-right: 4rem; 18878 } 18879 } 18880</style> 18881 18882 18883 18884 18885 18886 18887 18888<product-card data-handle="southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" data-static class="block h-full 3xl:h-408 product-with-price " > 18889 18890 <div class="product-card-7932849422383 group card-blend-darken flex flex-col h-full"> 18891 18892 <div class="relative"> 18893 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min?variant=43622429327407" title="Polished Chrome"> 18894 <picture> 18895 <source 18896 type="image/webp" 18897 srcset=" 18898 //www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=320 320w, 18899 //www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=480 480w, 18900 //www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=720 720w 18901 " 18902 sizes="(max-width: 768px) 100vw, 480px"> 18903 18904 <img 18905 src="//www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=480" 18906 srcset=" 18907 //www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=320 320w, 18908 //www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=480 480w, 18909 //www.americanstandard-us.com/cdn/shop/files/61688_7441381.002_0_CDNwebp_9633a84a-52ed-42d9-b424-903c9f47df0e.webp?v=1774642620&width=720 720w 18910 " 18911 sizes="(max-width: 768px) 100vw, 480px" 18912 width="480" height="480" 18913 alt="Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 18914 class="w-full block " 18915 loading="lazy" 18916 decoding="async"> 18917 </picture> 18918 18919 18920 <img 18921 width="480" 18922 height="480" 18923 src="//www.americanstandard-us.com/cdn/shop/files/61723_7441381.GN0_0_CDNwebp.webp?v=1790751470&width=480" 18924 alt="Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 18925 class="w-full !hidden " 18926 loading="lazy" 18927 decoding="async" 18928 > 18929 18930 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 18931 18932 </a> 18933 18934 18935 <compared-products-add-button 18936 data-add-compare-product-btn 18937 data-product-is-sellable="true" 18938 data-product-handle="southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" 18939 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 18940 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 18941 role="button" 18942 aria-label="Compare Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 18943 tabindex="0" data-is-sellable="43622429327407/true,43622429360175/true,43622429392943/true,43622429425711/true" >
18944 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 18945 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18946 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 18947</svg> 18948 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 18949 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 18950</svg> 18951 </compared-products-add-button> 18952 18953 18954 18955 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18968 18969 18970 18971 18972 18973 18974 <div data-label-variant-id="43622429327407" > 18975 <style> 18976 collection-listing[data-view-mode="grid"] .tag-size-custom { 18977 font-size: 10px; 18978 } 18979</style> 18980 18981 18982 18983 18984 18985 18986 18987 </div> 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 <div data-label-variant-id="43622429360175" class="hidden" > 19009 <style> 19010 collection-listing[data-view-mode="grid"] .tag-size-custom { 19011 font-size: 10px; 19012 } 19013</style> 19014 19015 19016 19017 19018 19019 19020 19021 </div> 19022 19023 19024 19025 19026 19027 19028 19029 19030 19031 19032 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 <div data-label-variant-id="43622429392943" class="hidden" > 19043 <style> 19044 collection-listing[data-view-mode="grid"] .tag-size-custom { 19045 font-size: 10px; 19046 } 19047</style> 19048 19049 19050 19051 19052 19053 19054 19055 </div> 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 19067 19068 19069 19070 19071 19072 19073 19074 19075 19076 <div data-label-variant-id="43622429425711" class="hidden" > 19077 <style> 19078 collection-listing[data-view-mode="grid"] .tag-size-custom { 19079 font-size: 10px; 19080 } 19081</style> 19082 19083 19084 19085 19086 19087 19088 19089 </div> 19090 19091 19092 19093 </div> 19094 19095 </div> 19096 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 19097 <div class="flex flex-col md:justify-between flex-1 gap-2"> 19098 19099 19100 19101 19102 19103 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7441381" data-bv-redirect-url="/products/southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min?variant=43622429327407" data-bv-seo="false"> </div> 19104 19105 19106 19107 <a 19108 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 19109 href="/products/southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min?variant=43622429327407"> 19110 Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min 19111 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 19112 Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min 19113 </span> 19114 </a> 19115 19116 19117 <div class="text-xs text-gray-700"> 19118 <span class="uppercase">Model: </span> 19119 <span >7441381</span> 19120 <span data-swatch-variant-sku class="hidden">7441381.002</span> 19121 </div> 19122 19123 19124 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 19125 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 19126 19127 19128 <span data-price-list="43622429327407" class="hidden">$350.35 </span> 19129 19130 <span data-price-list="43622429360175" class="hidden">$372.45 </span> 19131
19132 <span data-price-list="43622429392943" class="hidden">$395.85 </span> 19133 19134 <span data-price-list="43622429425711" class="hidden">$429.65 </span> 19135 19136 19137 </span> 19138 19139 19140 19141 <product-swatch class="hidden" data-first-variant-selected="43622429327407" data-category-product="Kitchen Faucets"> 19142 19143 19144 <div class="swatch-option-js"> 19145 <input 19146 type="radio" 19147 name="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" 19148 id="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-polished-chrome" 19149 value="43622429327407" 19150 checked data-value="Polished Chrome" 19151 data-product-variant-title="Polished Chrome" 19152 data-product-title="Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 19153 data-variant-available-in="\US\" 19154 product-swatch-input 19155 > 19156 <label for="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-polished-chrome"> 19157 Polished Chrome 19158 19159 19160 19161 19162 19163 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19164 19165 19166 </label> 19167 </div> 19168 19169 19170 <div class="swatch-option-js"> 19171 <input 19172 type="radio" 19173 name="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" 19174 id="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-stainless-steel" 19175 value="43622429360175" 19176 data-value="Stainless Steel" 19177 data-product-variant-title="Stainless Steel" 19178 data-product-title="Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 19179 data-variant-available-in="\US\" 19180 product-swatch-input 19181 > 19182 <label for="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-stainless-steel"> 19183 Stainless Steel 19184 19185 19186 19187 19188 19189 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19190 19191 19192 </label> 19193 </div> 19194 19195 19196 <div class="swatch-option-js"> 19197 <input 19198 type="radio" 19199 name="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" 19200 id="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-matte-black" 19201 value="43622429392943" 19202 data-value="Matte Black" 19203 data-product-variant-title="Matte Black" 19204 data-product-title="Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 19205 data-variant-available-in="\US\" 19206 product-swatch-input 19207 > 19208 <label for="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-matte-black"> 19209 Matte Black 19210 19211 19212 19213 19214 19215 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19216 19217 19218 </label> 19219 </div> 19220 19221 19222 <div class="swatch-option-js"> 19223 <input 19224 type="radio" 19225 name="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" 19226 id="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-brushed-cool-sunrise" 19227 value="43622429425711" 19228 data-value="Brushed Cool Sunrise" 19229 data-product-variant-title="Brushed Cool Sunrise" 19230 data-product-title="Southport Touchless Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.8 GPM/6.8 L/min" 19231 data-variant-available-in="\US\" 19232 product-swatch-input 19233 > 19234 <label for="kitchen-faucets-list--southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min-Finish-brushed-cool-sunrise"> 19235 Brushed Cool Sunrise 19236 19237 19238 19239 19240 19241 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19242 19243 19244 </label> 19245 </div> 19246 19247 </product-swatch> 19248 19249 19250 </div> 19251 </div> 19252 19253 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" data-is-sellable="43622429327407/true,43622429360175/true,43622429392943/true,43622429425711/true"> 19254 <form method="post" action="/cart/add" id="product_form_7932849422383" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 19255 <variant-selector class="hidden" data-handle="southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min"></variant-selector> 19256 <input type="hidden" name="qty" value="1" /> 19257 <addtocart-button data-handle="southport-touchless-single-handle-pull-down-dual-spray-kitchen-faucet-1-8-gpm-6-8-l-min" class="flex" data-build-text> 19258 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
19259 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 19260 </button> 19261 </addtocart-button> 19262 <input type="hidden" name="product-id" value="7932849422383" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 19263 </component-addtocart> 19264 19265 </div> 19266 </div> 19267 19268</product-card> 19269 19270 19271 </div>�<div class="swiper-slide !h-auto"> 19272 19273 <style> 19274 19275 @media screen and (max-width:768px){ 19276 19277 .price-finish-container { 19278 flex-direction: column; 19279 align-items: flex-start; 19280 gap: 0.5rem; 19281 } 19282 19283 collection-listing[data-view-mode="grid"] .text-custom-grid { 19284 font-size: 8px; 19285 } 19286 19287 19288 collection-listing[data-view-mode="list"] .product-card-image { 19289 padding-left: 4rem; 19290 padding-right: 4rem; 19291 } 19292 } 19293</style> 19294 19295 19296 19297 19298 19299 19300 19301<product-card data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" data-static class="block h-full 3xl:h-408 product-with-price " > 19302 19303 <div class="product-card-7932856500271 group card-blend-darken flex flex-col h-full"> 19304 19305 <div class="relative"> 19306 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter?variant=43622438109231" title="Polished Chrome"> 19307 <picture> 19308 <source 19309 type="image/webp" 19310 srcset=" 19311 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=320 320w, 19312 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=480 480w, 19313 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=720 720w 19314 " 19315 sizes="(max-width: 768px) 100vw, 480px"> 19316 19317 <img 19318 src="//www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=480" 19319 srcset=" 19320 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=320 320w, 19321 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=480 480w, 19322 //www.americanstandard-us.com/cdn/shop/files/56665_4902330002_1_0_CDNwebp.webp?v=1790748763&width=720 720w 19323 " 19324 sizes="(max-width: 768px) 100vw, 480px" 19325 width="480" height="480" 19326 alt="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 19327 class="w-full block " 19328 loading="lazy" 19329 decoding="async"> 19330 </picture> 19331 19332 19333 <img 19334 width="480" 19335 height="480" 19336 src="//www.americanstandard-us.com/cdn/shop/files/56672_4902330075_1_0_CDNwebp.webp?v=1790748771&width=480" 19337 alt="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 19338 class="w-full !hidden " 19339 loading="lazy" 19340 decoding="async" 19341 > 19342 19343 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 19344 19345 </a> 19346 19347 19348 <compared-products-add-button 19349 data-add-compare-product-btn 19350 data-product-is-sellable="true" 19351 data-product-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" 19352 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 19353 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 19354 role="button" 19355 aria-label="Compare Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 19356 tabindex="0" data-is-sellable="43622438109231/true,43622438141999/true" >
19357 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 19358 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 19359 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 19360</svg> 19361 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 19362 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 19363</svg> 19364 </compared-products-add-button> 19365 19366 19367 19368 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 <div data-label-variant-id="43622438109231" > 19388 <style> 19389 collection-listing[data-view-mode="grid"] .tag-size-custom { 19390 font-size: 10px; 19391 } 19392</style> 19393 19394 19395 19396 19397 19398 19399 19400 </div> 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 19420 19421 <div data-label-variant-id="43622438141999" class="hidden" > 19422 <style> 19423 collection-listing[data-view-mode="grid"] .tag-size-custom { 19424 font-size: 10px; 19425 } 19426</style> 19427 19428 19429 19430 19431 19432 19433 19434 </div> 19435 19436 19437 19438 </div> 19439 19440 </div> 19441 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 19442 <div class="flex flex-col md:justify-between flex-1 gap-2"> 19443 19444 19445 19446 19447 19448 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4902330" data-bv-redirect-url="/products/saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter?variant=43622438109231" data-bv-seo="false"> </div> 19449 19450 19451 19452 <a 19453 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 19454 href="/products/saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter?variant=43622438109231"> 19455 Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter 19456 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 19457 Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter 19458 </span> 19459 </a> 19460 19461 19462 <div class="text-xs text-gray-700"> 19463 <span class="uppercase">Model: </span> 19464 <span >4902330</span> 19465 <span data-swatch-variant-sku class="hidden">4902330.002</span> 19466 </div> 19467 19468 19469 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 19470 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 19471 19472 19473 <span data-price-list="43622438109231" class="hidden">$400.40 </span> 19474 19475 <span data-price-list="43622438141999" class="hidden">$411.45 </span> 19476 19477 19478 </span> 19479 19480 19481 19482 <product-swatch class="hidden" data-first-variant-selected="43622438109231" data-category-product="Kitchen Faucets"> 19483 19484 19485 <div class="swatch-option-js"> 19486 <input 19487 type="radio" 19488 name="kitchen-faucets-list--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" 19489 id="kitchen-faucets-list--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-p
19489olished-chrome" 19490 value="43622438109231" 19491 checked data-value="Polished Chrome" 19492 data-product-variant-title="Polished Chrome" 19493 data-product-title="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 19494 data-variant-available-in="\US\, \CA\" 19495 product-swatch-input 19496 > 19497 <label for="kitchen-faucets-list--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-polished-chrome"> 19498 Polished Chrome 19499 19500 19501 19502 19503 19504 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19505 19506 19507 </label> 19508 </div> 19509 19510 19511 <div class="swatch-option-js"> 19512 <input 19513 type="radio" 19514 name="kitchen-faucets-list--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" 19515 id="kitchen-faucets-list--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-stainless-steel" 19516 value="43622438141999" 19517 data-value="Stainless Steel" 19518 data-product-variant-title="Stainless Steel" 19519 data-product-title="Saybrook® Single-Handle Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min With Filter" 19520 data-variant-available-in="\US\, \CA\" 19521 product-swatch-input 19522 > 19523 <label for="kitchen-faucets-list--saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter-Finish-stainless-steel"> 19524 Stainless Steel 19525 19526 19527 19528 19529 19530 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19531 19532 19533 </label> 19534 </div> 19535 19536 </product-swatch> 19537 19538 19539 </div> 19540 </div> 19541 19542 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" data-is-sellable="43622438109231/true,43622438141999/true"> 19543 <form method="post" action="/cart/add" id="product_form_7932856500271" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 19544 <variant-selector class="hidden" data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter"></variant-selector> 19545 <input type="hidden" name="qty" value="1" /> 19546 <addtocart-button data-handle="saybrook-r-single-handle-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-with-filter" class="flex" data-build-text> 19547 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
19548 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 19549 </button> 19550 </addtocart-button> 19551 <input type="hidden" name="product-id" value="7932856500271" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 19552 </component-addtocart> 19553 19554 </div> 19555 </div> 19556 19557</product-card> 19558 19559 19560 </div>�<div class="swiper-slide !h-auto"> 19561 19562 <style> 19563 19564 @media screen and (max-width:768px){ 19565 19566 .price-finish-container { 19567 flex-direction: column; 19568 align-items: flex-start; 19569 gap: 0.5rem; 19570 } 19571 19572 collection-listing[data-view-mode="grid"] .text-custom-grid { 19573 font-size: 8px; 19574 } 19575 19576 19577 collection-listing[data-view-mode="list"] .product-card-image { 19578 padding-left: 4rem; 19579 padding-right: 4rem; 19580 } 19581 } 19582</style> 19583 19584 19585 19586 19587 19588 19589 19590<product-card data-handle="raviv-r-single-handle-pull-down-kitchen-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 19591 19592 <div class="product-card-7932844933167 group card-blend-darken flex flex-col h-full"> 19593 19594 <div class="relative"> 19595 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/raviv-r-single-handle-pull-down-kitchen-faucet?variant=43622422118447" title="Polished Chrome"> 19596 <picture> 19597 <source 19598 type="image/webp" 19599 srcset=" 19600 //www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=320 320w, 19601 //www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=480 480w, 19602 //www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=720 720w 19603 " 19604 sizes="(max-width: 768px) 100vw, 480px"> 19605 19606 <img 19607 src="//www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=480" 19608 srcset=" 19609 //www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=320 320w, 19610 //www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=480 480w, 19611 //www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=720 720w 19612 " 19613 sizes="(max-width: 768px) 100vw, 480px" 19614 width="480" height="480" 19615 alt="Raviv® Single-Handle Pull-Down Kitchen Faucet" 19616 class="w-full block " 19617 loading="lazy" 19618 decoding="async"> 19619 </picture> 19620 19621 19622 <img 19623 width="480" 19624 height="480" 19625 src="//www.americanstandard-us.com/cdn/shop/files/168958_7421300.002_5_0_CDNwebp_97a76849-6b21-4ae9-934e-763a878a0264.webp?v=1775106660&width=480" 19626 alt="Raviv® Single-Handle Pull-Down Kitchen Faucet" 19627 class="w-full !hidden " 19628 loading="lazy" 19629 decoding="async" 19630 > 19631 19632 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Raviv® Single-Handle Pull-Down Kitchen Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 19633 19634 </a> 19635 19636 19637 <compared-products-add-button 19638 data-add-compare-product-btn 19639 data-product-is-sellable="true" 19640 data-product-handle="raviv-r-single-handle-pull-down-kitchen-faucet" 19641 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 19642 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 19643 role="button" 19644 aria-label="Compare Raviv® Single-Handle Pull-Down Kitchen Faucet" 19645 tabindex="0" data-is-sellable="43622422118447/true,43622422151215/true,43622422183983/true" >
19646 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 19647 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 19648 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 19649</svg> 19650 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 19651 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 19652</svg> 19653 </compared-products-add-button> 19654 19655 19656 19657 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 <div data-label-variant-id="43622422118447" > 19677 <style> 19678 collection-listing[data-view-mode="grid"] .tag-size-custom { 19679 font-size: 10px; 19680 } 19681</style> 19682 19683 19684 19685 19686 19687 19688 19689 </div> 19690 19691 19692 19693 19694 19695 19696 19697 19698 19699 19700 19701 19702 19703 19704 19705 19706 19707 19708 19709 19710 <div data-label-variant-id="43622422151215" class="hidden" > 19711 <style> 19712 collection-listing[data-view-mode="grid"] .tag-size-custom { 19713 font-size: 10px; 19714 } 19715</style> 19716 19717 19718 19719 19720 19721 19722 19723 </div> 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 19737 19738 19739 19740 19741 19742 19743 19744 <div data-label-variant-id="43622422183983" class="hidden" > 19745 <style> 19746 collection-listing[data-view-mode="grid"] .tag-size-custom { 19747 font-size: 10px; 19748 } 19749</style> 19750 19751 19752 19753 19754 19755 19756 19757 </div> 19758 19759 19760 19761 </div> 19762 19763 </div> 19764 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 19765 <div class="flex flex-col md:justify-between flex-1 gap-2"> 19766 19767 19768 19769 19770 19771 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="7421300" data-bv-redirect-url="/products/raviv-r-single-handle-pull-down-kitchen-faucet?variant=43622422118447" data-bv-seo="false"> </div> 19772 19773 19774 19775 <a 19776 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 19777 href="/products/raviv-r-single-handle-pull-down-kitchen-faucet?variant=43622422118447"> 19778 Raviv® Single-Handle Pull-Down Kitchen Faucet 19779 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 19780 Raviv® Single-Handle Pull-Down Kitchen Faucet 19781 </span> 19782 </a> 19783 19784 19785 <div class="text-xs text-gray-700"> 19786 <span class="uppercase">Model: </span> 19787 <span >7421300</span> 19788 <span data-swatch-variant-sku class="hidden">7421300.002</span> 19789 </div> 19790 19791 19792 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 19793 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 19794 19795 19796 <span data-price-list="43622422118447" class="hidden">$285.35 </span> 19797 19798 <span data-price-list="43622422151215" class="hidden">$322.40 </span> 19799 19800 <span data-price-list="43622422183983" class="hidden">$300.95 </span> 19801 19802 19803 </span> 19804 19805 19806 19807 <product-swatch class="hidden" data-first-variant-selected="43622422118447" data-category-product="Kitchen Faucets"> 19808 19809 19810 <div class="swatch-option-js"> 19811 <input 19812 type="radio" 19813 name="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet" 19814 id="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet-Finish-p
19814olished-chrome" 19815 value="43622422118447" 19816 checked data-value="Polished Chrome" 19817 data-product-variant-title="Polished Chrome" 19818 data-product-title="Raviv® Single-Handle Pull-Down Kitchen Faucet" 19819 data-variant-available-in="\US\" 19820 product-swatch-input 19821 > 19822 <label for="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet-Finish-polished-chrome"> 19823 Polished Chrome 19824 19825 19826 19827 19828 19829 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19830 19831 19832 </label> 19833 </div> 19834 19835 19836 <div class="swatch-option-js"> 19837 <input 19838 type="radio" 19839 name="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet" 19840 id="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet-Finish-stainless-steel" 19841 value="43622422151215" 19842 data-value="Stainless Steel" 19843 data-product-variant-title="Stainless Steel" 19844 data-product-title="Raviv® Single-Handle Pull-Down Kitchen Faucet" 19845 data-variant-available-in="\US\" 19846 product-swatch-input 19847 > 19848 <label for="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet-Finish-stainless-steel"> 19849 Stainless Steel 19850 19851 19852 19853 19854 19855 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19856 19857 19858 </label> 19859 </div> 19860 19861 19862 <div class="swatch-option-js"> 19863 <input 19864 type="radio" 19865 name="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet" 19866 id="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet-Finish-matte-black" 19867 value="43622422183983" 19868 data-value="Matte Black" 19869 data-product-variant-title="Matte Black" 19870 data-product-title="Raviv® Single-Handle Pull-Down Kitchen Faucet" 19871 data-variant-available-in="\US\" 19872 product-swatch-input 19873 > 19874 <label for="kitchen-faucets-list--raviv-r-single-handle-pull-down-kitchen-faucet-Finish-matte-black"> 19875 Matte Black 19876 19877 19878 19879 19880 19881 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 19882 19883 19884 </label> 19885 </div> 19886 19887 </product-swatch> 19888 19889 19890 </div> 19891 </div> 19892 19893 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="raviv-r-single-handle-pull-down-kitchen-faucet" data-is-sellable="43622422118447/true,43622422151215/true,43622422183983/true"> 19894 <form method="post" action="/cart/add" id="product_form_7932844933167" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 19895 <variant-selector class="hidden" data-handle="raviv-r-single-handle-pull-down-kitchen-faucet"></variant-selector> 19896 <input type="hidden" name="qty" value="1" /> 19897 <addtocart-button data-handle="raviv-r-single-handle-pull-down-kitchen-faucet" class="flex" data-build-text> 19898 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
19899 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 19900 </button> 19901 </addtocart-button> 19902 <input type="hidden" name="product-id" value="7932844933167" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 19903 </component-addtocart> 19904 19905 </div> 19906 </div> 19907 19908</product-card> 19909 19910 19911 </div>�<div class="swiper-slide !h-auto"> 19912 19913 <style> 19914 19915 @media screen and (max-width:768px){ 19916 19917 .price-finish-container { 19918 flex-direction: column; 19919 align-items: flex-start; 19920 gap: 0.5rem; 19921 } 19922 19923 collection-listing[data-view-mode="grid"] .text-custom-grid { 19924 font-size: 8px; 19925 } 19926 19927 19928 collection-listing[data-view-mode="list"] .product-card-image { 19929 padding-left: 4rem; 19930 padding-right: 4rem; 19931 } 19932 } 19933</style> 19934 19935 19936 19937 19938 19939 19940 19941<product-card data-handle="studio-r-s-wall-mount-pot-filler-kitchen-faucet" data-static class="block h-full 3xl:h-408 product-with-price " > 19942 19943 <div class="product-card-7932857483311 group card-blend-darken flex flex-col h-full"> 19944 19945 <div class="relative"> 19946 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-wall-mount-pot-filler-kitchen-faucet?variant=43782969131055" title="Polished Chrome"> 19947 <picture> 19948 <source 19949 type="image/webp" 19950 srcset=" 19951 //www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=320 320w, 19952 //www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=480 480w, 19953 //www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=720 720w 19954 " 19955 sizes="(max-width: 768px) 100vw, 480px"> 19956 19957 <img 19958 src="//www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=480" 19959 srcset=" 19960 //www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=320 320w, 19961 //www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=480 480w, 19962 //www.americanstandard-us.com/cdn/shop/files/56585_4803900002_1_0_CDNwebp.webp?v=1790748658&width=720 720w 19963 " 19964 sizes="(max-width: 768px) 100vw, 480px" 19965 width="480" height="480" 19966 alt="Studio® S Wall-Mount Pot Filler Kitchen Faucet" 19967 class="w-full block " 19968 loading="lazy" 19969 decoding="async"> 19970 </picture> 19971 19972 19973 <img 19974 width="480" 19975 height="480" 19976 src="//www.americanstandard-us.com/cdn/shop/files/56592_4803900075_1_0_CDNwebp.webp?v=1790748662&width=480" 19977 alt="Studio® S Wall-Mount Pot Filler Kitchen Faucet" 19978 class="w-full !hidden " 19979 loading="lazy" 19980 decoding="async" 19981 > 19982 19983 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S Wall-Mount Pot Filler Kitchen Faucet" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 19984 19985 </a> 19986 19987 19988 <compared-products-add-button 19989 data-add-compare-product-btn 19990 data-product-is-sellable="true" 19991 data-product-handle="studio-r-s-wall-mount-pot-filler-kitchen-faucet" 19992 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 19993 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 19994 role="button" 19995 aria-label="Compare Studio® S Wall-Mount Pot Filler Kitchen Faucet" 19996 tabindex="0" data-is-sellable="43782969131055/true,43782969163823/true,43782969229359/true,43622439583791/true" >
19997 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 19998 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 19999 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 20000</svg> 20001 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 20002 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 20003</svg> 20004 </compared-products-add-button> 20005 20006 20007 20008 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 <div data-label-variant-id="43782969131055" > 20028 <style> 20029 collection-listing[data-view-mode="grid"] .tag-size-custom { 20030 font-size: 10px; 20031 } 20032</style> 20033 20034 20035 20036 20037 20038 20039 20040 </div> 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 <div data-label-variant-id="43782969163823" class="hidden" > 20062 <style> 20063 collection-listing[data-view-mode="grid"] .tag-size-custom { 20064 font-size: 10px; 20065 } 20066</style> 20067 20068 20069 20070 20071 20072 20073 20074 </div> 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 <div data-label-variant-id="43782969229359" class="hidden" > 20096 <style> 20097 collection-listing[data-view-mode="grid"] .tag-size-custom { 20098 font-size: 10px; 20099 } 20100</style> 20101 20102 20103 20104 20105 20106 20107 20108 </div> 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 <div data-label-variant-id="43622439583791" class="hidden" > 20130 <style> 20131 collection-listing[data-view-mode="grid"] .tag-size-custom { 20132 font-size: 10px; 20133 } 20134</style> 20135 20136 20137 20138 20139 20140 20141 20142 </div> 20143 20144 20145 20146 </div> 20147 20148 </div> 20149 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 20150 <div class="flex flex-col md:justify-between flex-1 gap-2"> 20151 20152 20153 20154 20155 20156 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4803900" data-bv-redirect-url="/products/studio-r-s-wall-mount-pot-filler-kitchen-faucet?variant=43782969131055" data-bv-seo="false"> </div> 20157 20158 20159 20160 <a 20161 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 20162 href="/products/studio-r-s-wall-mount-pot-filler-kitchen-faucet?variant=43782969131055"> 20163 Studio® S Wall-Mount Pot Filler Kitchen Faucet 20164 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 20165 Studio® S Wall-Mount Pot Filler Kitchen Faucet 20166 </span> 20167 </a> 20168 20169 20170 <div class="text-xs text-gray-700"> 20171 <span class="uppercase">Model: </span> 20172 <span >4803900</span> 20173 <span data-swatch-variant-sku class="hidden">4803900.002</span> 20174 </div> 20175 20176 20177 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 20178 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 20179 20180 20181 <span data-price-list="43782969131055" class="hidden">$515.45 </span> 20182 20183 <span data-price-list="43782969163823" class="hidden">$696.15 </span> 20184 20185 <span data-price-list="43782969229359" class="hidden">$696.15 </span> 20186
20187 <span data-price-list="43622439583791" class="hidden">$747.50 </span> 20188 20189 20190 </span> 20191 20192 20193 20194 <product-swatch class="hidden" data-first-variant-selected="43782969131055" data-category-product="Kitchen Faucets"> 20195 20196 20197 <div class="swatch-option-js"> 20198 <input 20199 type="radio" 20200 name="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet" 20201 id="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-polished-chrome" 20202 value="43782969131055" 20203 checked data-value="Polished Chrome" 20204 data-product-variant-title="Polished Chrome" 20205 data-product-title="Studio® S Wall-Mount Pot Filler Kitchen Faucet" 20206 data-variant-available-in="\US\, \CA\" 20207 product-swatch-input 20208 > 20209 <label for="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-polished-chrome"> 20210 Polished Chrome 20211 20212 20213 20214 20215 20216 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20217 20218 20219 </label> 20220 </div> 20221 20222 20223 <div class="swatch-option-js"> 20224 <input 20225 type="radio" 20226 name="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet" 20227 id="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-stainless-steel" 20228 value="43782969163823" 20229 data-value="Stainless Steel" 20230 data-product-variant-title="Stainless Steel" 20231 data-product-title="Studio® S Wall-Mount Pot Filler Kitchen Faucet" 20232 data-variant-available-in="\US\, \CA\" 20233 product-swatch-input 20234 > 20235 <label for="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-stainless-steel"> 20236 Stainless Steel 20237 20238 20239 20240 20241 20242 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20243 20244 20245 </label> 20246 </div> 20247 20248 20249 <div class="swatch-option-js"> 20250 <input 20251 type="radio" 20252 name="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet" 20253 id="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-matte-black" 20254 value="43782969229359" 20255 data-value="Matte Black" 20256 data-product-variant-title="Matte Black" 20257 data-product-title="Studio® S Wall-Mount Pot Filler Kitchen Faucet" 20258 data-variant-available-in="\US\, \CA\" 20259 product-swatch-input 20260 > 20261 <label for="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-matte-black"> 20262 Matte Black 20263 20264 20265 20266 20267 20268 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20269 20270 20271 </label> 20272 </div> 20273 20274 20275 <div class="swatch-option-js"> 20276 <input 20277 type="radio" 20278 name="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet" 20279 id="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-brushed-cool-sunrise" 20280 value="43622439583791" 20281 data-value="Brushed Cool Sunrise" 20282 data-product-variant-title="Brushed Cool Sunrise" 20283 data-product-title="Studio® S Wall-Mount Pot Filler Kitchen Faucet" 20284 data-variant-available-in="\US\, \CA\" 20285 product-swatch-input 20286 > 20287 <label for="kitchen-faucets-list--studio-r-s-wall-mount-pot-filler-kitchen-faucet-Finish-brushed-cool-sunrise"> 20288 Brushed Cool Sunrise 20289 20290 20291 20292 20293 20294 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20295 20296 20297 </label> 20298 </div> 20299 20300 </product-swatch> 20301 20302 20303 </div> 20304 </div> 20305 20306 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-wall-mount-pot-filler-kitchen-faucet" data-is-sellable="43782969131055/true,43782969163823/true,43782969229359/true,43622439583791/true"> 20307 <form method="post" action="/cart/add" id="product_form_7932857483311" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 20308 <variant-selector class="hidden" data-handle="studio-r-s-wall-mount-pot-filler-kitchen-faucet"></variant-selector> 20309 <input type="hidden" name="qty" value="1" /> 20310 <addtocart-button data-handle="studio-r-s-wall-mount-pot-filler-kitchen-faucet" class="flex" data-build-text> 20311 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
20312 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 20313 </button> 20314 </addtocart-button> 20315 <input type="hidden" name="product-id" value="7932857483311" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 20316 </component-addtocart> 20317 20318 </div> 20319 </div> 20320 20321</product-card> 20322 20323 20324 </div>�<div class="swiper-slide !h-auto"> 20325 20326 <style> 20327 20328 @media screen and (max-width:768px){ 20329 20330 .price-finish-container { 20331 flex-direction: column; 20332 align-items: flex-start; 20333 gap: 0.5rem; 20334 } 20335 20336 collection-listing[data-view-mode="grid"] .text-custom-grid { 20337 font-size: 8px; 20338 } 20339 20340 20341 collection-listing[data-view-mode="list"] .product-card-image { 20342 padding-left: 4rem; 20343 padding-right: 4rem; 20344 } 20345 } 20346</style> 20347 20348 20349 20350 20351 20352 20353 20354<product-card data-handle="studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" data-static class="block h-full 3xl:h-408 product-with-price " > 20355 20356 <div class="product-card-7932850372655 group card-blend-darken flex flex-col h-full"> 20357 20358 <div class="relative"> 20359 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min?variant=43622430703663" title="Polished Chrome"> 20360 <picture> 20361 <source 20362 type="image/webp" 20363 srcset=" 20364 //www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=320 320w, 20365 //www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=480 480w, 20366 //www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=720 720w 20367 " 20368 sizes="(max-width: 768px) 100vw, 480px"> 20369 20370 <img 20371 src="//www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=480" 20372 srcset=" 20373 //www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=320 320w, 20374 //www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=480 480w, 20375 //www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=720 720w 20376 " 20377 sizes="(max-width: 768px) 100vw, 480px" 20378 width="480" height="480" 20379 alt="Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20380 class="w-full block " 20381 loading="lazy" 20382 decoding="async"> 20383 </picture> 20384 20385 20386 <img 20387 width="480" 20388 height="480" 20389 src="//www.americanstandard-us.com/cdn/shop/files/56537_4803300002_1_0_CDNwebp.webp?v=1790748593&width=480" 20390 alt="Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20391 class="w-full !hidden " 20392 loading="lazy" 20393 decoding="async" 20394 > 20395 20396 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 20397 20398 </a> 20399 20400 20401 <compared-products-add-button 20402 data-add-compare-product-btn 20403 data-product-is-sellable="true" 20404 data-product-handle="studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" 20405 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 20406 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 20407 role="button" 20408 aria-label="Compare Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20409 tabindex="0" data-is-sellable="43622430703663/true,43622430736431/true,43622430769199/true,43622430801967/true" >
20410 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 20411 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 20412 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 20413</svg> 20414 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 20415 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 20416</svg> 20417 </compared-products-add-button> 20418 20419 20420 20421 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 <div data-label-variant-id="43622430703663" > 20441 <style> 20442 collection-listing[data-view-mode="grid"] .tag-size-custom { 20443 font-size: 10px; 20444 } 20445</style> 20446 20447 20448 20449 20450 20451 20452 20453 </div> 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 <div data-label-variant-id="43622430736431" class="hidden" > 20475 <style> 20476 collection-listing[data-view-mode="grid"] .tag-size-custom { 20477 font-size: 10px; 20478 } 20479</style> 20480 20481 20482 20483 20484 20485 20486 20487 </div> 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 <div data-label-variant-id="43622430769199" class="hidden" > 20509 <style> 20510 collection-listing[data-view-mode="grid"] .tag-size-custom { 20511 font-size: 10px; 20512 } 20513</style> 20514 20515 20516 20517 20518 20519 20520 20521 </div> 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 <div data-label-variant-id="43622430801967" class="hidden" > 20543 <style> 20544 collection-listing[data-view-mode="grid"] .tag-size-custom { 20545 font-size: 10px; 20546 } 20547</style> 20548 20549 20550 20551 20552 20553 20554 20555 </div> 20556 20557 20558 20559 </div> 20560 20561 </div> 20562 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 20563 <div class="flex flex-col md:justify-between flex-1 gap-2"> 20564 20565 20566 20567 20568 20569 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4803300" data-bv-redirect-url="/products/studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min?variant=43622430703663" data-bv-seo="false"> </div> 20570 20571 20572 20573 <a 20574 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 20575 href="/products/studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min?variant=43622430703663"> 20576 Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min 20577 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 20578 Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min 20579 </span> 20580 </a> 20581 20582 20583 <div class="text-xs text-gray-700"> 20584 <span class="uppercase">Model: </span> 20585 <span >4803300</span> 20586 <span data-swatch-variant-sku class="hidden">4803300.002</span> 20587 </div> 20588 20589 20590 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 20591 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 20592 20593 20594 <span data-price-list="43622430703663" class="hidden">$346.45 </span> 20595 20596 <span data-price-list="43622430736431" class="hidden">$468.00 </span> 20597 20598 <span data-price-list="43622430769199" class="hidden">$468.00 </span> 20599
20600 <span data-price-list="43622430801967" class="hidden">$502.45 </span> 20601 20602 20603 </span> 20604 20605 20606 20607 <product-swatch class="hidden" data-first-variant-selected="43622430703663" data-category-product="Kitchen Faucets"> 20608 20609 20610 <div class="swatch-option-js"> 20611 <input 20612 type="radio" 20613 name="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" 20614 id="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-polished-chrome" 20615 value="43622430703663" 20616 checked data-value="Polished Chrome" 20617 data-product-variant-title="Polished Chrome" 20618 data-product-title="Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20619 data-variant-available-in="\US\, \CA\" 20620 product-swatch-input 20621 > 20622 <label for="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-polished-chrome"> 20623 Polished Chrome 20624 20625 20626 20627 20628 20629 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20630 20631 20632 </label> 20633 </div> 20634 20635 20636 <div class="swatch-option-js"> 20637 <input 20638 type="radio" 20639 name="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" 20640 id="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-stainless-steel" 20641 value="43622430736431" 20642 data-value="Stainless Steel" 20643 data-product-variant-title="Stainless Steel" 20644 data-product-title="Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20645 data-variant-available-in="\US\, \CA\" 20646 product-swatch-input 20647 > 20648 <label for="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-stainless-steel"> 20649 Stainless Steel 20650 20651 20652 20653 20654 20655 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20656 20657 20658 </label> 20659 </div> 20660 20661 20662 <div class="swatch-option-js"> 20663 <input 20664 type="radio" 20665 name="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" 20666 id="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-matte-black" 20667 value="43622430769199" 20668 data-value="Matte Black" 20669 data-product-variant-title="Matte Black" 20670 data-product-title="Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20671 data-variant-available-in="\US\, \CA\" 20672 product-swatch-input 20673 > 20674 <label for="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-matte-black"> 20675 Matte Black 20676 20677 20678 20679 20680 20681 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20682 20683 20684 </label> 20685 </div> 20686 20687 20688 <div class="swatch-option-js"> 20689 <input 20690 type="radio" 20691 name="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" 20692 id="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-brushed-cool-sunrise" 20693 value="43622430801967" 20694 data-value="Brushed Cool Sunrise" 20695 data-product-variant-title="Brushed Cool Sunrise" 20696 data-product-title="Studio® S Pull-Down Dual Spray Kitchen Faucet 1.5 gpm/5.7 L/min" 20697 data-variant-available-in="\US\, \CA\" 20698 product-swatch-input 20699 > 20700 <label for="kitchen-faucets-list--studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-brushed-cool-sunrise"> 20701 Brushed Cool Sunrise 20702 20703 20704 20705 20706 20707 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 20708 20709 20710 </label> 20711 </div> 20712 20713 </product-swatch> 20714 20715 20716 </div> 20717 </div> 20718 20719 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" data-is-sellable="43622430703663/true,43622430736431/true,43622430769199/true,43622430801967/true"> 20720 <form method="post" action="/cart/add" id="product_form_7932850372655" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 20721 <variant-selector class="hidden" data-handle="studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min"></variant-selector> 20722 <input type="hidden" name="qty" value="1" /> 20723 <addtocart-button data-handle="studio-r-s-pull-down-dual-spray-kitchen-faucet-1-5-gpm-5-7-l-min" class="flex" data-build-text> 20724 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
20725 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 20726 </button> 20727 </addtocart-button> 20728 <input type="hidden" name="product-id" value="7932850372655" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 20729 </component-addtocart> 20730 20731 </div> 20732 </div> 20733 20734</product-card> 20735 20736 20737 </div>�<div class="swiper-slide !h-auto"> 20738 20739 <style> 20740 20741 @media screen and (max-width:768px){ 20742 20743 .price-finish-container { 20744 flex-direction: column; 20745 align-items: flex-start; 20746 gap: 0.5rem; 20747 } 20748 20749 collection-listing[data-view-mode="grid"] .text-custom-grid { 20750 font-size: 8px; 20751 } 20752 20753 20754 collection-listing[data-view-mode="list"] .product-card-image { 20755 padding-left: 4rem; 20756 padding-right: 4rem; 20757 } 20758 } 20759</style> 20760 20761 20762 20763 20764 20765 20766 20767<product-card data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" data-static class="block h-full 3xl:h-408 product-with-price " > 20768 20769 <div class="product-card-7932853387311 group card-blend-darken flex flex-col h-full"> 20770 20771 <div class="relative"> 20772 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout?variant=43622434340911" title="Polished Chrome"> 20773 <picture> 20774 <source 20775 type="image/webp" 20776 srcset=" 20777 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=320 320w, 20778 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=480 480w, 20779 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=720 720w 20780 " 20781 sizes="(max-width: 768px) 100vw, 480px"> 20782 20783 <img 20784 src="//www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=480" 20785 srcset=" 20786 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=320 320w, 20787 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=480 480w, 20788 //www.americanstandard-us.com/cdn/shop/files/175521_4803350.002_0_CDNwebp.webp?v=1790748616&width=720 720w 20789 " 20790 sizes="(max-width: 768px) 100vw, 480px" 20791 width="480" height="480" 20792 alt="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 20793 class="w-full block " 20794 loading="lazy" 20795 decoding="async"> 20796 </picture> 20797 20798 20799 <img 20800 width="480" 20801 height="480" 20802 src="//www.americanstandard-us.com/cdn/shop/files/56565_4803350243_1_0_CDNwebp.webp?v=1790748626&width=480" 20803 alt="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 20804 class="w-full !hidden " 20805 loading="lazy" 20806 decoding="async" 20807 > 20808 20809 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 20810 20811 </a> 20812 20813 20814 <compared-products-add-button 20815 data-add-compare-product-btn 20816 data-product-is-sellable="true" 20817 data-product-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 20818 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 20819 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 20820 role="button" 20821 aria-label="Compare Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 20822 tabindex="0" data-is-sellable="43622434340911/true,43622434373679/true,43622434406447/true,43622434439215/true" >
20823 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 20824 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 20825 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 20826</svg> 20827 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 20828 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 20829</svg> 20830 </compared-products-add-button> 20831 20832 20833 20834 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 <div data-label-variant-id="43622434340911" > 20854 <style> 20855 collection-listing[data-view-mode="grid"] .tag-size-custom { 20856 font-size: 10px; 20857 } 20858</style> 20859 20860 20861 20862 20863 20864 20865 20866 </div> 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 <div data-label-variant-id="43622434373679" class="hidden" > 20888 <style> 20889 collection-listing[data-view-mode="grid"] .tag-size-custom { 20890 font-size: 10px; 20891 } 20892</style> 20893 20894 20895 20896 20897 20898 20899 20900 </div> 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 <div data-label-variant-id="43622434406447" class="hidden" > 20922 <style> 20923 collection-listing[data-view-mode="grid"] .tag-size-custom { 20924 font-size: 10px; 20925 } 20926</style> 20927 20928 20929 20930 20931 20932 20933 20934 </div> 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 <div data-label-variant-id="43622434439215" class="hidden" > 20956 <style> 20957 collection-listing[data-view-mode="grid"] .tag-size-custom { 20958 font-size: 10px; 20959 } 20960</style> 20961 20962 20963 20964 20965 20966 20967 20968 </div> 20969 20970 20971 20972 </div> 20973 20974 </div> 20975 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 20976 <div class="flex flex-col md:justify-between flex-1 gap-2"> 20977 20978 20979 20980 20981 20982 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4803350" data-bv-redirect-url="/products/studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout?variant=43622434340911" data-bv-seo="false"> </div> 20983 20984 20985 20986 <a 20987 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 20988 href="/products/studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout?variant=43622434340911"> 20989 Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout 20990 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 20991 Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout 20992 </span> 20993 </a> 20994 20995 20996 <div class="text-xs text-gray-700"> 20997 <span class="uppercase">Model: </span> 20998 <span >4803350</span> 20999 <span data-swatch-variant-sku class="hidden">4803350.002</span> 21000 </div> 21001 21002 21003 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between"> 21004 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 21005 21006 21007 <span data-price-list="43622434340911" class="hidden">$460.20 </span> 21008 21009 <span data-price-list="43622434373679" class="hidden">$621.40 </span> 21010 21011 <span data-price-list="43622434406447" class="hidden">$621.40 </span> 21012
21013 <span data-price-list="43622434439215" class="hidden">$667.55 </span> 21014 21015 21016 </span> 21017 21018 21019 21020 <product-swatch class="hidden" data-first-variant-selected="43622434340911" data-category-product="Kitchen Faucets"> 21021 21022 21023 <div class="swatch-option-js"> 21024 <input 21025 type="radio" 21026 name="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 21027 id="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-polished-chrome" 21028 value="43622434340911" 21029 checked data-value="Polished Chrome" 21030 data-product-variant-title="Polished Chrome" 21031 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 21032 data-variant-available-in="\US\, \CA\" 21033 product-swatch-input 21034 > 21035 <label for="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-polished-chrome"> 21036 Polished Chrome 21037 21038 21039 21040 21041 21042 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21043 21044 21045 </label> 21046 </div> 21047 21048 21049 <div class="swatch-option-js"> 21050 <input 21051 type="radio" 21052 name="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 21053 id="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-stainless-steel" 21054 value="43622434373679" 21055 data-value="Stainless Steel" 21056 data-product-variant-title="Stainless Steel" 21057 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 21058 data-variant-available-in="\US\, \CA\" 21059 product-swatch-input 21060 > 21061 <label for="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-stainless-steel"> 21062 Stainless Steel 21063 21064 21065 21066 21067 21068 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21069 21070 21071 </label> 21072 </div> 21073 21074 21075 <div class="swatch-option-js"> 21076 <input 21077 type="radio" 21078 name="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 21079 id="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-matte-black" 21080 value="43622434406447" 21081 data-value="Matte Black" 21082 data-product-variant-title="Matte Black" 21083 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 21084 data-variant-available-in="\US\, \CA\" 21085 product-swatch-input 21086 > 21087 <label for="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-matte-black"> 21088 Matte Black 21089 21090 21091 21092 21093 21094 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_matte-black_small.png?v=6425312752356525324" alt="Matte Black" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21095 21096 21097 </label> 21098 </div> 21099 21100 21101 <div class="swatch-option-js"> 21102 <input 21103 type="radio" 21104 name="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" 21105 id="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-brushed-cool-sunrise" 21106 value="43622434439215" 21107 data-value="Brushed Cool Sunrise" 21108 data-product-variant-title="Brushed Cool Sunrise" 21109 data-product-title="Studio® S Semi-Pro Pull-Down Dual Spray Kitchen Faucet With Spring Spout" 21110 data-variant-available-in="\US\, \CA\" 21111 product-swatch-input 21112 > 21113 <label for="kitchen-faucets-list--studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout-Finish-brushed-cool-sunrise"> 21114 Brushed Cool Sunrise 21115 21116 21117 21118 21119 21120 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21121 21122 21123 </label> 21124 </div> 21125 21126 </product-swatch> 21127 21128 21129 </div> 21130 </div> 21131 21132 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" data-is-sellable="43622434340911/true,43622434373679/true,43622434406447/true,43622434439215/true"> 21133 <form method="post" action="/cart/add" id="product_form_7932853387311" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 21134 <variant-selector class="hidden" data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout"></variant-selector> 21135 <input type="hidden" name="qty" value="1" /> 21136 <addtocart-button data-handle="studio-r-s-semi-pro-pull-down-dual-spray-kitchen-faucet-with-spring-spout" class="flex" data-build-text> 21137 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
21138 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 21139 </button> 21140 </addtocart-button> 21141 <input type="hidden" name="product-id" value="7932853387311" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 21142 </component-addtocart> 21143 21144 </div> 21145 </div> 21146 21147</product-card> 21148 21149 21150 </div>�<div class="swiper-slide !h-auto"> 21151 21152 <style> 21153 21154 @media screen and (max-width:768px){ 21155 21156 .price-finish-container { 21157 flex-direction: column; 21158 align-items: flex-start; 21159 gap: 0.5rem; 21160 } 21161 21162 collection-listing[data-view-mode="grid"] .text-custom-grid { 21163 font-size: 8px; 21164 } 21165 21166 21167 collection-listing[data-view-mode="list"] .product-card-image { 21168 padding-left: 4rem; 21169 padding-right: 4rem; 21170 } 21171 } 21172</style> 21173 21174 21175 21176 21177 21178 21179 21180<product-card data-handle="delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" data-static class="block h-full 3xl:h-408 product-with-price " > 21181 21182 <div class="product-card-7932846768175 group card-blend-darken flex flex-col h-full"> 21183 21184 <div class="relative"> 21185 <a class="product-card-image px-4 pt-7 pb-0 md:px-16 md:pt-10 md:pb-0 flex group" href="/products/delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min?variant=43622425231407" title="Polished Chrome"> 21186 <picture> 21187 <source 21188 type="image/webp" 21189 srcset=" 21190 //www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=320 320w, 21191 //www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=480 480w, 21192 //www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=720 720w 21193 " 21194 sizes="(max-width: 768px) 100vw, 480px"> 21195 21196 <img 21197 src="//www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=480" 21198 srcset=" 21199 //www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=320 320w, 21200 //www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=480 480w, 21201 //www.americanstandard-us.com/cdn/shop/files/30540_4279300002_1_0_CDNwebp.webp?v=1790748388&width=720 720w 21202 " 21203 sizes="(max-width: 768px) 100vw, 480px" 21204 width="480" height="480" 21205 alt="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21206 class="w-full block " 21207 loading="lazy" 21208 decoding="async"> 21209 </picture> 21210 21211 21212 <img 21213 width="480" 21214 height="480" 21215 src="//www.americanstandard-us.com/cdn/shop/files/168561_Delancey_SiloLeft_4279300.GN0_0002_Jan2023_0_CDNwebp.webp?v=1790748408&width=480" 21216 alt="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21217 class="w-full !hidden " 21218 loading="lazy" 21219 decoding="async" 21220 > 21221 21222 <img width="480" height="480" src="//www.americanstandard-us.com/cdn/shop/files/NO_FINISH_large.jpg?v=3340202965328437195" alt="no-image-media-gallery Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" class="primary-image w-full" style="display: none;" loading="lazy" decoding="async"> 21223 21224 </a> 21225 21226 21227 <compared-products-add-button 21228 data-add-compare-product-btn 21229 data-product-is-sellable="false" 21230 data-product-handle="delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" 21231 data-error-message="You have selected items from a different category. Try comparing products from the same category!" 21232 class="inline-flex items-center gap-0.5 absolute right-[0.59rem] top-[0.66rem] lg:right-[1.13rem] lg:top-[0.81rem] z-10 hover:cursor-pointer [&.active>.icon-add]:hidden [&.active>.icon-remove]:block" 21233 role="button" 21234 aria-label="Compare Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21235 tabindex="0" data-is-sellable="43622425231407/false,43622425264175/false,43622425296943/false,43622425329711/false,43622425362479/false" >
21236 <span class="text-custom-grid font-body font-semibold text-xs text-black leading-none">Compare</span> 21237 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-add block w-4 h-4 text-black icon-add" width="24" height="24" viewBox="0 0 24 24" fill="none"> 21238 <path d="M12.75 11.25V6H11.25V11.25H6V12.75H11.25V18H12.75V12.75H18V11.25H12.75Z" fill="black"/> 21239</svg> 21240 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-subtract hidden w-4 h-4 text-black icon-remove" width="24" height="24" viewBox="0 0 24 24" fill="none"> 21241 <path d="M6 11.25H18V12.75H6V11.25Z" fill="black"/> 21242</svg> 21243 </compared-products-add-button> 21244 21245 21246 21247 <div class="lg:mb-0 absolute left-2 top-[0.69rem] flex flex-col gap-2 lg:left-4 lg:top-[0.87rem]"> 21248 21249 21250 21251 21252 21253 21254 21255 21256 21257 21258 21259 21260 21261 21262 21263 21264 21265 21266 <div data-label-variant-id="43622425231407" > 21267 <style> 21268 collection-listing[data-view-mode="grid"] .tag-size-custom { 21269 font-size: 10px; 21270 } 21271</style> 21272 21273 21274 21275 21276 21277 21278 21279 </div> 21280 21281 21282 21283 21284 21285 21286 21287 21288 21289 21290 21291 21292 21293 21294 21295 21296 21297 21298 21299 21300 <div data-label-variant-id="43622425264175" class="hidden" > 21301 <style> 21302 collection-listing[data-view-mode="grid"] .tag-size-custom { 21303 font-size: 10px; 21304 } 21305</style> 21306 21307 21308 21309 21310 21311 21312 21313 </div> 21314 21315 21316 21317 21318 21319 21320 21321 21322 21323 21324 21325 21326 21327 21328 21329 21330 21331 21332 21333 21334 <div data-label-variant-id="43622425296943" class="hidden" > 21335 <style> 21336 collection-listing[data-view-mode="grid"] .tag-size-custom { 21337 font-size: 10px; 21338 } 21339</style> 21340 21341 21342 21343 21344 21345 21346 21347 </div> 21348 21349 21350 21351 21352 21353 21354 21355 21356 21357 21358 21359 21360 21361 21362 21363 21364 21365 21366 21367 21368 <div data-label-variant-id="43622425329711" class="hidden" > 21369 <style> 21370 collection-listing[data-view-mode="grid"] .tag-size-custom { 21371 font-size: 10px; 21372 } 21373</style> 21374 21375 21376 21377 21378 21379 21380 <span data-label class="tag-size-custom inline-flex items-center justify-center font-body font-bold leading-[0px] text-xs uppercase whitespace-nowrap rounded-full px-3 py-3 h-[1.25rem] bg-black text-white "> 21381 Discontinued 21382 </span> 21383 21384 21385 </div> 21386 21387 21388 21389 21390 21391 21392 21393 21394 21395 21396 21397 21398 21399 21400 21401 21402 21403 21404 21405 21406 <div data-label-variant-id="43622425362479" class="hidden" > 21407 <style> 21408 collection-listing[data-view-mode="grid"] .tag-size-custom { 21409 font-size: 10px; 21410 } 21411</style> 21412 21413 21414 21415 21416 21417 21418 21419 </div> 21420 21421 21422 21423 </div> 21424 21425 </div> 21426 <div class="product-card-info pt-0 relative flex flex-col justify-between flex-1 gap-4"> 21427 <div class="flex flex-col md:justify-between flex-1 gap-2"> 21428 21429 21430 21431 21432 21433 <div class="start-reviews" data-bv-show="inline_rating" data-bv-product-id="4279300" data-bv-redirect-url="/products/delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min?variant=43622425231407" data-bv-seo="false"> </div> 21434 21435 21436 21437 <a 21438 class="group/tooltip relative product-card__name text-sm font-semibold leading-[1.2] line-clamp-2 hover:overflow-visible" 21439 href="/products/delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min?variant=43622425231407"> 21440 Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min 21441 <span class="absolute z-[9999] font-semibold leading-[1.2] top-0 right-0 w-full h-max p-0 bg-gray-50 text-black hidden group-hover/tooltip:block translate-y-0 pb-1"> 21442 Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min 21443 </span> 21444 </a> 21445 21446 21447 <div class="text-xs text-gray-700"> 21448 <span class="uppercase">Model: </span> 21449 <span >4279300</span> 21450 <span data-swatch-variant-sku class="hidden">4279300.002</span> 21451 </div> 21452 21453 21454 <div class="price-finish-container text-sm leading-4 font-bold flex gap-2 flex-row justify-between">
21455 <span class="font-body font-semibold text-black text-base leading-none tracking-[-0.04em] " data-swatch-price> 21456 21457 21458 <span data-price-list="43622425231407" class="hidden">$421.20 </span> 21459 21460 <span data-price-list="43622425264175" class="hidden">$568.75 </span> 21461 21462 <span data-price-list="43622425296943" class="hidden">$568.75 </span> 21463 21464 <span data-price-list="43622425329711" class="hidden">$443.30 </span> 21465 21466 <span data-price-list="43622425362479" class="hidden">$611.00 </span> 21467 21468 21469 </span> 21470 21471 21472 21473 <product-swatch class="hidden" data-first-variant-selected="43622425231407" data-category-product="Kitchen Faucets"> 21474 21475 21476 <div class="swatch-option-js"> 21477 <input 21478 type="radio" 21479 name="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" 21480 id="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-polished-chrome" 21481 value="43622425231407" 21482 checked data-value="Polished Chrome" 21483 data-product-variant-title="Polished Chrome" 21484 data-product-title="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21485 data-variant-available-in="\US\, \CA\" 21486 product-swatch-input 21487 > 21488 <label for="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-polished-chrome"> 21489 Polished Chrome 21490 21491 21492 21493 21494 21495 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-chrome_small.png?v=14569679934955955685" alt="Polished Chrome" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21496 21497 21498 </label> 21499 </div> 21500 21501 21502 <div class="swatch-option-js"> 21503 <input 21504 type="radio" 21505 name="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" 21506 id="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-polished-nickel" 21507 value="43622425264175" 21508 data-value="Polished Nickel" 21509 data-product-variant-title="Polished Nickel" 21510 data-product-title="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21511 data-variant-available-in="\US\, \CA\" 21512 product-swatch-input 21513 > 21514 <label for="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-p
21514olished-nickel"> 21515 Polished Nickel 21516 21517 21518 21519 21520 21521 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_polished-nickel_small.png?v=1216061303722672408" alt="Polished Nickel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21522 21523 21524 </label> 21525 </div> 21526 21527 21528 <div class="swatch-option-js"> 21529 <input 21530 type="radio" 21531 name="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" 21532 id="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-stainless-steel" 21533 value="43622425296943" 21534 data-value="Stainless Steel" 21535 data-product-variant-title="Stainless Steel" 21536 data-product-title="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21537 data-variant-available-in="\US\, \CA\" 21538 product-swatch-input 21539 > 21540 <label for="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-stainless-steel"> 21541 Stainless Steel 21542 21543 21544 21545 21546 21547 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_stainless-steel_small.png?v=7479451105175810415" alt="Stainless Steel" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21548 21549 21550 </label> 21551 </div> 21552 21553 21554 <div class="swatch-option-js"> 21555 <input 21556 type="radio" 21557 name="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" 21558 id="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-legacy-bronze" 21559 value="43622425329711" 21560 data-value="Legacy Bronze" 21561 data-product-variant-title="Legacy Bronze" 21562 data-product-title="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21563 data-variant-available-in="\US\" 21564 product-swatch-input 21565 > 21566 <label for="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-legacy-bronze"> 21567 Legacy Bronze 21568 21569 21570 21571 21572 21573 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_legacy-bronze_small.png?v=18037087531363801800" alt="Legacy Bronze" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21574 21575 21576 </label> 21577 </div> 21578 21579 21580 <div class="swatch-option-js"> 21581 <input 21582 type="radio" 21583 name="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" 21584 id="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-brushed-cool-sunrise" 21585 value="43622425362479" 21586 data-value="Brushed Cool Sunrise" 21587 data-product-variant-title="Brushed Cool Sunrise" 21588 data-product-title="Delancey® Single-Handle Pull-Down Dual Spray Function Kitchen Faucet 1.5 gpm/5.7 L/min" 21589 data-variant-available-in="\US\, \CA\" 21590 product-swatch-input 21591 > 21592 <label for="kitchen-faucets-list--delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min-Finish-brushed-cool-sunrise"> 21593 Brushed Cool Sunrise 21594 21595 21596 21597 21598 21599 <img src="//www.americanstandard-us.com/cdn/shop/files/swatch_-_color_-_brushed-cool-sunrise_small.png?v=16205232625255024585" alt="Brushed Cool Sunrise" width="14" height="14" onerror="this.onerror=null;this.src=`//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305`;" loading="lazy"/> 21600 21601 21602 </label> 21603 </div> 21604 21605 </product-swatch> 21606 21607 21608 </div> 21609 </div> 21610 21611 <component-addtocart class="md:absolute md:top-[24px] md:right-4 md:-translate-y-1/2 md:opacity-0 md:group-hover:opacity-100 " data-handle="delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" data-is-sellable="43622425231407/false,43622425264175/false,43622425296943/false,43622425329711/false,43622425362479/false"> 21612 <form method="post" action="/cart/add" id="product_form_7932846768175" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate" data-product-form=""><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /> 21613 <variant-selector class="hidden" data-handle="delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min"></variant-selector> 21614 <input type="hidden" name="qty" value="1" /> 21615 <addtocart-button data-handle="delancey-r-single-handle-pull-down-dual-spray-function-kitchen-faucet-1-5-gpm-5-7-l-min" class="flex" data-build-text> 21616 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled>
21617 <span class="flex items-center" data-add-to-cart-icon="true">Out of Stock</span> 21618 </button> 21619 </addtocart-button> 21620 <input type="hidden" name="product-id" value="7932846768175" /><input type="hidden" name="section-id" value="template--19594871701551__collection_tabs_Y3ReVU" /></form> 21621 </component-addtocart> 21622 21623 </div> 21624 </div> 21625 21626</product-card> 21627 21628 21629 </div> 21630 </div> 21631 21632 21633 <button type="button" class="swiper-example-button-prev default-button-prev !top-[42%] !left-4 lg:!left-0" aria-label="Previous slide"></button> 21634 <button type="button" class="swiper-example-button-next default-button-next !top-[42%] !right-4 lg:!right-0" aria-label="Next slide"></button> 21635 21636 </swiper-slider> 21637 </div> 21638 21639 <div class="text-center m-4"> 21640 21641 21642 <a 21643 href="" 21644 class="btn " 21645 > 21646 View All 21647 </a> 21648 </div> 21649 21650 </div> 21651 21652 </div> 21653 </div> 21654 </component-tabs> 21655 21656</div> 21657
21658<script> 21659document.addEventListener('DOMContentLoaded', function() { 21660 const sectionId = "shopify-section-template--19594871701551__collection_tabs_Y3ReVU"; 21661 const tabButtons = document.querySelectorAll(`#${sectionId} [role="tab"]`); 21662 const tabPanels = document.querySelectorAll(`#${sectionId} [role="tabpanel"]`); 21663 21664 // Tab switching logic 21665 tabButtons.forEach((btn, idx) => { 21666 btn.addEventListener('click', function() { 21667 tabButtons.forEach(b => { 21668 b.setAttribute('aria-selected', 'false'); 21669 b.setAttribute('tabindex', '-1'); 21670 }); 21671 btn.setAttribute('aria-selected', 'true'); 21672 btn.setAttribute('tabindex', '0'); 21673 21674 tabPanels.forEach((panel, pidx) => { 21675 if (pidx === idx) { 21676 panel.removeAttribute('hidden'); 21677 panel.classList.add('active'); 21678 } else { 21679 panel.setAttribute('hidden', ''); 21680 panel.classList.remove('active'); 21681 } 21682 }); 21683 }); 21684 }); 21685 21686 // Hide other categories logic (mantido, mas otimizado) 21687 21688}); 21689</script>
21689 21690 21691 21692</div><div id="shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm" class="shopify-section"> 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705<style> 21706 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm { 21707 padding-top: 0.0rem; 21708 padding-bottom: 0.0rem; 21709 } 21710 21711 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm div, 21712 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm p { 21713 color: var(--text-color); 21714 } 21715 21716 @media (max-width: 1023px) { 21717 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm { 21718 padding-top: 0.0rem; 21719 padding-bottom: 0.0rem; 21720 } 21721 21722 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm div, 21723 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm p { 21724 color: var(--text-color-mob); 21725 } 21726 } 21727 banner-overlay .swiper-pagination-bullet { 21728 background-color: #fff; 21729 } 21730 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm img { 21731 object-position: center !important; 21732 } 21733 21734 @media (max-width: 768px) { 21735 #shopify-section-template--19594871701551__banner_overlay_home_services_EMECAm img { 21736 object-position: center !important; 21737 } 21738 } 21739 21740 #icon-template--19594871701551__banner_overlay_home_services_EMECAm { 21741 width: 50px; 21742 z-index: 1; 21743 } 21744 21745 @media (min-width: 768px) { 21746 #icon-template--19594871701551__banner_overlay_home_services_EMECAm { 21747 width: 100px; 21748 } 21749 } 21750 21751</style> 21752 21753 21754 21755<banner-overlay> 21756 21757 21758 21759 21760 <div class="relative mx-auto container pt-6 lg:pt-0 " > 21761 21762 <div class="relative "> 21763 21764 21765 21766 21767<style> 21768 21769 .responsive-image--c761f2cb3d37ff54a1215531353679bd img { 21770 aspect-ratio: 1.4917355371900827; 21771 } 21772 21773 21774 21775 @media screen and (min-width: 640px) { 21776 .responsive-image--c761f2cb3d37ff54a1215531353679bd img { 21777 aspect-ratio: 2.4285714285714284; 21778 } 21779 } 21780 21781 21782 21783 @media screen and (min-width: 1023px) { 21784 .responsive-image--c761f2cb3d37ff54a1215531353679bd img { 21785 aspect-ratio: 2.4285714285714284; 21786 } 21787 } 21788 21789</style> 21790 21791<div class="responsive-image responsive-image--c761f2cb3d37ff54a1215531353679bd w-full"> 21792 <div class=" lazy-loading"> 21793 21794 <picture> 21795 <source media="(max-width: 639px)" srcset="//www.americanstandard-us.com/cdn/shop/files/banner-bg_mobile_800x.png?v=1759252458"> 21796 <source media="(max-width: 1023px)" srcset="//www.americanstandard-us.com/cdn/shop/files/banner-bg_desktop_1000x.png?v=1778777392"> 21797 <img 21798 id="" 21799 style="width: 100%;" 21800 src="//www.americanstandard-us.com/cdn/shop/files/banner-bg_desktop_1800x.png?v=1778777392" 21801 alt="Banner overlay image" 21802 21803 loading="lazy" 21804 21805 width="2720" 21806 height="1120" 21807 21808 class="" 21809 decoding="async" 21810 > 21811 </picture> 21812 21813 </div> 21814</div> 21815 21816 21817 <div class="hidden lg:block lg:absolute lg:inset-0 lg:bg-gradient-to-r from-black/60 to-transparent"> 21818 </div> 21819 21820 21821 21822 <div class="lg:absolute lg:inset-0 lg:py-5 lg:px-10 w-full h-full flex items-center justify-center lg:items-center lg:justify-start"> 21823 21824 <div class="text-center lg:text-left md:max-w-xl lg:px-0 mt-6 mb-10 lg:my-0"> 21825 21826 21827 21828 21829 21830 21831 <div class="flex justify-center lg:justify-start mb-3 lg:mb-5"> 21832 <img 21833 src="//www.americanstandard-us.com/cdn/shop/files/logo_1.svg?v=1759260974&width=500" 21834 alt="" 21835 class="w-auto h-auto max-w-[200px] max-h-[20px]" 21836 height="auto" 21837 width="auto" 21838 loading="lazy" 21839 /> 21840 </div> 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 <div style="--text-color: #ffffff;--text-color-mob: #000000;"> 21851 <h1 class="text-[32px] leading-[35.2px] -tracking-[1.28px] md:text-[56px] md:leading-[56px] md:-tracking-[2.24px] font-bold font-title ">Inspired by Your Life. Transformed by Us.</h1> 21852 </div> 21853 21854 21855 21856 21857 21858 21859 21860 21861 21862 <div class="banner-overlay__block-text [&>ul]:list-disc [&>ol]:list-decimal [&>ol]:ml-4 [&>ul]:ml-4 text-base pt-3 " style="--text-color:#ffffff;--text-color-mob:#000000;"> 21863 <p>In as little as two days, weâll take care of your entire shower or tub remodelâfrom design to installation and removalâbacked by a lifetime warranty. All you have to do is love your new bathroom.</p> 21864 </div> 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 21878 21879 21880 21881 21882 <div class="button-wrapper flex gap-4 justify-center lg:justify-start mt-6 md:mt-10 "> 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893<a class="btn text-center w-full !px-0 md:max-w-[238.5px] " href="https://www.americanstandard-us.com/pages/shower-tub?utm_content=hp_s-t" target="_self">Showers + Tubs</a> 21894 21895 21896<a class="btn text-center w-full !px-0 md:max-w-[238.5px] " href="https://www.americanstandard-us.com/pages/walk-in-tub?utm_content=hp_wit" target="_self">Walk-In Tubs</a> 21897 21898 21899 21900 </div> 21901 21902 21903 </div> 21904 21905 </div> 21906 </div> 21907 21908 </div> 21909 21910</banner-overlay> 21911 21912 21913</div><div id="shopify-section-template--19594871701551__images_gallery_XRbKMj" class="shopify-section"> 21914 <style> 21915 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__image, 21916 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__image img { 21917 aspect-ratio: 1.6; 21918 } 21919 21920 @media (min-width: 768px) { 21921 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__image, 21922 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__image img { 21923 aspect-ratio: 1.2; 21924 } 21925 21926 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__grid { 21927 display: flex; 21928 flex-wrap: wrap; 21929 gap: 20px 24px; 21930 21931 justify-content: flex-start; 21932 21933 } 21934 21935 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__grid > a { 21936 21937 flex: 1 1 calc(50% - 12px); 21938 max-width: none; 21939 width: auto; 21940 min-width: 0; 21941 21942 } 21943 } 21944 21945 @media (min-width: 1024px) { 21946 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__grid > a { 21947 21948 flex-basis: calc(25% - 18px); 21949 21950 } 21951 21952 21953 } 21954 21955 21956 #shopify-section-template--19594871701551__images_gallery_XRbKMj .images-gallery__carousel .swiper-slide > a { 21957 width: 100%; 21958 max-width: none; 21959 } 21960 21961</style> 21962 21963 21964<section class="container mb-10 mt-5 lg:mb-20"> 21965 21966 <h4 class="mb-6 text-center font-bold tracking-normal">Shop by Category</h4> 21967 21968 21969 <div class="images-gallery__grid grid grid-cols-1 gap-x-6 gap-y-5"> 21970 21971 <a href=" 21972/collections/bathroom" class="relative flex flex-col gap-2 w-full"> 21973 <picture class="block bg-loading images-gallery__image template--19594871701551__images_gallery_XRbKMj-image"> 21974 21975 21976 21977 21978 21979 <img src="//www.americanstandard-us.com/cdn/shop/files/img-1.png?v=1728303387&width=400" alt="Image" srcset="//www.americanstandard-us.com/cdn/shop/files/img-1.png?v=1728303387&width=280 280w, //www.americanstandard-us.com/cdn/shop/files/img-1.png?v=1728303387&width=320 320w, //www.americanstandard-us.com/cdn/shop/files/img-1.png?v=1728303387&width=400 400w" width="1200" height="615" loading="lazy" sizes="(max-width: 767px) calc(100vw - 32px), (max-width: 1023px) 50vw, 280px" class="w-full object-cover h-full" decoding="async"> 21980 21981 21982 21983 </picture> 21984 <span class="block text-lg font-medium md:text-xl text-center tracking-normal"> 21985 Bathroom 21986 </span> 21987</a> 21988 21989 21990 <a href=" 21991/collections/kitchen" class="relative flex flex-col gap-2 w-full"> 21992 <picture class="block bg-loading images-gallery__image template--19594871701551__images_gallery_XRbKMj-image"> 21993 21994 21995 21996 21997 21998 <img src="//www.americanstandard-us.com/cdn/shop/files/img-2.png?v=1728303387&width=400" alt="Image" srcset="//www.americanstandard-us.com/cdn/shop/files/img-2.png?v=1728303387&width=280 280w, //www.americanstandard-us.com/cdn/shop/files/img-2.png?v=1728303387&width=320 320w, //www.americanstandard-us.com/cdn/shop/files/img-2.png?v=1728303387&width=400 400w" width="1170" height="600" loading="lazy" sizes="(max-width: 767px) calc(100vw - 32px), (max-width: 1023px) 50vw, 280px" class="w-full object-cover h-full" decoding="async"> 21999 22000 22001 22002 </picture> 22003 <span class="block text-lg font-medium md:text-xl text-center tracking-normal"> 22004 Kitchens 22005 </span> 22006</a> 22007 22008 22009 <a href=" 22010/pages/innovations" class="relative flex flex-col gap-2 w-full"> 22011 <picture class="block bg-loading images-gallery__image template--19594871701551__images_gallery_XRbKMj-image"> 22012 22013 22014 22015 22016 22017 <img src="//www.americanstandard-us.com/cdn/shop/files/img-3.png?v=1728303387&width=400" alt="Image" srcset="//www.americanstandard-us.com/cdn/shop/files/img-3.png?v=1728303387&width=280 280w, //www.americanstandard-us.com/cdn/shop/files/img-3.png?v=1728303387&width=320 320w, //www.americanstandard-us.com/cdn/shop/files/img-3.png?v=1728303387&width=400 400w" width="750" height="750" loading="lazy" sizes="(max-width: 767px) calc(100vw - 32px), (max-width: 1023px) 50vw, 280px" class="w-full object-cover h-full" decoding="async"> 22018 22019 22020 22021 </picture> 22022 <span class="block text-lg font-medium md:text-xl text-center tracking-normal"> 22023 Features and Innovations 22024 </span> 22025</a> 22026 22027 22028 <a href=" 22029/collections/premium-toilets" class="relative flex flex-col gap-2 w-full"> 22030 <picture class="block bg-loading images-gallery__image template--19594871701551__images_gallery_XRbKMj-image"> 22031 22032 22033 22034 22035 22036 <img src="//www.americanstandard-us.com/cdn/shop/files/Aspirations_Ecostrength_EnvironmentCloseUp_2.webp?v=1779481705&width=400" alt="Image" srcset="//www.americanstandard-us.com/cdn/shop/files/Aspirations_Ecostrength_EnvironmentCloseUp_2.webp?v=1779481705&width=280 280w, //www.americanstandard-us.com/cdn/shop/files/Aspirations_Ecostrength_EnvironmentCloseUp_2.webp?v=1779481705&width=320 320w, //www.americanstandard-us.com/cdn/shop/files/Aspirations_Ecostrength_EnvironmentCloseUp_2.webp?v=1779481705&width=400 400w" width="496" height="496" loading="lazy" sizes="(max-width: 767px) calc(100vw - 32px), (max-width: 1023px) 50vw, 280px" class="w-full object-cover h-full" decoding="async" style="object-position:52.69% 93.71%;"> 22037 22038 22039 22040 </picture> 22041 <span class="block text-lg font-medium md:text-xl text-center tracking-normal"> 22042 Premium Toilets 22043 </span> 22044</a> 22045 22046 22047 </div> 22048</section> 22049 22050 22051 22052 22053</div><div id="shopify-section-template--19594871701551__image_slide_R8cKKz" class="shopify-section"><div class="my-10 md:container "> 22054 <component-tabs> 22055 22056 <h3 class="font-bold text-2xl text-center xl:text-4xl tracking-normal">Shop by Style</h3> 22057 22058 22059 <div class="tabs"> 22060 22061 <ul class="tabs__heading-wrapper max-md:justify-center pt-4 px-4 md:px-0 " role="tablist"> 22062 22063 <li class="tabs__heading active " role="presentation"> 22064 <button role="tab" type="text" data-tab-heading-index="0" aria-controls="content-0">Bathroom</button> 22065 </li> 22066 22067 <li class="tabs__heading " role="presentation"> 22068 <button role="tab" type="text" data-tab-heading-index="1" aria-controls="content-1">Kitchen</button> 22069 </li> 22070 22071 </ul> 22072 <div class="tabs__content-wrapper pt-6"> 22073 22074 <div id="content-0" class="tabs__content active " data-tab-content-index="0"> 22075 22076 <swiper-slider 22077 class="swiper block w-full h-auto " 22078 data-options='{ 22079 "centerInsufficientSlides": "true", 22080 "spaceBetween": 12, 22081 "slidesPerView": 1.2, 22082 "centeredSlides": true, 22083 "loop": true, 22084 "breakpoints": { 22085 "640": { 22086 "slidesPerView": 1.2, 22087 "spaceBetween": 12 22088 }, 22089 "768": { 22090 "slidesPerView": 2.1, 22091 "spaceBetween": 16, 22092 "centeredSlides": false, 22093 "loop": false 22094 }, 22095 "1024": { 22096 "slidesPerView": 3, 22097 "spaceBetween": 20, 22098 "centeredSlides": false, 22099 "loop": false 22100 }, 22101 "1280": { 22102 "slidesPerView": 3, 22103 "spaceBetween": 24, 22104 "centeredSlides": false, 22105 "loop": false 22106 }, 22107 "1920": { 22108 "slidesPerView": 3, 22109 "spaceBetween": 24, 22110 "centeredSlides": false, 22111 "loop": false 22112 } 22113 } 22114 }' 22115 data-view-mobile="1.2" 22116 data-view-mobile-extra="2.1" 22117 data-view-tablet="3" 22118 data-view-tablet-extra="3" 22119 data-view-desktop="3" 22120 data-prev-button-class=".template--19594871701551__image_slide_R8cKKz-prev" 22121 data-next-button-class=".template--19594871701551__image_slide_R8cKKz-next"> 22122 22123 <div class="swiper-wrapper"> 22124 22125 22126 22127 22128 22129 22130 22131 22132 22133 22134 <div class="relative swiper-slide flex flex-col gap-3"> 22135 22136 22137 22138 22139 <img src="//www.americanstandard-us.com/cdn/shop/files/tab-1.png?v=1728303551&width=400" alt="Classic" srcset="//www.americanstandard-us.com/cdn/shop/files/tab-1.png?v=1728303551&width=300 300w, //www.americanstandard-us.com/cdn/shop/files/tab-1.png?v=1728303551&width=341 341w, //www.americanstandard-us.com/cdn/shop/files/tab-1.png?v=1728303551&width=400 400w" width="438" height="496" loading="lazy" sizes="(max-width: 767px) 80vw, (max-width: 1023px) 42vw, 300px" class="h-full object-cover w-full !aspect-auto" decoding="async"> 22140 22141 22142 22143 <div class="pt-3 text-lg text-center font-medium xl:text-xl">Classic</div> 22144 22145 22146 <a href="/collections/traditional-bathroom-collections" class="opacity-0 absolute inset-0 w-full h-full">Classic</a> 22147 22148 22149 </div> 22150 22151 22152 22153 22154 22155 22156 22157 22158 22159 22160 22161 <div class="relative swiper-slide flex flex-col gap-3"> 22162 22163 22164 22165 22166 <img src="//www.americanstandard-us.com/cdn/shop/files/tab-2.png?v=1728303551&width=400" alt="Transitional" srcset="//www.americanstandard-us.com/cdn/shop/files/tab-2.png?v=1728303551&width=300 300w, //www.americanstandard-us.com/cdn/shop/files/tab-2.png?v=1
22166728303551&width=341 341w, //www.americanstandard-us.com/cdn/shop/files/tab-2.png?v=1728303551&width=400 400w" width="438" height="496" loading="lazy" sizes="(max-width: 767px) 80vw, (max-width: 1023px) 42vw, 300px" class="h-full object-cover w-full !aspect-auto" decoding="async"> 22167 22168 22169 22170 <div class="pt-3 text-lg text-center font-medium xl:text-xl">Transitional</div> 22171 22172 22173 <a href="/collections/transitional-bathroom-collections" class="opacity-0 absolute inset-0 w-full h-full">Transitional</a> 22174 22175 22176 </div> 22177 22178 22179 22180 22181 22182 22183 22184 22185 22186 22187 22188 <div class="relative swiper-slide flex flex-col gap-3"> 22189 22190 22191 22192 22193 <img src="//www.americanstandard-us.com/cdn/shop/files/tab-3.png?v=1728303551&width=400" alt="Modern" srcset="//www.americanstandard-us.com/cdn/shop/files/tab-3.png?v=1728303551&width=300 300w, //www.americanstandard-us.com/cdn/shop/files/tab-3.png?v=1728303551&width=341 341w, //www.americanstandard-us.com/cdn/shop/files/tab-3.png?v=1728303551&width=400 400w" width="438" height="496" loading="lazy" sizes="(max-width: 767px) 80vw, (max-width: 1023px) 42vw, 300px" class="h-full object-cover w-full !aspect-auto" decoding="async"> 22194 22195 22196 22197 <div class="pt-3 text-lg text-center font-medium xl:text-xl">Modern</div> 22198 22199 22200 <a href="/collections/modern-bathroom-collections" class="opacity-0 absolute inset-0 w-full h-full">Modern</a> 22201 22202 22203 </div> 22204 22205 22206 22207 22208 22209 22210 22211 22212 22213 22214 22215 22216 22217 22218 22219 22220 22221 22222 22223 22224 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 </div> 22237 22238 <div class="swiper-pagination !hidden"></div> 22239 <button type="button" class=" default-button-prev template--19594871701551__image_slide_R8cKKz-prev !top-[40%]" aria-label="Previous slide"></button> 22240 <button type="button" class=" default-button-next template--19594871701551__image_slide_R8cKKz-next !top-[40%]" aria-label="Next slide"></button> 22241 22242 </swiper-slider> 22243 </div> 22244 22245 <div id="content-1" class="tabs__content " data-tab-content-index="1"> 22246 22247 <swiper-slider 22248 class="swiper block w-full h-auto " 22249 data-options='{ 22250 "centerInsufficientSlides": "true", 22251 "spaceBetween": 12, 22252 "slidesPerView": 1.2, 22253 "centeredSlides": true, 22254 "loop": true, 22255 "breakpoints": { 22256 "640": { 22257 "slidesPerView": 1.2, 22258 "spaceBetween": 12 22259 }, 22260 "768": { 22261 "slidesPerView": 2.1, 22262 "spaceBetween": 16, 22263 "centeredSlides": false, 22264 "loop": false 22265 }, 22266 "1024": { 22267 "slidesPerView": 3, 22268 "spaceBetween": 20, 22269 "centeredSlides": false, 22270 "loop": false 22271 }, 22272 "1280": { 22273 "slidesPerView": 3, 22274 "spaceBetween": 24, 22275 "centeredSlides": false, 22276 "loop": false 22277 }, 22278 "1920": { 22279 "slidesPerView": 3, 22280 "spaceBetween": 24, 22281 "centeredSlides": false, 22282 "loop": false 22283 } 22284 } 22285 }' 22286 data-view-mobile="1.2" 22287 data-view-mobile-extra="2.1" 22288 data-view-tablet="3" 22289 data-view-tablet-extra="3" 22290 data-view-desktop="3" 22291 data-prev-button-class=".template--19594871701551__image_slide_R8cKKz-prev" 22292 data-next-button-class=".template--19594871701551__image_slide_R8cKKz-next"> 22293 22294 <div class="swiper-wrapper"> 22295 22296 22297 22298 22299 22300 22301 22302 22303 22304 22305 <div class="relative swiper-slide flex flex-col gap-3"> 22306 22307 22308 22309 22310 <img src="//www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Classic.jpg?v=1728507373&width=400" alt="Classic" srcset="//www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Classic.jpg?v=1728507373&width=300 300w, //www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Classic.jpg?v=1728507373&width=341 341w, //www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Classic.jpg?v=1728507373&width=400 400w" width="1200" height="1255" loading="lazy" sizes="(max-width: 767px) 80vw, (max-width: 1023px) 42vw, 300px" class="h-full object-cover w-full !aspect-auto" decoding="async"> 22311 22312 22313 22314 <div class="pt-3 text-lg text-center font-medium xl:text-xl">Classic</div> 22315 22316 22317 <a href="/collections/traditional-kitchen-collections" class="opacity-0 absolute inset-0 w-full h-full">Classic</a> 22318 22319 22320 </div> 22321 22322 22323 22324 22325 22326 22327 22328 22329 22330 22331 22332 <div class="relative swiper-slide flex flex-col gap-3"> 22333 22334 22335 22336 22337 <img src="//www.americanstandard-us.com/cdn/shop/files/SBS_Transitional.jpg?v=1728507427&width=400" alt="Transitional" srcset="//www.americanstandard-us.com/cdn/shop/files/SBS_Transitional.jpg?v=1728507427&width=300 300w, //www.americanstandard-us.com/cdn/shop/files/SBS_Transitional.jpg?v=1728507427&width=341 341w, //www.americanstandard-us.com/cdn/shop/files/SBS_Transitional.jpg?v=1728507427&width=400 400w" width="1200" height="1255" loading="lazy" sizes="(max-width: 767px) 80vw, (max-width: 1023px) 42vw, 300px" class="h-full object-cover w-full !aspect-auto" decoding="async"> 22338 22339 22340 22341 <div class="pt-3 text-lg text-center font-medium xl:text-xl">Transitional</div> 22342 22343 22344 <a href="/collections/transitional-kitchen-collections" class="opacity-0 absolute inset-0 w-full h-full">Transitional</a> 22345 22346 22347 </div> 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 <div class="relative swiper-slide flex flex-col gap-3"> 22360 22361 22362 22363 22364 <img src="//www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Modern.jpg?v=1728507433&width=400" alt="Modern" srcset="//www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Modern.jpg?v=1728507433&width=300 300w, //www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Modern.jpg?v=1728507433&width=341 341w, //www.americanstandard-us.com/cdn/shop/files/SBS_Kitchen_Modern.jpg?v=1728507433&width=400 400w" width="1200" height="1255" loading="lazy" sizes="(max-width: 767px) 80vw, (max-width: 1023px) 42vw, 300px" class="h-full object-cover w-full !aspect-auto" decoding="async"> 22365 22366 22367 22368 <div class="pt-3 text-lg text-center font-medium xl:text-xl">Modern</div> 22369 22370 22371 <a href="/collections/modern-kitchen-collections" class="opacity-0 absolute inset-0 w-full h-full">Modern</a> 22372 22373 22374 </div> 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 22388 22389 22390 22391 22392 22393 22394 22395 22396 22397 22398 22399 22400 22401 22402 22403 22404 22405 22406 22407 </div> 22408 22409 <div class="swiper-pagination !hidden"></div> 22410 <button type="button" class=" default-button-prev template--19594871701551__image_slide_R8cKKz-prev !top-[40%]" aria-label="Previous slide"></button> 22411 <button type="button" class=" default-button-next template--19594871701551__image_slide_R8cKKz-next !top-[40%]" aria-label="Next slide"></button> 22412
22413 </swiper-slider> 22414 </div> 22415 22416 22417 </div> 22418 </div> 22419 </component-tabs> 22420</div> 22421 22422 22423 22424 22425 22426 22427 22428 22429</div><div id="shopify-section-template--19594871701551__hero_NMghJr" class="shopify-section section-hero"><style> 22430 #shopify-section-template--19594871701551__hero_NMghJr .hero--info { 22431 background: #fafafa; 22432 } 22433 22434 22435 #shopify-section-template--19594871701551__hero_NMghJr .responsive-image { 22436 width: 100%; 22437 height: 100%; 22438 } 22439 #shopify-section-template--19594871701551__hero_NMghJr .responsive-image div { 22440 width: 100%; 22441 height: 100%; 22442 } 22443 #shopify-section-template--19594871701551__hero_NMghJr .responsive-image img { 22444 min-height: 242px; 22445 height: 100%; 22446 } 22447 22448</style> 22449 22450<div class="page-container my-6 lg:my-10"> 22451 <div class="container flex flex-col lg:flex-row-reverse gap-3"> 22452 22453 <div class="hero--image h-auto min-h-[242px] lg:min-h-[560px] !max-w-none w-full"> 22454 22455 22456 22457 22458 22459 22460 22461<style> 22462 22463 .responsive-image--29d5ce6e9d9cbdd838ec588abfad6f7d img { 22464 aspect-ratio: 1.946768060836502; 22465 } 22466 22467 22468 22469 @media screen and (min-width: 640px) { 22470 .responsive-image--29d5ce6e9d9cbdd838ec588abfad6f7d img { 22471 aspect-ratio: 1.457142857142857; 22472 } 22473 } 22474 22475 22476 22477 @media screen and (min-width: 1023px) { 22478 .responsive-image--29d5ce6e9d9cbdd838ec588abfad6f7d img { 22479 aspect-ratio: 1.457142857142857; 22480 } 22481 } 22482 22483</style> 22484 22485<div class="responsive-image responsive-image--29d5ce6e9d9cbdd838ec588abfad6f7d w-full"> 22486 <div class=" lazy-loading"> 22487 22488 <picture> 22489 22490 <source 22491 type="image/webp" 22492 media="(max-width: 639px)" 22493 srcset=" 22494 //www.americanstandard-us.com/cdn/shop/files/heroimage.png?format=webp&v=1728302716&width=400 400w, 22495 //www.americanstandard-us.com/cdn/shop/files/heroimage.png?format=webp&v=1728302716&width=480 480w, 22496 //www.americanstandard-us.com/cdn/shop/files/heroimage.png?format=webp&v=1728302716&width=480 480w 22497 " 22498 sizes="100vw" 22499 > 22500 22501 22502 <source 22503 type="image/webp" 22504 media="(max-width: 1023px)" 22505 srcset=" 22506 //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=600 600w, 22507 //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=800 800w, 22508 //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=900 900w 22509 " 22510 sizes="100vw" 22511 > 22512 22513 22514 <img src="//www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=1400" alt="Hero image" srcset="//www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=400 400w, //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=480 480w, //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=600 600w, //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=800 800w, //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=1000 1000w, //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=1200 1200w, //www.americanstandard-us.com/cdn/shop/files/Image20250421165716.jpg?format=webp&v=1745269048&width=1400 1400w" width="816" height="560" loading="lazy" sizes="(max-width: 639px) 100vw, (max-width: 1023px) 100vw, 1400px" format="webp" decoding="async"> 22515 </picture> 22516 22517 </div> 22518</div> 22519 22520 </div> 22521 22522 22523 22524 <div class="hero--info px-4 md:justify-end md:items-start md:text-left"> 22525 22526 <h2 class="hero--info-title ">RoomCreate Design Solutions</h2> 22527 22528 22529 <div class="hero--info-text mt-3"><p>Before you get out the hardware, explore our augmented-reality tools and curated looks to help bring to life your remodeling projects.</p></div> 22530 22531 22532 <div class="mt-6 w-full flex flex-col gap-4"> 22533 <a class="btn px-2 text-center w-full md:w-fit !px-8" href="/pages/roomcreate">Explore Design Solutions</a> 22534 22535 </div> 22536 22537 </div> 22538 22539 </div> 22540</div> 22541 22542</div> 22543 22544 22545 22546 <div id="shopify-section-footer" class="shopify-section"> 22547 22548 22549 22550 22551 22552 <footer> 22553 <div class="container flex flex-col gap-10 py-6 md:flex-row md:justify-between md:py-16 lg:px-[3.625rem]"> 22554 <div class="flex flex-col flex-1 gap-6 md:justify-between md:max-w-[17.75rem]"> 22555 <div class="flex flex-col max-md:flex-1 gap-3"> 22556 <div class="pb-3 border-b border-primary"> 22557 <a href="" aria-label="American Standard - Translation missing: en.accessibility.home"> 22558 <svg role="presentation" aria-hidden="true" focusable="false" class="w-[14rem] h-7" xmlns="http://www.w3.org/2000/svg" width="154" height="18" viewBox="0 0 154 18" fill="none"> 22559 <path d="M90.408 0.373783C88.7615 0.959157 87.5916 1.82638 86.855 2.97545C86.27 3.88603 86.205 4.12451 86.27 5.42534C86.335 6.74786 86.4434 7.00802 87.4183 8.43894C89.5198 11.4742 89.9098 12.1897 89.9098 13.0135C89.9098 15.5285 85.9451 16.2222 83.8002 14.0759C83.0636 13.3604 82.9769 13.1436 82.9769 12.1897C82.9769 11.3875 83.1069 10.9322 83.5186 10.3902C83.7204 10.1378 83.9016 9.86958 84.0602 9.58801C84.0602 9.54464 83.8219 9.52296 83.5186 9.52296C82.8903 9.52296 81.5687 10.6287 81.0921 11.5393C80.6588 12.3848 80.6588 14.0325 81.1138 14.8997C81.8287 16.2656 83.5186 17.1111 85.5551 17.1111C89.4548 17.1111 92.7479 14.6612 92.7262 11.7994C92.7045 11.084 91.9679 9.63137 90.538 7.57172C89.4548 5.98904 89.1731 5.42534 89.0865 4.55812C88.9565 3.21393 89.4981 2.36839 90.7764 1.84806C91.8813
225591.41445 92.7045 1.41445 93.3328 1.84806C93.9178 2.25999 93.9394 2.5852 93.3762 3.66922C92.7912 4.83997 92.8129 4.97005 93.7661 4.97005C96.1926 4.97005 97.5142 1.9131 95.6943 0.547226C94.8277 -0.10319 91.9896 -0.189911 90.408 0.373783Z" fill="black"/> 22560 <path d="M127.607 0.807419C126.892 1.15431 126.784 1.34943 125.787 4.38471L124.726 7.57174L124.249 7.13813C123.274 6.22755 121.302 6.76956 119.764 8.37392C118.919 9.24114 117.793 11.3442 117.554 12.4499C117.229 13.9241 116.06 15.0515 115.605 14.3144C115.54 14.206 115.756 13.122 116.103 11.8862C116.926 8.89426 117.034 8.15712 116.774 7.48502C116.493 6.7262 115.605 6.7262 114.435 7.5067C113.481 8.15712 112.636 9.11106 111.142 11.149C110.643 11.8645 110.297 12.2547 110.383 12.0163C112.355 7.05141 112.376 6.92133 111.228 6.92133C109.733 6.92133 109.235 7.57174 108.325 10.7154C107.545 13.4472 106.874 14.5095 105.92 14.5095C105.574 14.5095 105.769 13.1653 106.505 10.7154C106.809 9.63139 107.134 8.59073 107.177 8.37392C107.264 8.09208 107.155 8.00535 106.722 8.00535C106.419 8.00535 106.159 7.91863 106.159 7.78855C106.072 7.53833 105.923 7.31443 105.725 7.13813C105.205 6.6178 103.494 6.55276 102.411 6.98637C100.786 7.68015 99.1608 9.69644 98.4459 11.9295C98.2098 12.6158 97.8418 13.2492 97.3626 13.7941C96.7127 14.4662 95.9111 14.7263 95.6727 14.3361C95.5211 14.0976 96.0844 11.7127 96.6693 10.0216C97.1026 8.74249 97.1893 8.65577 97.8176 8.65577C98.6842 8.65577 100.396 7.76687 100.482 7.2899C100.547 6.98637 100.352 6.92133 99.2475 6.92133C98.5109 6.92133 97.9259 6.85629 97.9259 6.74788C98.0412 6.30508 98.1859 5.8705 98.3592 5.44705C98.5386 5.01103 98.6835 4.56158 98.7925 4.10286C98.7925 3.77765 97.211 3.84269 96.7127 4.21126C96.4527 4.38471 96.0194 5.0568 95.7594 5.7289C95.3044 6.87797 95.2394 6.92133 94.4595 6.92133C93.4629 6.92133 92.5097 7.6151 92.5097 8.35224C92.5097 8.82921 92.5963 8.87257 93.4846 8.87257C94.0262 8.87257 94.4595 8.91594 94.4595 8.98098C94.4595 9.04602 94.1779 10.0867 93.8096 11.3008C93.1813 13.4255 92.943 15.8103 93.3329 16.374C93.9395 17.2846 95.1961 17.2413 96.9943 16.2223L98.0992 15.6152L98.4459 16.1356C99.1825 17.2413 100.981 17.2846 102.346 16.2223L102.866 15.8103L103.559 16.4824C104.274 17.2196 104.859 17.2413 106.137 16.6125C106.635 16.374 106.765 16.374 107.264 16.7426C107.805 17.1329 107.87 17.1329 108.52 16.8076C108.888 16.6125 110.037 15.3334 111.185 13.8157C113.633 10.607 113.936 10.2384 113.958 10.4336C113.958 10.5203 113.763 11.4309 113.525 12.4499C113.3 13.3752 113.155 14.3182 113.091 15.2683C113.091 17.3497 114.695 17.6315 117.034 15.9621C117.359 15.7453 117.468 15.7887 117.749 16.1789C118.291 16.9377 119.309 17.1762 120.609 16.786C121.216 16.6125 121.822 16.3307 121.952 16.1572C122.169 15.9187 122.321 15.9621 122.841 16.5041C123.382 17.0461 123.599 17.1329 124.206 17.0028C124.806 16.8244 125.382 16.5694 125.917 16.244L126.935 15.6369L127.26 16.1356C127.547 16.4907 127.931 16.7544 128.365 16.8944C129.037 17.1112 129.319 17.0895 130.098 16.8076C130.618 16.5908 131.16 16.2873 131.29 16.1139C131.658 15.7019 131.875 15.7236 132.048 16.2223C132.265 16.9377 133.24 17.1762 134.323 16.8076C135.146 16.5258 135.276 16.5258 135.58 16.8293C135.796 17.0461 136.121 17.1112 136.576 17.0245C137.725 16.786 138.136 16.3524 138.764 14.5746C139.718 11.9078 140.216 11.1707 141.429 10.6504C142.642 10.13 142.924 9.8482 143.206 8.87257C143.617 7.41998 142.837 7.18149 141.169 8.22216C140.173 8.85089 140.151 8.87257 140.303 8.3956C140.628 7.3983 140.519 7.02973 139.913 6.96469C139.486 6.95044 139.062 7.03971 138.678 7.22485C138.006 7.57174 137.898 7.87527 137.031 11.2574C136.49 13.3604 135.753 14.5095 134.908 14.5095C134.54 14.5095 134.496 14.4011 134.605 13.5772C134.785 12.6098 135.024 11.6541 135.32 10.7154C136.035 8.24384 136.056 8.13544 135.471 8.04871C135.19 8.00535 134.973 7.87527 134.973 7.76687C134.884 7.52387 134.735 7.30749 134.54 7.13813C133.933 6.53108 132.178 6.55276 130.922 7.15981C129.405 7.89695 127.78 10.1517 126.979 12.6016C126.632 13.664 125.939 14.5095 125.419 14.5095C124.596 14.5095 124.769 13.9025 127.932 5.14352C128.734 2.91043 129.34 0.937502 129.253 0.742377C129.102 0.308767 128.539 0.330448 127.607 0.807419ZM104.23 9.37123C104.685 10.3685 102.996 14.0109 101.804 14.6396C100.829 15.1382 100.439 14.7263 100.591 13.4255C100.937 10.5203
22560103.472 7.70183 104.23 9.37123ZM123.469 9.26282C123.989 10.2601 122.212 14.1409 120.977 14.7046C119.786 15.2466 119.504 14.206 120.263 11.9729C121.042 9.63139 122.862 8.11376 123.469 9.26282ZM133.023 9.30618C133.565 10.3252 131.788 14.1193 130.51 14.7046C129.319 15.2466 129.037 14.206 129.795 11.9729C130.597 9.60971 132.395 8.11376 133.023 9.30618Z" fill="black"/> 22561 <path d="M152.586 0.698871C152.261 0.810538 151.954 0.971385 151.676 1.17584C151.568 1.28424 151.07 2.65012 150.572 4.21112C149.423 7.74504 149.467 7.70168 148.947 7.13799C148.47 6.61765 147.43 6.57429 146.347 7.0079C144.635 7.74504 142.685 10.5201 142.101 13.0785C141.624 15.2248 142.317 16.6991 143.942 17.0026C144.549 17.1327 144.982 17.0243 145.892 16.5907L147.062 16.0053L147.625 16.569C148.275 17.2194 148.427 17.2194 149.835 16.7425C150.572 16.504 151.265 16.0053 152.131 15.1164C153.41 13.8156 153.756 13.1435 153.496 12.363C153.366 11.9511 152.738 11.7126 152.738 12.0595C152.738 12.4497 150.528 14.5094 150.117 14.5094C149.705 14.5094 149.683 14.4226 149.813 13.6855C150.03 12.5798 150.68 10.5852 152.586 5.40354C154.471 0.308621 154.471 0.0267749 152.586 0.698871ZM148.253 9.32772C148.752 10.1299 146.932 14.0758 145.74 14.7262C145.177 15.0297 145.112 15.0297 144.809 14.6178C143.899 13.382 146.087 8.74235 147.517 8.91579C147.804 8.95809 148.067 9.10468 148.253 9.32772Z" fill="black"/> 22562 <path d="M13.9954 0.308624C12.9555 0.677193 12.2622 1.34929 9.33746 4.75313C4.83114 10.0215 -0.000152588 16.2655 -0.000152588 16.8292C-0.000152588 17.111 0.194832 17.1327 1.03977 17.0026C2.92462 16.7208 3.29293 16.4389 4.83114 14.1408L6.26103 11.9727L8.0159 11.821C8.99082 11.7343 9.85742 11.7343 9.94408 11.7776C10.0524 11.8427 9.94408 12.7532 9.72743 13.7939C9.22914 16.1571 9.20747 16.8725 9.66244 17.046C10.1174 17.2194 12.2189 16.5473 12.5655 16.1137C12.7172 15.9403 12.8905 15.2465 12.9339 14.5527C13.0855 11.8643 13.1938 11.4741 13.7788 11.4741C14.4504 11.4741 15.7936 10.802 16.3353 10.1949L16.7469 9.73965H15.2087C13.9954 9.73965 13.6488 9.67461 13.6488 9.43612C13.6488 9.02419 14.8187 4.47128 15.512 2.17315C15.967 0.698873 16.0103 0.330305 15.772 0.178541C15.382 -0.0816249 14.992 -0.0382642 13.9954 0.308624ZM11.4823 6.53093C11.1573 7.63664 10.8107 8.80739 10.7457 9.1326C10.6157 9.71797 10.5507 9.73965 9.29413 9.73965C8.23255 9.73965 8.0159 9.67461 8.16755 9.43612C8.40587 9.00251 11.9156 4.53633 12.0023 4.53633C12.0456 4.53633 11.8073 5.44691 11.4823 6.53093Z" fill="black"/> 22563 <path d="M48.5505 4.29784C47.9873 5.07834 47.9873 5.44691 48.4855 5.9022C49.0272 6.37917 49.4388 6.35749 50.1321 5.81548C50.6087 5.44691 50.717 5.20843 50.652 4.55801C50.5871 3.82087 50.5437 3.77751 49.8071 3.71247C49.1355 3.64743 48.9405 3.75583 48.5505 4.29784Z" fill="black"/> 22564 <path d="M35.3789 7.02986C33.624 7.78867 31.8258 10.1519 31.1975 12.5584C30.9159 13.6641 30.2226 14.5096 29.6376 14.5096C29.096 14.5096 29.1393 13.7291 29.7893 11.496C30.8075 7.9838 30.7425 6.92145 29.4643 6.92145C28.5327 6.92145 27.2978 8.00548 25.7813 10.1302C25.023 11.2142 24.3514 12.0814 24.308 12.0381C24.2647 11.9947 24.4814 11.1492 24.7847 10.1735C25.6079 7.57187 25.5213 6.92145 24.373 6.92145C23.3115 6.92145 22.1632 7.89708 20.5817 10.1302C19.8234 11.2142 19.1734 12.0814 19.1301 12.0381C19.3237 11.3891 19.5552 10.752 19.8234 10.1302C20.235 9.11119 20.6467 7.9838 20.7117 7.59355C20.8416 6.92145 20.8416 6.92145 19.9967 6.92145C19.5267 6.90756 19.0639 7.03978 18.672 7.29991C18.2802 7.56004 17.9785 7.9353 17.8085 8.37405C17.2669 9.7616 16.0537 13.9026 15.7937 15.1384C15.5121 16.656 15.642 16.9379 16.5736 16.9379C17.3536 16.9595 18.2635 16.0056 20.4083 13.0137C21.3833 11.6478 22.2065 10.6288 22.2499 10.7589C22.2932 10.8673 22.0765 11.9297 21.7732 13.1004C21.1233 15.6587 21.08 16.591 21.6432 16.8728C22.3365 17.2631 23.3548 16.3308 25.413 13.3606C26.4745 11.8429 27.4061 10.6288 27.4495 10.6939C27.5145 10.7372 27.3845 11.5177 27.1895 12.4283C26.9846 13.3339 26.8542 14.2548 26.7995 15.1817C26.7562 16.114 26.8428 16.3525 27.2761 16.6994C27.9478 17.2414 28.7277 17.1113 30.2009 16.2224L31.2625 15.572L31.7825 16.114C32.9307 17.3498 35.3139 17.3064 37.3287 16.0273L38.3253 15.3985L38.1086 15.9839C37.697 17.0246 38.7586 17.2847 40.2535 16.4826C40.5135 16.3525 40.8384 15.7671 41.0551 15.1167C41.2717 14.488 41.705 13.3823 42.0517 12.6451C42.615 11.4527 42.81 11.2576 44.0015 10.6071C44.9981 10.0868 45.3881 9.71824 45.6264 9.15455C46.3197 7.52851 45.3231 7.07322 43.6116 8.26565C42.6366 8.93774 42.615 8.93774 42.7666 8.41741C43.2649 6.81305 43.2649 6.85641 42.16 6.96482C40.8601 7.116
2256458 40.6001 7.35506 40.1885 8.82934C40.0152 9.52312 39.7552 10.4554 39.6252 10.9107C39.3436 11.908 37.5237 13.9243 36.3538 14.5313C35.2055 15.1167 34.3173 15.0733 33.884 14.4012C33.364 13.6207 33.624 13.2955 34.8372 13.1438C37.5887 12.8186 39.5602 10.6288 39.1269 8.35237C38.8453 6.87809 37.1121 6.27104 35.3789 7.02986ZM36.7871 9.37135C36.8737 10.0868 35.7255 11.366 34.7939 11.6044C33.9273 11.8213 33.8623 11.5611 34.4473 10.4771C35.3572 8.74262 36.6571 8.13556 36.7871 9.37135Z" fill="black"/> 22565 <path d="M53.5134 6.94291C51.9102 7.59333 50.177 9.80474 49.4837 12.1462C49.0721 13.4688 48.2272 14.5094 47.5122 14.5094C46.9706 14.5094 47.2523 13.1869 48.4872 10.0649C49.0938 8.54727 49.5487 7.20308 49.4837 7.09468C49.2888 6.79115 48.0105 6.89955 47.4906 7.26812C46.169 8.20038 44.0675 14.6829 44.6308 16.1355C44.7051 16.3007 44.8158 16.447 44.9547 16.5634C45.0935 16.6798 45.2568 16.7632 45.4324 16.8076C46.2123 17.0027 47.8155 16.5691 48.6605 15.9186L49.3321 15.3983L49.7437 15.9403C50.8486 17.3929 53.5568 17.2845 55.4416 15.6802C55.8316 15.355 56.1566 15.1382 56.1782 15.1815C56.2216 15.2249 56.3516 15.5501 56.5032 15.8753C57.0448 17.1328 58.9947 17.3712 60.4462 16.3739L61.1612 15.897L61.7895 16.5257C62.3311 17.0677 62.5044 17.1328 63.2194 17.0027C63.6736 16.914 64.1167 16.7759 64.5409 16.5907C64.9959 16.3523 65.1259 16.3739 65.4509 16.6991C65.6384 16.9103 65.8892 17.0548 66.1658 17.1111C66.7291 17.1111 67.7257 16.0704 69.6322 13.5555C70.6505 12.2113 71.647 10.9755 71.842 10.802C72.1887 10.5202 72.2103 10.5419 72.102 11.0405C71.0838 15.5501 71.0838 16.5257 72.102 16.916C73.0986 17.3062 74.7668 16.6341 76.1534 15.2682C76.8033 14.6395 77.4533 13.8373 77.5616 13.5121C77.8216 12.84 77.6916 11.9078 77.3233 11.9078C77.2149 11.9078 76.565 12.4931 75.8934 13.2086C74.6368 14.5745 73.8785 14.878 73.8785 14.0108C73.8785 13.7289 74.1169 12.6883 74.3985 11.6909C75.4168 8.1787 75.3518 6.92123 74.1818 6.92123C73.0119 6.92123 71.5821 8.15702 69.6755 10.8237C69.1339 11.5825 68.6789 12.1679 68.6789 12.1029C68.6789 12.0378 69.0689 10.9321 69.5455 9.65298C70.0438 8.39551 70.3688 7.24644 70.3038 7.13804C70.1305 6.85619 69.0256 6.85619 68.3756 7.15972C67.704 7.46324 67.3357 8.24374 66.5341 10.9104C65.8842 13.1219 65.0392 14.5094 64.3243 14.5094C63.9126 14.5094 63.891 14.4227 64.021 13.5772C64.1076 13.0785 64.4543 11.7126 64.8009 10.5636C65.1475 9.39281 65.4292 8.35215 65.4292 8.22206C65.4292 8.11366 65.1909 8.00526 64.8876 8.00526C64.5626 8.00526 64.3459 7.87517 64.3459 7.70173C64.3459 7.13804 63.436 6.70443 62.2878 6.70443C60.2079 6.70443 58.3881 8.24374 56.8715 11.2573C55.9832 13.0135 55.0733 14.0758 54.0334 14.5528C51.8452 15.5067 51.1086 13.6639 52.5385 10.8237C53.0368 9.8481 54.0551 8.65567 54.4017 8.65567C54.705 8.65567 54.64 9.41449 54.2717 10.0866C53.8384 10.9104 53.8601 11.1923 54.3584 11.3657C55.5716 11.7343 56.9798 10.4985 56.9798 9.0676C56.9798 8.09198 56.5249 7.02963 56.0049 6.83451C55.485 6.63938 54.1417 6.70443 53.5134 6.94291ZM62.5261 9.41449C62.8944 10.9321 60.6629 14.943 59.4496 14.943C58.2147 14.943 58.9297 11.4958 60.5762 9.54458C61.3128 8.67735 62.3094 8.59063 62.5261 9.41449Z" fill="black"/> 22566</svg> 22567 </a> 22568 </div> 22569 <span class="font-body font-semibold text-base text-primary leading-[120%] tracking-normal uppercase">LIFE.LOVE.HOME</span> 22570 </div> 22571 <div class="flex"> 22572 22573 22574<ul class="flex items-center justify-center !gap-3"> 22575 22576 22577 22578 22579 <!-- Facebook --> 22580 22581 <li class=""> 22582 <a href="http://www.facebook.com/AmericanStandardPlumbing" aria-describedby="facebook-label" target="_blank" aria-label="Facebook"> 22583 <span id="facebook-label" class="hidden">Facebook</span> 22584 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-facebook w-6 fill-primary" width="24" height="24" viewBox="0 0 24 24" fill="none"> 22585 <path d="M20.0025 3H3.9975C3.73355 3.00196 3.48097 3.10769 3.29433 3.29433C3.10769 3.48097 3.00196 3.73355 3 3.9975V20.0025C3.00196 20.2664 3.10769 20.519 3.29433 20.7057C3.48097 20.8923 3.73355 20.998 3.9975 21H12.615V14.04H10.275V11.3175H12.615V9.315C12.615 6.99 14.0325 5.7225 16.1175 5.7225C16.815 5.7225 17.5125 5.7225 18.21 5.8275V8.25H16.7775C15.645 8.25 15.4275 8.79 15.4275 9.5775V11.31H18.1275L17.775 14.0325H15.4275V21H20.0025C20.2664 20.998 20.519 20.8923 20.7057 20.7057C20.8923 20.519 20.998 20.2664 21 20.0025V3.9975C20.998 3.73355 20.8923 3.48097 20.7057 3.29433C20.519 3.10769 20.2664 3.00196 20.0025 3Z" fill="black"/> 22586</svg> 22587 </a> 22588 </li> 22589 22590 22591 <!-- Twitter --> 22592 22593 <li class=""> 22594 <a href="https://twitter.com/AMStandard" aria-describedby="twitter-label" target="_blank" aria-label="Twitter">
22595 <span id="twitter-label" class="hidden">Twitter</span> 22596 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-twitter w-6 fill-primary" width="24" height="24" viewBox="0 0 24 24" fill="none"> 22597 <path d="M17.7235 3.0625H20.7571L14.1313 10.6336L21.9258 20.9375H15.8243L11.0418 14.6898L5.57622 20.9375H2.53833L9.62388 12.8379L2.15161 3.0625H8.40786L12.7262 8.77305L17.7235 3.0625ZM16.6579 19.1242H18.3379L7.49263 4.78125H5.68794L16.6579 19.1242Z" fill="black"/> 22598</svg> 22599 </a> 22600 </li> 22601 22602 22603 <!-- Instagram --> 22604 22605 <li class=""> 22606 <a href="http://instagram.com/american_standard" aria-describedby="instagram-label" target="_blank" aria-label="Instagram"> 22607 <span id="instagram-label" class="hidden">Instagram</span> 22608 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-instagram w-6 fill-primary" width="24" height="24" viewBox="0 0 24 24" fill="none"> 22609 <path d="M16.8045 8.2755C17.401 8.2755 17.8845 7.79197 17.8845 7.1955C17.8845 6.59903 17.401 6.1155 16.8045 6.1155C16.208 6.1155 15.7245 6.59903 15.7245 7.1955C15.7245 7.79197 16.208 8.2755 16.8045 8.2755Z" fill="black"/> 22610 <path d="M12 7.3785C11.086 7.3785 10.1924 7.64955 9.43243 8.15736C8.67243 8.66518 8.08008 9.38696 7.73029 10.2314C7.3805 11.0759 7.28898 12.0051 7.4673 12.9016C7.64562 13.7981 8.08578 14.6216 8.73211 15.2679C9.37843 15.9142 10.2019 16.3544 11.0984 16.5327C11.9949 16.711 12.9241 16.6195 13.7686 16.2697C14.613 15.9199 15.3348 15.3276 15.8426 14.5676C16.3505 13.8076 16.6215 12.914 16.6215 12C16.6215 10.7743 16.1346 9.5988 15.2679 8.73211C14.4012 7.86541 13.2257 7.3785 12 7.3785ZM12 15C11.4067 15 10.8266 14.8241 10.3333 14.4944C9.83994 14.1648 9.45542 13.6962 9.22836 13.148C9.0013 12.5999 8.94189 11.9967 9.05764 11.4147C9.1734 10.8328 9.45912 10.2982 9.87868 9.87868C10.2982 9.45912 10.8328 9.1734 11.4147 9.05764C11.9967 8.94189 12.5999 9.0013 13.1481 9.22836C13.6962 9.45542 14.1648 9.83994 14.4944 10.3333C14.8241 10.8266 15 11.4067 15 12C15 12.7956 14.6839 13.5587 14.1213 14.1213C13.5587 14.6839 12.7956 15 12 15Z" fill="black"/> 22611 <path d="M12 4.6215C14.403 4.6215 14.688 4.6305 15.6368 4.674C16.2074 4.68077 16.7726 4.78555 17.3077 4.98375C17.696 5.13352 18.0486 5.36291 18.3428 5.65716C18.6371 5.95141 18.8665 6.304 19.0163 6.69225C19.2145 7.2274 19.3192 7.79262 19.326 8.36325C19.3695 9.312 19.3785 9.597 19.3785 12.0007C19.3785 14.4045 19.3695 14.688 19.326 15.6368C19.3192 16.2074 19.2145 16.7726 19.0163 17.3077C18.8665 17.696 18.6371 18.0486 18.3428 18.3428C18.0486 18.6371 17.696 18.8665 17.3077 19.0163C16.7726 19.2145 16.2074 19.3192 15.6368 19.326C14.688 19.3695 14.403 19.3785 12 19.3785C9.597 19.3785 9.312 19.3695 8.36325 19.326C7.79262 19.3192 7.2274 19.2145 6.69225 19.0163C6.304 18.8665 5.95141 18.6371 5.65716 18.3428C5.36291 18.0486 5.13352 17.696 4.98375 17.3077C4.78555 16.7726 4.68077 16.2074 4.674 15.6368C4.6305 14.688 4.6215 14.403 4.6215 12C4.6215 9.597 4.6305 9.312 4.674 8.36325C4.68077 7.79262 4.78555 7.2274 4.98375 6.69225C5.13352 6.304 5.36291 5.95141 5.65716 5.65716C5.95141 5.36291 6.304 5.13352 6.69225 4.98375C7.2274 4.78555 7.79262 4.68077 8.36325 4.674C9.312 4.6305 9.597 4.6215 12 4.6215ZM12 3C9.55575 3 9.249 3.0105 8.289 3.054C7.54258 3.06907 6.80412 3.21058 6.105 3.4725C5.50704 3.70372 4.96399 4.05733 4.51066 4.51066C4.05733 4.96399 3.70372 5.50704 3.4725 6.105C3.21049 6.80435 3.06899 7.54308 3.054 8.28975C3.0105 9.24975 3 9.555 3 12C3 14.445 3.0105 14.751 3.054 15.711C3.06907 16.4574 3.21058 17.1959 3.4725 17.895C3.70372 18.493 4.05733 19.036 4.51066 19.4893C4.96399 19.9427 5.50704 20.2963 6.105 20.5275C6.80435 20.7895 7.54308 20.931 8.28975 20.946C9.24975 20.9895 9.55575 21 12 21C14.4443 21 14.751 20.9895 15.711 20.946C16.4577 20.931 17.1964 20.7895 17.8958 20.5275C18.4937 20.2963 19.0368 19.9427 19.4901 19.4893C19.9434 19.036 20.297 18.493 20.5282 17.895C20.79 17.1956 20.9313 16.4569 20.946 15.7103C20.9895 14.7503 21 14.445 21 12C21 9.555 20.9895 9.249 20.946 8.289C20.9309 7.54258 20.7894 6.80412 20.5275 6.105C20.2963 5.50704 19.9427 4.96399 19.4893 4.51066C19.036 4.05733 18.493 3.70372 17.895 3.4725C17.1956 3.21075 16.4569 3.0695 15.7103 3.05475C14.7503 3.00975 14.445 3 12 3Z" fill="black"/> 22612</svg> 22613 </a> 22614 </li> 22615 22616 22617 <!-- Pinterest --> 22618 22619 <li class=""> 22620 <a href="https://www.pinterest.com/amstandard/" aria-describedby="pinterest-label" target="_blank" aria-label="Pinterest">
22621 <span id="pinterest-label" class="hidden">Pinterest</span> 22622 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-pinterest w-6 fill-primary" width="24" height="24" viewBox="0 0 24 24" fill="none"> 22623 <path d="M12 1.5C9.56573 1.51658 7.21282 2.37849 5.34381 3.93828C3.4748 5.49807 2.20583 7.65882 1.754 10.0509C1.30216 12.443 1.69553 14.9177 2.86681 17.0518C4.0381 19.1858 5.9145 20.8466 8.17505 21.75C8.02312 20.7558 8.02312 19.7442 8.17505 18.75L9.41255 13.5C9.21671 13.0245 9.11974 12.5142 9.12755 12C9.12755 10.545 9.97505 9.45 11.025 9.45C11.2153 9.44714 11.4038 9.48543 11.5779 9.56224C11.7519 9.63906 11.9073 9.75258 12.0334 9.89504C12.1595 10.0375 12.2533 10.2055 12.3083 10.3876C12.3634 10.5697 12.3785 10.7615 12.3525 10.95C12.3525 11.85 11.7825 13.2 11.4825 14.445C11.418 14.6772 11.4103 14.9215 11.4602 15.1573C11.51 15.3931 11.616 15.6133 11.769 15.7995C11.9221 15.9857 12.1177 16.1322 12.3394 16.2267C12.5611 16.3212 12.8023 16.361 13.0425 16.3425C14.9025 16.3425 16.3425 14.37 16.3425 11.535C16.3612 10.9589 16.2597 10.3853 16.0443 9.85061C15.8289 9.31598 15.5045 8.8321 15.0916 8.42986C14.6788 8.02762 14.1867 7.71584 13.6466 7.51442C13.1066 7.31299 12.5305 7.22634 11.955 7.26C11.3407 7.23361 10.7274 7.33216 10.1523 7.54966C9.57715 7.76717 9.05213 8.09912 8.609 8.52542C8.16587 8.95172 7.81385 9.46351 7.57425 10.0298C7.33465 10.5961 7.21245 11.2051 7.21505 11.82C7.20671 12.6766 7.4692 13.5139 7.96505 14.2125C8.0011 14.2526 8.02679 14.3009 8.03986 14.3532C8.05294 14.4055 8.053 14.4602 8.04005 14.5125C7.95755 14.8425 7.77755 15.5625 7.74755 15.705C7.71755 15.8475 7.59005 15.9375 7.39505 15.8475C6.08255 15.2325 5.26505 13.32 5.26505 11.775C5.26505 8.4675 7.67255 5.4225 12.2025 5.4225C15.84 5.4225 18.675 8.0175 18.675 11.49C18.675 15.105 16.425 18.015 13.2225 18.015C12.7531 18.0313 12.2869 17.9301 11.8665 17.7206C11.4461 17.511 11.0846 17.1997 10.815 16.815L10.1625 19.3125C9.84976 20.2831 9.41101 21.2085 8.85755 22.065C9.87738 22.3664 10.9367 22.513 12 22.5C14.7848 22.5 17.4555 21.3938 19.4247 19.4246C21.3938 17.4555 22.5 14.7848 22.5 12C22.5 9.21523 21.3938 6.54451 19.4247 4.57538C17.4555 2.60625 14.7848 1.5 12 1.5Z" fill="black"/> 22624</svg> 22625 </a> 22626 </li> 22627 22628 22629 <!-- Youtube --> 22630 22631 <li class=""> 22632 <a href="https://www.youtube.com/user/AmericanStandard01?sub_confirmation=1" aria-describedby="youtube-label" target="_blank" aria-label="Youtube"> 22633 <span id="youtube-label" class="hidden">Youtube</span> 22634 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-youtube w-6 fill-primary" width="24" height="24" viewBox="0 0 24 24" fill="none"> 22635 <path d="M22.0576 6.94502C21.9381 6.50105 21.7041 6.09626 21.3789 5.77115C21.0538 5.44604 20.649 5.21203 20.2051 5.09252C18.5701 4.65002 12.0001 4.65002 12.0001 4.65002C12.0001 4.65002 5.43008 4.65002 3.79508 5.09252C3.35111 5.21203 2.94631 5.44604 2.6212 5.77115C2.29609 6.09626 2.06208 6.50105 1.94258 6.94502C1.63729 8.61247 1.48914 10.3049 1.50008 12C1.48914 13.6952 1.63729 15.3876 1.94258 17.055C2.06208 17.499 2.29609 17.9038 2.6212 18.2289C2.94631 18.554 3.35111 18.788 3.79508 18.9075C5.43008 19.35 12.0001 19.35 12.0001 19.35C12.0001 19.35 18.5701 19.35 20.2051 18.9075C20.649 18.788 21.0538 18.554 21.3789 18.2289C21.7041 17.9038 21.9381 17.499 22.0576 17.055C22.3629 15.3876 22.511 13.6952 22.5001 12C22.511 10.3049 22.3629 8.61247 22.0576 6.94502ZM9.90008 15.15V8.85002L15.3526 12L9.90008 15.15Z" fill="black"/> 22636</svg> 22637 </a> 22638 </li> 22639 22640 22641 <!-- Tiktok --> 22642 22643 22644 <!-- LinkedIn --> 22645 22646 22647</ul> 22648 </div> 22649 </div> 22650 <div class="flex flex-col gap-4 w-full max-w-[34.125rem]"> 22651 <div class="flex flex-col gap-2"> 22652 <div class="font-title font-semibold text-base lg:text-2xl text-black leading-[120%] uppercase"> 22653 SIGN UP FOR OUR EMAIL NEWSLETTER 22654 </div> 22655 <span class="font-body font-normal text-sm text-gray-700 leading-[140%]">Get the latest info from American Standard including innovations, inspirational design ideas, special promotions, and much more.</span> 22656 </div> 22657
22658 <a href="https://cloud.info.americanstandard.com/us_newsletter" class="btn bg-primary w-full leading-none lg:w-fit py-4 md:py-3 px-12 whitespace-nowrap border-none text-center" target="_blank" 22659 rel="noopener" aria-label="Subscribe"> 22660 Subscribe now 22661 </a> 22662</div> 22663 22664</div> 22665 <div class="block w-full bg-gray-50"> 22666 <div class="container flex flex-col gap-3 py-6 lg:py-10 lg:flex-row lg:justify-between lg:px-[3.625rem]"> 22667 22668 22669 22670<div class="hidden lg:block"> 22671 <div class="flex flex-col gap-2"> 22672 <div class="font-title font-semibold text-black text-sm leading-none pb-2">Our Company</div> 22673 22674 <a href="/pages/about" 22675 22676 target="_self" 22677 22678 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22679 <span>About Us</span> 22680 </a> 22681 22682 <a href="https://careers.lixilamericas.com/opportunities" 22683 22684 target="_blank" rel="noopener" 22685 22686 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22687 <span>Careers</span> 22688 </a> 22689 22690 <a href="/blogs/press-room" 22691 22692 target="_self" 22693 22694 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22695 <span>Press</span> 22696 </a> 22697 22698 <a href="/pages/sustainability" 22699 22700 target="_self" 22701 22702 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22703 <span>Sustainability</span> 22704 </a> 22705 22706 <a href="/pages/employee-resources" 22707 22708 target="_self" 22709 22710 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22711 <span>Employee Resources</span> 22712 </a> 22713 22714</div> 22715 </div> 22716 <div class="lg:hidden"> 22717 <component-accordion class=""> 22718 <button data-accordion-trigger class="flex items-center w-full justify-between pb-2"> 22719 <span class="font-title font-semibold text-black text-sm leading-none"> 22720 Our Company 22721 </span> 22722 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-add !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 22723 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 22724</svg> 22725 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-less rotate-180 !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 22726 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 22727</svg> 22728 </button> 22729 22730 22731 <div data-accordion-container> 22732 22733 <a 22734 href="/pages/about" 22735 22736 22737 target="_self" 22738 22739 22740 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22741 > 22742 <span>About Us</span> 22743 </a> 22744 22745 <a 22746 href="https://careers.lixilamericas.com/opportunities" 22747 22748 22749 target="_blank" rel="noopener" 22750 22751 22752 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22753 > 22754 <span>Careers</span> 22755 </a> 22756 22757 <a 22758 href="/blogs/press-room" 22759 22760 22761 target="_self" 22762 22763 22764 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22765 >
22766 <span>Press</span> 22767 </a> 22768 22769 <a 22770 href="/pages/sustainability" 22771 22772 22773 target="_self" 22774 22775 22776 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22777 > 22778 <span>Sustainability</span> 22779 </a> 22780 22781 <a 22782 href="/pages/employee-resources" 22783 22784 22785 target="_self" 22786 22787 22788 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22789 > 22790 <span>Employee Resources</span> 22791 </a> 22792 22793 </div> 22794 22795</component-accordion> 22796 22797 </div> 22798 <div class="hidden lg:block"> 22799 <div class="flex flex-col gap-2"> 22800 <div class="font-title font-semibold text-black text-sm leading-none pb-2">Products</div> 22801 22802 <a href="/collections/bathroom" 22803 22804 target="_self" 22805 22806 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22807 <span>Bathroom</span> 22808 </a> 22809 22810 <a href="/collections/kitchen" 22811 22812 target="_self" 22813 22814 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22815 <span>Kitchen</span> 22816 </a> 22817 22818 <a href="/collections/commercial" 22819 22820 target="_self" 22821 22822 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22823 <span>Commercial</span> 22824 </a> 22825 22826 <a href="https://americanstandardbathing.com/?utm_source=as_brand_site&utm_content=footer_menu" 22827 22828 target="_blank" rel="noopener" 22829 22830 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22831 <span>Bathing</span> 22832 </a> 22833 22834</div> 22835 </div> 22836 <div class="lg:hidden"> 22837 <component-accordion class=""> 22838 <button data-accordion-trigger class="flex items-center w-full justify-between pb-2"> 22839 <span class="font-title font-semibold text-black text-sm leading-none"> 22840 Products 22841 </span> 22842 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-add !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 22843 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 22844</svg> 22845 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-less rotate-180 !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 22846 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 22847</svg> 22848 </button> 22849 22850 22851 <div data-accordion-container> 22852 22853 <a 22854 href="/collections/bathroom" 22855 22856 22857 target="_self" 22858 22859 22860 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22861 > 22862 <span>Bathroom</span> 22863 </a> 22864 22865 <a 22866 href="/collections/kitchen" 22867 22868 22869 target="_self" 22870 22871 22872 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22873 >
22874 <span>Kitchen</span> 22875 </a> 22876 22877 <a 22878 href="/collections/commercial" 22879 22880 22881 target="_self" 22882 22883 22884 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22885 > 22886 <span>Commercial</span> 22887 </a> 22888 22889 <a 22890 href="https://americanstandardbathing.com/?utm_source=as_brand_site&utm_content=footer_menu" 22891 22892 22893 target="_blank" rel="noopener" 22894 22895 22896 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 22897 > 22898 <span>Bathing</span> 22899 </a> 22900 22901 </div> 22902 22903</component-accordion> 22904 22905 </div> 22906 <div class="hidden lg:block"> 22907 <div class="flex flex-col gap-2"> 22908 <div class="font-title font-semibold text-black text-sm leading-none pb-2">Professionals</div> 22909 22910 <a href="/pages/become-an-authorized-american-standard-dealer" 22911 22912 target="_self" 22913 22914 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22915 <span>Become a Dealer</span> 22916 </a> 22917 22918 <a href="/pages/become-an-installer" 22919 22920 target="_self" 22921 22922 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22923 <span>Become an Installer</span> 22924 </a> 22925 22926 <a href="https://lixilpro.com/" 22927 22928 target="_blank" rel="noopener" 22929 22930 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22931 <span>Lixil Pro</span> 22932 </a> 22933 22934 <a href="https://lixilspecification.americanstandard-us.com/en/" 22935 22936 target="_blank" rel="noopener" 22937 22938 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22939 <span>LIXIL Specification Tool</span> 22940 </a> 22941 22942 <a href="https://lixilcrossreference.americanstandard-us.com/en/" 22943 22944 target="_blank" rel="noopener" 22945 22946 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22947 <span>Cross Reference Tool</span> 22948 </a> 22949 22950 <a href="https://www.mylixilpricebooks.com/American-Standard-Residential-List-Price-Guide" 22951 22952 target="_blank" rel="noopener" 22953 22954 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22955 <span>Residential Price Book</span> 22956 </a> 22957 22958 <a href="https://www.mylixilpricebooks.com/American-Standard-Commercial-List-Price-Guide" 22959 22960 target="_blank" rel="noopener" 22961 22962 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22963 <span>Commercial Price Book</span> 22964 </a> 22965 22966 <a href="https://cdn.shopify.com/s/files/1/0609/8567/1727/files/Toilets_Replacement_Part_Service_Guide_FINAL_1.pdf?v=1759259976" 22967 22968 target="_blank" rel="noopener" 22969 22970 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 22971 <span>Toilet Replacement Part Service Guide</span> 22972 </a> 22973 22974 <a href="/pages/tradeup-to-a-plumbing-career-american-standard-tradeup-program" 22975 22976 target="_self" 22977 22978 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded">
22979 <span>Trade Up</span> 22980 </a> 22981 22982</div> 22983 </div> 22984 <div class="lg:hidden"> 22985 <component-accordion class=""> 22986 <button data-accordion-trigger class="flex items-center w-full justify-between pb-2"> 22987 <span class="font-title font-semibold text-black text-sm leading-none"> 22988 Professionals 22989 </span> 22990 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-add !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 22991 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 22992</svg> 22993 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-less rotate-180 !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 22994 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 22995</svg> 22996 </button> 22997 22998 22999 <div data-accordion-container> 23000 23001 <a 23002 href="/pages/become-an-authorized-american-standard-dealer" 23003 23004 23005 target="_self" 23006 23007 23008 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23009 > 23010 <span>Become a Dealer</span> 23011 </a> 23012 23013 <a 23014 href="/pages/become-an-installer" 23015 23016 23017 target="_self" 23018 23019 23020 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23021 > 23022 <span>Become an Installer</span> 23023 </a> 23024 23025 <a 23026 href="https://lixilpro.com/" 23027 23028 23029 target="_blank" rel="noopener" 23030 23031 23032 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23033 > 23034 <span>Lixil Pro</span> 23035 </a> 23036 23037 <a 23038 href="https://lixilspecification.americanstandard-us.com/en/" 23039 23040 23041 target="_blank" rel="noopener" 23042 23043 23044 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23045 > 23046 <span>LIXIL Specification Tool</span> 23047 </a> 23048 23049 <a 23050 href="https://lixilcrossreference.americanstandard-us.com/en/" 23051 23052 23053 target="_blank" rel="noopener" 23054 23055 23056 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23057 > 23058 <span>Cross Reference Tool</span> 23059 </a> 23060 23061 <a 23062 href="https://www.mylixilpricebooks.com/American-Standard-Residential-List-Price-Guide" 23063 23064 23065 target="_blank" rel="noopener" 23066 23067 23068 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23069 > 23070 <span>Residential Price Book</span> 23071 </a> 23072 23073 <a 23074 href="https://www.mylixilpricebooks.com/American-Standard-Commercial-List-Price-Guide" 23075 23076 23077 target="_blank" rel="noopener" 23078 23079 23080 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23081 >
23082 <span>Commercial Price Book</span> 23083 </a> 23084 23085 <a 23086 href="https://cdn.shopify.com/s/files/1/0609/8567/1727/files/Toilets_Replacement_Part_Service_Guide_FINAL_1.pdf?v=1759259976" 23087 23088 23089 target="_blank" rel="noopener" 23090 23091 23092 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23093 > 23094 <span>Toilet Replacement Part Service Guide</span> 23095 </a> 23096 23097 <a 23098 href="/pages/tradeup-to-a-plumbing-career-american-standard-tradeup-program" 23099 23100 23101 target="_self" 23102 23103 23104 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23105 > 23106 <span>Trade Up</span> 23107 </a> 23108 23109 </div> 23110 23111</component-accordion> 23112 23113 </div> 23114 <div class="hidden lg:block"> 23115 <div class="flex flex-col gap-2"> 23116 <div class="font-title font-semibold text-black text-sm leading-none pb-2">Support & Services</div> 23117 23118 <a href="https://faq.americanstandard-us.com/" 23119 23120 target="_blank" rel="noopener" 23121 23122 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23123 <span>FAQ</span> 23124 </a> 23125 23126 <a href="/pages/warranty" 23127 23128 target="_self" 23129 23130 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23131 <span>Register Warranty</span> 23132 </a> 23133 23134 <a href="/pages/contact-us" 23135 23136 target="_self" 23137 23138 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23139 <span>Contact Us</span> 23140 </a> 23141 23142 <a href="/pages/where-to-buy" 23143 23144 target="_self" 23145 23146 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23147 <span>Where to Buy</span> 23148 </a> 23149 23150 <a href="/pages/returns" 23151 23152 target="_self" 23153 23154 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23155 <span>Returns</span> 23156 </a> 23157 23158 <a href="/pages/shipping-and-deliveries" 23159 23160 target="_self" 23161 23162 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23163 <span>Shipping</span> 23164 </a> 23165 23166 <a href="/collections/parts-store" 23167 23168 target="_self" 23169 23170 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23171 <span>Shop Parts</span> 23172 </a> 23173 23174 <a href="https://www.americanstandard-us.com/pages/shower-tub?utm_content=foot_s-t" 23175 23176 target="_self" 23177 23178 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23179 <span>Tub & Shower Installation</span> 23180 </a> 23181 23182 <a href="https://www.americanstandard-us.com/pages/walk-in-tub?utm_content=foot_wit" 23183 23184 target="_self" 23185 23186 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded">
23187 <span>Walk-In Bath Installation</span> 23188 </a> 23189 23190</div> 23191 </div> 23192 <div class="lg:hidden"> 23193 <component-accordion class=""> 23194 <button data-accordion-trigger class="flex items-center w-full justify-between pb-2"> 23195 <span class="font-title font-semibold text-black text-sm leading-none"> 23196 Support & Services 23197 </span> 23198 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-add !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23199 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 23200</svg> 23201 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-less rotate-180 !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23202 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 23203</svg> 23204 </button> 23205 23206 23207 <div data-accordion-container> 23208 23209 <a 23210 href="https://faq.americanstandard-us.com/" 23211 23212 23213 target="_blank" rel="noopener" 23214 23215 23216 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23217 > 23218 <span>FAQ</span> 23219 </a> 23220 23221 <a 23222 href="/pages/warranty" 23223 23224 23225 target="_self" 23226 23227 23228 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23229 > 23230 <span>Register Warranty</span> 23231 </a> 23232 23233 <a 23234 href="/pages/contact-us" 23235 23236 23237 target="_self" 23238 23239 23240 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23241 > 23242 <span>Contact Us</span> 23243 </a> 23244 23245 <a 23246 href="/pages/where-to-buy" 23247 23248 23249 target="_self" 23250 23251 23252 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23253 > 23254 <span>Where to Buy</span> 23255 </a> 23256 23257 <a 23258 href="/pages/returns" 23259 23260 23261 target="_self" 23262 23263 23264 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23265 > 23266 <span>Returns</span> 23267 </a> 23268 23269 <a 23270 href="/pages/shipping-and-deliveries" 23271 23272 23273 target="_self" 23274 23275 23276 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23277 > 23278 <span>Shipping</span> 23279 </a> 23280 23281 <a 23282 href="/collections/parts-store" 23283 23284 23285 target="_self" 23286 23287 23288 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23289 > 23290 <span>Shop Parts</span> 23291 </a> 23292 23293 <a 23294 href="https://www.americanstandard-us.com/pages/shower-tub?utm_content=foot_s-t" 23295 23296 23297 target="_self" 23298 23299 23300 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23301 >
23302 <span>Tub & Shower Installation</span> 23303 </a> 23304 23305 <a 23306 href="https://www.americanstandard-us.com/pages/walk-in-tub?utm_content=foot_wit" 23307 23308 23309 target="_self" 23310 23311 23312 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23313 > 23314 <span>Walk-In Bath Installation</span> 23315 </a> 23316 23317 </div> 23318 23319</component-accordion> 23320 23321 </div> 23322 <div class="hidden lg:block"> 23323 <div class="flex flex-col gap-2"> 23324 <div class="font-title font-semibold text-black text-sm leading-none pb-2">Our Sites</div> 23325 23326 <a href="https://www.mylixilbp.com" 23327 23328 target="_blank" rel="noopener" 23329 23330 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23331 <span>Business Portal</span> 23332 </a> 23333 23334 <a href="https://military.buylixil.com/" 23335 23336 target="_blank" rel="noopener" 23337 23338 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23339 <span>American Standard for Military</span> 23340 </a> 23341 23342</div> 23343 </div> 23344 <div class="lg:hidden"> 23345 <component-accordion class=""> 23346 <button data-accordion-trigger class="flex items-center w-full justify-between pb-2"> 23347 <span class="font-title font-semibold text-black text-sm leading-none"> 23348 Our Sites 23349 </span> 23350 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-add !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23351 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 23352</svg> 23353 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-less rotate-180 !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23354 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 23355</svg> 23356 </button> 23357 23358 23359 <div data-accordion-container> 23360 23361 <a 23362 href="https://www.mylixilbp.com" 23363 23364 23365 target="_blank" rel="noopener" 23366 23367 23368 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23369 > 23370 <span>Business Portal</span> 23371 </a> 23372 23373 <a 23374 href="https://military.buylixil.com/" 23375 23376 23377 target="_blank" rel="noopener" 23378 23379 23380 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23381 > 23382 <span>American Standard for Military</span> 23383 </a> 23384 23385 </div> 23386 23387</component-accordion> 23388 23389 </div> 23390 <div class="hidden lg:block"> 23391 <div class="flex flex-col gap-2"> 23392 <div class="font-title font-semibold text-black text-sm leading-none pb-2">Legal</div> 23393 23394 <a href="/pages/terms-of-use" 23395 23396 target="_self" 23397 23398 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23399 <span>Terms</span> 23400 </a> 23401 23402 <a href="/pages/privacy-policy" 23403 23404 target="_self" 23405 23406 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded">
23407 <span>Privacy</span> 23408 </a> 23409 23410 <a href="https://lixil.highspot.com/viewer/666887efa40d6165f2ea056d?iid=6668876e82051b5d5d96bf12&track=false" 23411 23412 target="_blank" rel="noopener" 23413 23414 class="font-body font-normal text-xs text-black leading-[140%] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-[-1px] focus-visible:outline-secondary focus-visible:rounded"> 23415 <span>Trademarks</span> 23416 </a> 23417 23418</div> 23419 </div> 23420 <div class="lg:hidden"> 23421 <component-accordion class=""> 23422 <button data-accordion-trigger class="flex items-center w-full justify-between pb-2"> 23423 <span class="font-title font-semibold text-black text-sm leading-none"> 23424 Legal 23425 </span> 23426 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-add !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23427 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 23428</svg> 23429 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-chevron fill-black icon-less rotate-180 !w-4" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23430 <path d="M16.3637 18.9475L26.5 29.0838L36.6362 18.9475L39.75 22.0833L26.5 35.3333L13.25 22.0833L16.3637 18.9475Z"/> 23431</svg> 23432 </button> 23433 23434 23435 <div data-accordion-container> 23436 23437 <a 23438 href="/pages/terms-of-use" 23439 23440 23441 target="_self" 23442 23443 23444 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23445 > 23446 <span>Terms</span> 23447 </a> 23448 23449 <a 23450 href="/pages/privacy-policy" 23451 23452 23453 target="_self" 23454 23455 23456 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23457 > 23458 <span>Privacy</span> 23459 </a> 23460 23461 <a 23462 href="https://lixil.highspot.com/viewer/666887efa40d6165f2ea056d?iid=6668876e82051b5d5d96bf12&track=false" 23463 23464 23465 target="_blank" rel="noopener" 23466 23467 23468 class="font-body font-normal text-xs text-black leading-[140%] first:mt-2 last:mb-2 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-secondary focus-visible:rounded" 23469 > 23470 <span>Trademarks</span> 23471 </a> 23472 23473 </div> 23474 23475</component-accordion> 23476 23477 </div> 23478 23479 </div> 23480</div> 23481 <div class="w-full bg-gray-50 border-t border-gray-100"> 23482 <div class="container py-6 flex flex-col gap-4 justify-center items-center md:py-5 md:flex-row md:justify-between lg:px-[3.625rem]"> 23483 <div class="font-body font-normal text-black text-xs leading-[140%]"> 23484 <div class="inline-flex gap-3"> 23485 <span>©2026 <a href="/" title="">American Standard</a></span> 23486 <span>PART OF <a href="https://www.lixil.com/" target="_blank" class="text-primary underline"> LIXIL</a></span> 23487 </div> 23488 </div> 23489 <div class="flex gap-6"> 23490 23491</div> 23492 <a id="ot-sdk-link" class="ot-sdk-show-settings font-normal text-black text-xs leading-[140%]" href="#"> </a> 23493 </div> 23494</div> 23495</footer> 23496
23496<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/component-product-gallery.js?v=86403152744322507631782390271" defer="defer"></script>
vendor: 1 bytes, line 23496
23496
23497<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/component-tooltip.js?v=181638774350341894291761579654" defer="defer"></script>
vendor: 1 bytes, line 23497
23497
23498<script src="//www.americanstandard-us.com/cdn/shop/t/165/assets/component-modal.js?v=24622152121897042581761579738" defer="defer"></script>
23498 23499 23500<popup-modal 23501 id="address-validation-modal" 23502 class="[&_[data-container]]:!w-full [&_[data-container]]:h-screen [&_[data-container]]:md:h-auto [&_[data-container]]:md:rounded [&_[data-container]]:items-center [&_[data-container]]:p-10 [&_[data-content]]:h-full" 23503 style="display: none;" 23504 data-with-large 23505 data-display-close 23506> 23507 <div class="flex flex-col gap-4"> 23508 <h5 class="text-xl font-semibold">Validate this Address</h5> 23509 <p class="text-sm">Unfortunately, we can't confirm your address. Please review this address and make any necessary changes.</p> 23510 23511 <span class="text-lg font-semibold">Original Address</span> 23512 <p class="text-normal" data-original-address></p> 23513 23514 <div data-suggested-addresses class="flex flex-col gap-4"> 23515 <span class="text-lg font-semibold">Suggested Address</span> 23516 <p class="text-normal font-semibold" data-validated-address></p> 23517 </div> 23518 23519 <div class="flex flex-col gap-4 mt-4"> 23520 <button type="button" class="btn" data-use-suggested-address>Use Suggested Address</button> 23521 <button type="button" class="btn-label btn-label-primary" data-close-modal>Edit Original Address</button> 23522 </div> 23523 </div> 23524</popup-modal> 23525 23526<div class="global-overlay" data-menu-close data-search-close data-global-overlay aria-hidden="true"></div> 23527 23528 23529 23530
23531<script> 23532 window.addEventListener('message', (event) => { 23533 if (event.origin !== 'https://formbuilder.hulkapps.com') return; 23534 23535 if (event.data.type === 'requestHref') { 23536 event.source.postMessage({ 23537 type: 'parentHref', 23538 href: window.location.href 23539 }, event.origin); 23540 } 23541}); 23542</script>
23542 23543 23544 23545 23546 23547 23548 23549 23550 23551 23552 23553 23554 23555 23556 23557 23558
23558<script> 23559 window.bvCallback = function () { 23560 if (typeof BV === 'undefined') return; 23561 BV.configure('global', { 23562 siteId: 'main_site', 23563 locale: 'en_US' 23564 }); 23565 }; 23566 </script>
23566 23567 23568
23568<script> 23569 (function () { 23570 var bvSrc = "https:\/\/apps.bazaarvoice.com\/deployments\/americanstandard\/main_site\/production\/en_US\/bv.js"; 23571 23572 function loadBazaarvoice() { 23573 if (window.__bazaarvoiceLoaded) return; 23574 if (window.__consentVendorGate && !window.__consentVendorGate.isAllowed('bazaarvoice')) { 23575 if (!window.__bazaarvoiceConsentListenerAdded) { 23576 window.__bazaarvoiceConsentListenerAdded = true; 23577 window.addEventListener('OneTrustGroupsUpdated', function onBazaarvoiceConsent() { 23578 if (!window.__consentVendorGate.isAllowed('bazaarvoice')) return; 23579 window.removeEventListener('OneTrustGroupsUpdated', onBazaarvoiceConsent); 23580 loadBazaarvoice(); 23581 }); 23582 } 23583 return; 23584 } 23585 window.__bazaarvoiceLoaded = true; 23586 23587 var script = document.createElement('script'); 23588 script.src = bvSrc; 23589 script.async = true; 23590 script.onload = function () { 23591 if (typeof window.bvCallback === 'function') { 23592 window.bvCallback(); 23593 } 23594 }; 23595 document.head.appendChild(script); 23596 } 23597 23598 function runOnceWhenIdle(task, timeout) { 23599 if ('requestIdleCallback' in window) { 23600 window.requestIdleCallback(task, { timeout: timeout || 2500 }); 23601 } else { 23602 setTimeout(task, 1); 23603 } 23604 } 23605 23606 function onFirstInteraction(task) { 23607 var fired = false; 23608 function run() { 23609 if (fired) return; 23610 fired = true; 23611 task(); 23612 } 23613 23614 ['pointerdown', 'touchstart', 'keydown', 'scroll'].forEach(function (eventName) { 23615 window.addEventListener(eventName, run, { once: true, passive: true }); 23616 }); 23617 } 23618 23619 if (document.readyState === 'complete') { 23620 runOnceWhenIdle(loadBazaarvoice, 3500); 23621 } else { 23622 window.addEventListener( 23623 'load', 23624 function () { 23625 runOnceWhenIdle(loadBazaarvoice, 3500); 23626 }, 23627 { once: true } 23628 ); 23629 } 23630 23631 onFirstInteraction(loadBazaarvoice); 23632 setTimeout(loadBazaarvoice, 8000); 23633 })(); 23634 </script>
23634 23635 23636
23636<script> 23637 window.accessWidgetOptions = { 23638 language: "en", 23639 onReady: function () {} 23640 }; 23641 </script>
23641 23642 23643
23643<script> 23644 (function () { 23645 var accessibeSrc = 'https://acsbapp.com/apps/app/dist/js/app.js'; 23646 23647 function loadAccessibe() { 23648 if (window.__accessibeLoaded) return; 23649 window.__accessibeLoaded = true; 23650 23651 var script = document.createElement('script'); 23652 script.src = accessibeSrc; 23653 script.async = true; 23654 script.onload = function () { 23655 if (typeof acsbJS !== 'undefined' && typeof acsbJS.init === 'function') { 23656 acsbJS.init(); 23657 } 23658 }; 23659 (document.head || document.body).appendChild(script); 23660 } 23661 23662 function runOnceWhenIdle(task, timeout) { 23663 if ('requestIdleCallback' in window) { 23664 window.requestIdleCallback(task, { timeout: timeout || 2500 }); 23665 } else { 23666 setTimeout(task, 1); 23667 } 23668 } 23669 23670 function onFirstInteraction(task) { 23671 var fired = false; 23672 function run() { 23673 if (fired) return; 23674 fired = true; 23675 task(); 23676 } 23677 23678 ['pointerdown', 'touchstart', 'keydown', 'scroll'].forEach(function (eventName) { 23679 window.addEventListener(eventName, run, { once: true, passive: true }); 23680 }); 23681 } 23682 23683 if (document.readyState === 'complete') { 23684 runOnceWhenIdle(loadAccessibe, 4000); 23685 } else { 23686 window.addEventListener( 23687 'load', 23688 function () { 23689 runOnceWhenIdle(loadAccessibe, 4000); 23690 }, 23691 { once: true } 23692 ); 23693 } 23694 23695 onFirstInteraction(loadAccessibe); 23696 setTimeout(loadAccessibe, 10000); 23697 })(); 23698 </script>
23698 23699 23700 <div data-global-error-message class="hidden fixed bottom-6 left-1/2 -translate-x-1/2 z-[1000]"> 23701 <alert-banner class=""> 23702 <div 23703 class=" 23704 23705 p-[15px] 23706 bg-error rounded-md flex flex-row drop-shadow-md text-secondary-inverted items-center font-primary not-italic font-normal text-sm leading-5 !bg-[#D70025]"> 23707 <div data-message class="flex flex-row items-center"> 23708 23709 <svg role="presentation" aria-hidden="true" focusable="false" class="icon icon-cancel fill-white w-5 h-5 mr-2.5" width="53" height="53" viewBox="0 0 53 53" fill="none" xmlns="http://www.w3.org/2000/svg"> 23710 <path d="M26.5003 4.41663C38.6462 4.41663 48.5837 14.3541 48.5837 26.5C48.5837 38.6458 38.6462 48.5833 26.5003 48.5833C14.3545 48.5833 4.41699 38.6458 4.41699 26.5C4.41699 14.3541 14.3545 4.41663 26.5003 4.41663ZM26.5003 8.83329C22.3045 8.83329 18.5503 10.1583 15.6795 12.5875L40.4128 37.3208C42.6212 34.2291 44.167 30.475 44.167 26.5C44.167 16.7833 36.217 8.83329 26.5003 8.83329ZM37.3212 40.4125L12.5878 15.6791C10.1587 18.55 8.83366 22.3041 8.83366 26.5C8.83366 36.2166 16.7837 44.1666 26.5003 44.1666C30.6962 44.1666 34.4503 42.8416 37.3212 40.4125Z"/> 23711</svg> 23712 23713 <span></span> 23714 23715 </div> 23716 23717 <div class="ml-auto flex flex-row justify-center items-center font-bold leading-[14px]"> 23718 23719 23720 23721 23722 </div> 23723 </div> 23724</alert-banner> 23725</div> 23726 23727 23728 23729 23730</div> 23731 23732 <div id="shopify-section-footer-home-services" class="shopify-section"> 23733 23734 23735 23736 23737 23738 23739</div> 23740 23741 23742 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23756 23757<autocomplete-document 23758 id="autocomplete-document-header" 23759 class="autocomplete-document" 23760 product-suggestions="Clog-free Toilets, Touchless Bathrooms, Cleanest Toilets" 23761 document-suggestions="How do I replace the flush valve seal for the Champion toilet?,Where can I find the model number of my toilet?,How do I fix a running American Standard Champion Toilet?,How do I submit a warranty claim for an American Standard toilet?" 23762 project-id="lixil-americasecom" 23763 location="global" 23764 engine-id="lixil-americasecom-search" 23765 document-search="false" 23766 initial-mode="products" 23767> 23768</autocomplete-document> 23769 23770 23771 23772 <component-minicart></component-minicart> 23773 23774 23775 <compared-products class="hidden fixed bottom-0 left-0 w-[100dvw] z-20 translate-y-[calc(100%-4px)] [&.active]:translate-y-0 transition ease-in-out duration-500"> 23776 <div class="block relative w-full h-auto"> 23777 <button 23778 data-trigger-button 23779 aria-expanded="false" 23780 aria-controls="compared-products-content" 23781 class="inline-flex items-center justify-center gap-0.5 absolute top-0 left-1/2 -translate-x-1/2 -translate-y-full px-3 py-1 rounded-t-md bg-gray-100/50 backdrop-blur-xl"> 23782 <span class="font-body font-semibold text-black text-xs leading-none">Compared products</span> 23783 <span data-compared-products-amount></span> 23784 <div data-icon class="[&.active>.icon-up]:hidden [&.active>.icon-down]:block"> 23785 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-up icon-up w-4 h-4" width="24" height="24" viewBox="0 0 24 24" fill="none"> 23786 <path d="M12 7.5L19.5 15L18.45 16.05L12 9.6L5.55 16.05L4.5 15L12 7.5Z" fill="black"/> 23787</svg> 23788 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-chevron-down hidden icon-down w-4 h-4" width="24" height="24" viewBox="0 0 24 24" fill="none"> 23789 <path d="M12 16.5L4.5 9.00001L5.55 7.95001L12 14.4L18.45 7.95001L19.5 9.00001L12 16.5Z" fill="black"/> 23790</svg> 23791 </div> 23792 </button> 23793 <div class="block bg-gray-100/50 backdrop-blur-xl w-full h-auto"> 23794 <div class="flex flex-col lg:flex-row p-4 gap-2 container w-full"> 23795 <div data-compare-list class="flex-[75%] flex flex-col gap-2 items-center justify-center w-full h-auto lg:flex-row"> 23796 23797 23798 23799<div data-compare-product-card data-compare-product-card-template class="flex-1 w-full relative flex gap-4 px-2 py-4 bg-gray-50 h-[8.563rem] hidden"> 23800 <div class="flex flex-col w-auto justify-start"> 23801 <picture data-image-template class="block w-[4.625rem] aspect-square" > 23802 23803 <svg class="w-full object-contain h-full bg-no-image" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 525.5 525.5"><path d="M324.5 212.7H203c-1.6 0-2.8 1.3-2.8 2.8V308c0 1.6 1.3 2.8 2.8 2.8h121.6c1.6 0 2.8-1.3 2.8-2.8v-92.5c0-1.6-1.3-2.8-2.9-2.8zm1.1 95.3c0 .6-.5 1.1-1.1 1.1H203c-.6 0-1.1-.5-1.1-1.1v-92.5c0-.6.5-1.1 1.1-1.1h121.6c.6 0 1.1.5 1.1 1.1V308z"/><path d="M210.4 299.5H240v.1s.1 0 .2-.1h75.2v-76.2h-105v76.2zm1.8-7.2l20-20c1.6-1.6 3.8-2.5 6.1-2.5s4.5.9 6.1 2.5l1.5 1.5 16.8 16.8c-12.9 3.3-20.7 6.3-22.8 7.2h-27.7v-5.5zm101.5-10.1c-20.1 1.7-36.7 4.8-49.1 7.9l-16.9-16.9 26.3-26.3c1.6-1.6 3.8-2.5 6.1-2.5s4.5.9 6.1 2.5l27.5 27.5v7.8zm-68.9 15.5c9.7-3.5 33.9-10.9 68.9-13.8v13.8h-68.9zm68.9-72.7v46.8l-26.2-26.2c-1.9-1.9-4.5-3-7.3-3s-5.4 1.1-7.3 3l-26.3 26.3-.9-.9c-1.9-1.9-4.5-3-7.3-3s-5.4 1.1-7.3 3l-18.8 18.8V225h101.4z"/><path d="M232.8 254c4.6 0 8.3-3.7 8.3-8.3s-3.7-8.3-8.3-8.3-8.3 3.7-8.3 8.3 3.7 8.3 8.3 8.3zm0-14.9c3.6 0 6.6 2.9 6.6 6.6s-2.9 6.6-6.6 6.6-6.6-2.9-6.6-6.6 3-6.6 6.6-6.6z"/></svg> 23804 23805 </picture> 23806 </div> 23807 <div class="flex flex-col gap-2"> 23808 <a href="" data-product-title class="font-body font-semibold text-sm text-black leading-[120%] line-clamp-3"></a> 23809 <span class="font-body font-normal text-xs text-gray-700 leading-[140%] uppercase">Model: <span data-variant-sku>2034314</span></span> 23810 <span class="font-body font-normal text-xs text-black leading-[140%] ">Finish: <span data-variant-option>White</span></span> 23811 </div> 23812 23813 <button 23814 data-remove-product-btn="" 23815 class="absolute right-2 bottom-4" 23816 aria-label="Remove from comparison" 23817 type="button" 23818 > 23819 <svg role="presentation" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg" class="icon icon-action-delete w-4 h-4 text-gray-500" width="24" height="24" viewBox="0 0 24 24" fill="none"> 23820 <path d="M9 9H10.5V18H9V9ZM13.5 9H15V18H13.5V9Z" fill="black"/> 23821 <path d="M3 4.5V6H4.5V21C4.5 21.3978 4.65804 21.7794 4.93934 22.0607C5.22064 22.342 5.60218 22.5 6 22.5H18C18.3978 22.5 18.7794 22.342 19.0607 22.0607C19.342 21.7794 19.5 21.3978 19.5 21V6H21V4.5H3ZM6 21V6H18V21H6ZM9 1.5H15V3H9V1.5Z" fill="currentColor"/> 23822</svg> 23823 </button> 23824</div> 23825 <div data-empty-card class="flex flex-col justify-center items-center px-5 py-4 bg-gray-50/30 w-full h-[8.563rem] lg:flex-1"> 23826 <span class="text-center w-[12.5rem] font-body font-light text-black text-sm leading-[120%]">Select an additional product to add to the list.</span> 23827</div> 23828 <div data-empty-card class="flex flex-col justify-center items-center px-5 py-4 bg-gray-50/30 w-full h-[8.563rem] lg:flex-1"> 23829 <span class="text-center w-[12.5rem] font-body font-light text-black text-sm leading-[120%]">Select an additional product to add to the list.</span> 23830</div> 23831 <div data-empty-card class="flex flex-col justify-center items-center px-5 py-4 bg-gray-50/30 w-full h-[8.563rem] lg:flex-1"> 23832 <span class="text-center w-[12.5rem] font-body font-light text-black text-sm leading-[120%]">Select an additional product to add to the list.</span> 23833</div> 23834 </div> 23835 <div class="flex-[25%] flex flex-col items-center justify-center gap-2 w-full lg:px-6"> 23836 <button data-compare-products-btn data-modal-target="compared-product-modal" class="bg-gray-950 px-8 py-4 w-full hover:bg-gray-950 hover:brightness-150 active:bg-secondary-light">
23837 <span class="font-body font-semibold text-base leading-none text-white">Compared products</span> 23838 </button> 23839 <button data-clear-all-btn class="btn-label"> 23840 <span class="font-body font-normal text-xs text-gray-700 underline">Clear all</span> 23841 </button> 23842 </div> 23843 </div> 23844 </div> 23845 </div> 23846</compared-products> 23847 <compared-products-modal> 23848 <popup-modal id="compared-product-modal" data-with-large class="[&_[data-container]]:h-full [&_[data-container]]:max-h-[90dvh] [&_[data-container]]:w-full lg:[&_[data-container]]:!w-[90dvw] lg:[&_[data-container]]:!max-w-full [&_[data-container]]:overflow-auto"> 23849 <h3 class="text-xl font-bold mb-5">Compared products</h3> 23850 23851 <div class="flex flex-col gap-4"> 23852 <!-- Product Cards Row --> 23853 <div class="flex flex-col md:flex-row border-b border-gray-300 pb-4" data-product-card-row> 23854 <div class="w-full md:w-1/4 py-2 px-4 bg-gray-100 font-semibold text-sm">Products</div> 23855 <div class="hidden w-full md:w-3/4 py-2 px-4" data-product-card-item> 23856 <compare-product-card-modal class="relative flex flex-col gap-5 h-full lg:w-[16rem] " data-product-card-modal> 23857 <button class="absolute top-0 right-0" data-remove-product-btn aria-label="Translation missing: en.accessibility.remove_product"> 23858 <svg role="presentation" aria-hidden="true" focusable="false" 23859 xmlns="http://www.w3.org/2000/svg" 23860 class="icon icon-close w-6 h-6" 23861 width="20" 23862 height="20" 23863 viewBox="0 0 20 20" 23864 fill="none" 23865> 23866 <path d="M15 5.875L14.125 5L10 9.125L5.875 5L5 5.875L9.125 10L5 14.125L5.875 15L10 10.875L14.125 15L15 14.125L10.875 10L15 5.875Z" fill="black"/> 23867</svg> 23868 23869 </button> 23870 23871 <div class="w-auto"> 23872 <picture class="block pb-3 border-b-4 border-primary"> 23873 <img data-product-image src="//www.americanstandard-us.com/cdn/shopifycloud/storefront/assets/no-image-2048-a2addb12_medium.gif" alt="" class="w-full h-full object-cover object-center aspect-square" loading="lazy"> 23874 </picture> 23875 </div> 23876 23877 <div class="flex flex-col justify-between h-full gap-5"> 23878 <div class="flex flex-col gap-4"> 23879 <div class="flex flex-col"> 23880 <span data-availability>In stock</span> 23881 </div> 23882 <div class="flex flex-col gap-1.5"> 23883 <span class="font-body font-medium text-2xl leading-none whitespace-nowrap" data-product-vendor>Vendor</span> 23884 <a href="" class="font-body font-semibold text-sm text-black leading-[120%] line-clamp-3" data-product-title>Product Title</a> 23885 </div> 23886 </div> 23887 23888 <div class="flex flex-col gap-2"> 23889 <div> 23890 <span>Model:</span> 23891 <span data-variant-sku></span> 23892 </div> 23893 23894 <div class="" data-btn-add-to-cart> 23895 <form method="post" action="/cart/add" id="product_form_${product.id}" accept-charset="utf-8" class="shopify-product-form" enctype="multipart/form-data" novalidate="novalidate"> 23896 <input type="hidden" name="id" /> 23897 <input type="hidden" name="qty" value="1" /> 23898 <div data-handle="" class="flex"> 23899 <button type="submit" class="btn btn-small btn-icon-left inline-flex w-full" name="add" disabled> 23900 <span class="flex items-center"> 23901 Out of Stock 23902 </span> 23903 </button> 23904 </div> 23905 </form> 23906 </div> 23907 23908 23909 </div> 23910 </div> 23911 </div> 23912 </div> 23913 23914 <!-- Color/Finish Row --> 23915 <div class="flex flex-col md:flex-row border-b border-gray-300 pb-4" data-color-finish-row> 23916 <div class="w-full md:w-1/4 py-2 px-4 bg-gray-100 font-semibold text-sm">Color/Finish</div> 23917 <div class="hidden w-full md:w-3/4 py-2 px-4" data-color-option-item> 23918 <compare-color-options-modal class="flex gap-4 h-full " data-color-options-modal> 23919 <picture data-color-item class="hidden"> 23920 <img src="" alt="" class="w-8 h-8 object-center rounded-full object-none" onerror="this.onerror=null;this.src='//www.americanstandard-us.com/cdn/shop/files/no-image-swatch.png?v=9561460259801808305';" loading="lazy"> 23921 </picture> 23922</compare-color-options-modal> 23923 </div> 23924 </div> 23925 23926 <!-- List Price Row --> 23927 23928 <div class="flex flex-col md:flex-row border-b border-gray-300 pb-4" data-list-price-row> 23929 <div class="w-full md:w-1/4 py-2 px-4 bg-gray-100 font-semibold text-sm">List price</div> 23930 <div class="w-full md:w-3/4 py-2 px-4" data-list-price-item></div> 23931 </div> 23932 23933 23934 <!-- Hidden Metafields Row --> 23935 <div class="flex flex-col md:flex-row border-b border-gray-300 pb-4 hidden" data-metafields-row> 23936 <div class="w-full md:w-1/4 py-2 px-4 bg-gray-100 font-semibold text-sm">Metafields</div> 23937 <div class="hidden w-full md:w-3/4 py-2 px-4" data-metafields-item> 23938 Content 23939 </div> 23940 </div> 23941 </div> 23942 </popup-modal> 23943</compared-products-modal> 23944 23945
23946<script> 23947 const raw = "[(Shower,Accessories,Sink Faucets):Polished Chrome, Polished Nickel, Brushed Nickel, Matte Black, Brushed Cool Sunrise, Legacy Bronze, Oil Rubbed Bronze]\n\n [(Kitchen,Bar Faucets):Polished Chrome, Stainless Steel, Polished Nickel, Matte Black, Brushed Cool Sunrise, Legacy Bronze]\n\n[(Kitchen Sinks):Stainless Steel, White, Brilliant White]\n\n[(Bathroom Sinks):White, Linen, Bone]\n\n[(Toilets):White, Linen, Bone, Alabaster White]\n\n[(Bathtubs):White, Linen, Arctic]\n\n[(Walk in Tubs):White, Linen, Biscuit]\n\n[(Shower Doors):Silver Shine, Brushed Nickel, Matte Black, Gold, Oil Rubbed Bronze]\n\n[(Furniture):White, Dark Grey, Smoked Grey, Dark Cherry, Ash, Walnut]\n\n[(Shower Walls): White, White Marble, Serene Marble, Silver Celestial, Powder Marble, Platinum Marble, Beige Parchment, Celestial Marble, Sand Travertine, Pewter Travertine, Gray Timber, Gray Concrete, White Subway Tile, Gray Subway Tile]\n\n[(Drains \u0026 P-traps): Chrome, Brushed Nickel, Matte Black, Brushed Cool Sunrise, White, Arctic, Linen, Bone, Polished Brass]\n\n[(Trip Levers):Chrome, Polished Nickel, Brushed Nickel, Matte Black, Brushed Cool Sunrise, White, Linen, Bone, Polished Brass]"; 23948 23949 const pattern = /\[\(([^)\]]+)\)[|:](.+?)\]/g; 23950 23951 const categoriesMap = {}; 23952 23953 for (const match of raw.matchAll(pattern)) { 23954 const categoryList = match[1].split(',').map(str => str.trim()); 23955 const colorList = match[2].split(',').map(str => str.trim()).join(','); 23956 23957 for (const category of categoryList) { 23958 categoriesMap[category] = colorList; 23959 } 23960 } 23961 23962
23963 window.theme.swatchesCategory = categoriesMap; 23964 23965 window.theme.swatchesCategoryDefault = "Polished Chrome,White,Stainless Steel,Polished Nickel,Silver Shine,Brushed Nickel,Matte Black,Brushed Cool Sunrise,Legacy Bronze,Oil Rubbed Bronze,Linen,Bone,Biscuit,Dark Grey,Smoked Grey,Dark Cherry,Ash,Walnut,White Marble,Serene Marble,Silver Celestial,Powder Marble,Platinum Marble,Beige Parchment,Celestial Marble,Sand Travertine,Pewter Travertine,Gray Timber,Gray Concrete,White Subway Tile,Gray Subway Tile,Polished Brass,Gold,Arctic,Alabaster White,Brilliant White"; 23966 23967 </script>
23967<script> 23968(function() { 23969 'use strict'; 23970 23971 function isCanadaLocale() { 23972 const shopifyRoot = window.Shopify?.routes?.root || '/'; 23973 return shopifyRoot.includes('/en-ca/') || shopifyRoot.includes('/fr-ca/'); 23974 } 23975 23976 function redirectToHome() { 23977 const shopifyRoot = window.Shopify?.routes?.root || '/'; 23978 const homeUrl = window.location.origin + shopifyRoot; 23979 window.location.href = homeUrl; 23980 } 23981 23982 function clearCart() { 23983 23984 const cart = 0; 23985 23986 if (cart === 0) return; 23987 23988 return fetch('/cart/clear.js', { 23989 method: 'POST', 23990 headers: { 23991 'Content-Type': 'application/json', 23992 } 23993 }); 23994 } 23995 23996 function init() { 23997 if (!isCanadaLocale()) return; 23998 23999 clearCart(); 24000 const isCartPage = window.location.pathname.includes('/cart'); 24001 24002 if (isCartPage) { 24003 redirectToHome(); 24004 } 24005 24006 } 24007 24008 init(); 24009 24010})(); 24011</script>
24011 24012 24013 <style> 24014 .embeddedMessagingConversationButtonWrapper 24015 .embeddedMessagingConversationButton { 24016 width: 45px; 24017 height: 45px; 24018 bottom: 20px; 24019 } 24020 .embeddedMessagingConversationButtonWrapper 24021 .embeddedMessagingConversationButton 24022 div[class="embeddedMessagingIconContainer"] > svg.embeddedMessagingIconChat { 24023 width: 25px; 24024 height: 25px; 24025 } 24026 24027 @media (max-width: 768px) { 24028 .embeddedMessagingConversationButtonWrapper 24029 .embeddedMessagingConversationButton { 24030 width: 30px; 24031 height: 30px; 24032 } 24033 .embeddedMessagingConversationButtonWrapper 24034 .embeddedMessagingConversationButton 24035 div[class="embeddedMessagingIconContainer"] > svg.embeddedMessagingIconChat { 24036 width: 20px; 24037 height: 20px; 24038 } 24039 } 24040</style> 24041 24042 24043 <input hidden="" value="https://lwta.my.site.com/ESWAmericanStandardChat1768641236253/assets/js/bootstrap.min.js" id="sf-chat-scripts"> 24044 24045
24046<script> 24047 // GLOBAL PROTECTION: Guard the $jscomp object immediately 24048 window.$jscomp = window.$jscomp || {}; 24049 if (typeof window.$jscomp.asyncExecutePromiseGeneratorFunction !== 'function') { 24050 window.$jscomp.asyncExecutePromiseGeneratorFunction = function(executor) { 24051 return new Promise(executor); 24052 }; 24053 } 24054 24055 window.__sfChatState = window.__sfChatState || { 24056 scriptInjected: false, 24057 initStarted: false, 24058 initCompleted: false 24059 }; 24060 24061 function injectJSAsync(src, inline = false, callback = null, attempt = 1) { 24062 return new Promise((resolve, reject) => { 24063 if (!inline) { 24064 var existing = document.querySelector('script[data-sf-chat-src="' + src + '"]'); 24065 if (existing) { 24066 if (typeof callback === 'function') callback(); 24067 resolve(existing); 24068 return; 24069 } 24070 } 24071 24072 var script = document.createElement("script"); 24073 if (!inline) { 24074 script.setAttribute('data-sf-chat-src', src); 24075 } 24076 script.onload = () => { 24077 console.log('Script loaded:', src); 24078 if (typeof callback === 'function') callback(); 24079 resolve(script); 24080 }; 24081 script.onerror = (error) => { 24082 console.error('Script failed to load:', src, error, 'attempt:', attempt); 24083 if (attempt < 3) { 24084 setTimeout(() => { 24085 injectJSAsync(src, inline, callback, attempt + 1).then(resolve).catch(reject); 24086 }, 1000 * attempt); 24087 return; 24088 } 24089 reject(error); 24090 }; 24091 if (inline) { 24092 script.innerHTML = src; 24093 document.body.appendChild(script); 24094 if (typeof callback === 'function') callback(); 24095 resolve(script); 24096 } else { 24097 script.src = src; 24098 document.body.appendChild(script); 24099 } 24100 }); 24101 } 24102 24103 function whenPageReady(callback) { 24104 if (document.readyState === 'complete') { 24105 callback(); 24106 return; 24107 } 24108 24109 window.addEventListener('load', callback, { once: true }); 24110 } 24111 24112 function waitForEmbeddedBootstrap(maxAttempts, intervalMs, callback) { 24113 let attempts = 0; 24114 24115 function check() { 24116 attempts += 1; 24117 if (window.embeddedservice_bootstrap && typeof window.embeddedservice_bootstrap.init === 'function') { 24118 callback(true); 24119 return; 24120 } 24121 24122 if (attempts >= maxAttempts) { 24123 callback(false); 24124 return; 24125 } 24126 24127 setTimeout(check, intervalMs); 24128 } 24129 24130 check(); 24131 } 24132 24133 function sf_adv_chat_init() { 24134 console.log('sf_adv_chat_init started'); 24135 if (window.__sfChatState.scriptInjected) { 24136 console.log('sf_adv_chat_init skipped: script already injected'); 24137 return; 24138 } 24139 24140 var scriptsrcs = document.getElementById('sf-chat-scripts').value; 24141 if (!scriptsrcs || scriptsrcs.trim().length <= 0) return; 24142 24143 var sf_scripts = scriptsrcs.split('|').filter(function (value) { 24144 return value != null && value != '' && value.trim().length > 0; 24145 }); 24146 24147 // DELAYED LOADING: Wait for the window to settle to avoid race conditions 24148 whenPageReady(function() { 24149 setTimeout(async function() { 24150 console.log('Environment settled. Loading Salesforce scripts...'); 24151 try { 24152 window.__sfChatState.scriptInjected = true; 24153 const scriptPromises = sf_scripts.map(scriptSrc => { 24154 return injectJSAsync(scriptSrc, false, initEmbeddedMessaging); 24155 }); 24156 await Promise.all(scriptPromises); 24157 } catch (error) { 24158 window.__sfChatState.scriptInjected = false; 24159 console.error('Error loading scripts:', error); 24160 } 24161 }, 2500); // 2.5 second buffer for Shopify/OneTrust analytics 24162 }); 24163 } 24164 24165 window.addEventListener("onEmbeddedMessagingReady", () => { 24166 console.log("Inside Prechat API!"); 24167 embeddedservice_bootstrap.prechatAPI.setHiddenPrechatFields({ 24168 "Site": window.location.origin 24169 }); 24170 }); 24171 24172 window.addEventListener("onEmbeddedMessagingReady", () => { 24173 console.log("Inside Prechat API!"); 24174 embeddedservice_bootstrap.prechatAPI.setHiddenPrechatFields({ 24175 "Site": window.location.origin 24176 }); 24177 }, { once: true }); 24178 24179 function initEmbeddedMessaging() { 24180 if (window.__sfChatState.initStarted || window.__sfChatState.initCompleted) { 24181 return; 24182 } 24183 24184 window.__sfChatState.initStarted = true; 24185 24186 try { 24187 // JUST-IN-TIME PATCH: Re-verify $jscomp hasn't been overwritten 24188 window.$jscomp = window.$jscomp || {}; 24189 if (typeof window.$jscomp.asyncExecutePromiseGeneratorFunction !== 'function') { 24190 window.$jscomp.asyncExecutePromiseGeneratorFunction = function(executor) { 24191 return new Promise(executor); 24192 }; 24193 } 24194 24195 waitForEmbeddedBootstrap(30, 500, function(isReady) { 24196 if (!isReady) { 24197 window.__sfChatState.initStarted = false;
24198 console.error('Embedded Messaging bootstrap not ready after waiting.'); 24199 return; 24200 } 24201 24202 embeddedservice_bootstrap.settings.language = 'en_US'; 24203 24204 24205 // PRODUCTION CONFIG 24206 embeddedservice_bootstrap.init( 24207 '00D1N000001UL7U', 24208 'American_Standard_Chat_Bot', 24209 'https://lwta.my.site.com/ESWAmericanStandardChat1768641236253', 24210 { scrt2URL: 'https://lwta.my.salesforce-scrt.com' } 24211 ); 24212 24213 24214 window.__sfChatState.initCompleted = true; 24215 }); 24216 } catch (err) { 24217 window.__sfChatState.initStarted = false; 24218 console.error('Error loading Embedded Messaging: ', err); 24219 } 24220 } 24221 24222 // Trigger the init check 24223 sf_adv_chat_init(); 24224</script>
24224 24225 24226 24227 24228
24228<script> 24229 (function () { 24230 function runOnceWhenIdle(task, timeout) { 24231 if ('requestIdleCallback' in window) { 24232 window.requestIdleCallback(task, { timeout: timeout || 2500 }); 24233 } else { 24234 setTimeout(task, 1); 24235 } 24236 } 24237 24238 function onFirstInteraction(task) { 24239 var fired = false; 24240 function run() { 24241 if (fired) return; 24242 fired = true; 24243 task(); 24244 } 24245 24246 ['pointerdown', 'touchstart', 'keydown', 'scroll'].forEach(function (eventName) { 24247 window.addEventListener(eventName, run, { once: true, passive: true }); 24248 }); 24249 } 24250 24251 function executeScripts(container) { 24252 var scripts = container.querySelectorAll('script'); 24253 scripts.forEach(function (oldScript) { 24254 var newScript = document.createElement('script'); 24255 24256 Array.prototype.slice.call(oldScript.attributes).forEach(function (attribute) { 24257 newScript.setAttribute(attribute.name, attribute.value); 24258 }); 24259 24260 if (oldScript.textContent) { 24261 newScript.text = oldScript.textContent; 24262 } 24263 24264 oldScript.parentNode.replaceChild(newScript, oldScript); 24265 }); 24266 } 24267 24268 function injectMarkup(markup) { 24269 if (!markup || !markup.trim()) return; 24270 var wrapper = document.createElement('div'); 24271 wrapper.setAttribute('data-deferred-third-party', 'true'); 24272 wrapper.innerHTML = markup; 24273 document.body.appendChild(wrapper); 24274 executeScripts(wrapper); 24275 } 24276 24277 function scheduleDeferredThirdPartyLoad() { 24278 if (window.__deferredThirdPartyLoaded) return; 24279 window.__deferredThirdPartyLoaded = true; 24280 injectMarkup("\u003cscript\u003e\n document.addEventListener('DOMContentLoaded', () =\u003e {\n\n \/\/ Get UTM parameters\n const urlParams = new URLSearchParams(window.location.search);\n const utmSource = urlParams.get(\"utm_source\") || \"\";\n const utmMedium = urlParams.get(\"utm_medium\") || \"\";\n const utmCampaign = urlParams.get(\"utm_campaign\") || \"\";\n const utmContent = urlParams.get(\"utm_content\") || \"\";\n\n \/\/ GA4 Event Tag - Get Started buttons\n let allGetStartedButtons = document.querySelectorAll('[data-popup-trigger=\"banner-popup-overlay\"]');\n allGetStartedButtons.forEach(button =\u003e {\n button.addEventListener('click', () =\u003e {\n\n const eventData = {\n 'event': 'home_services_get_started_button_clicked',\n 'ecommerce': {\n 'data': {\n 'button_text': button.textContent,\n 'page_url': window.location.href,\n 'page_title': document.title,\n 'page_viewport': {\n 'width': window.innerWidth,\n 'height': window.innerHeight\n },\n 'utm_source': utmSource,\n 'utm_medium': utmMedium,\n 'utm_campaign': utmCampaign,\n 'utm_content': utmContent\n }\n }\n };\n\n sendEventToDataLayer(eventData);\n });\n });\n\n \/\/GA4 Event Tag - Telephone number clicks\n let allPhoneNumbers = document.querySelectorAll('[data-home-services-phone-number]');\n allPhoneNumbers.forEach(phoneNumber =\u003e {\n phoneNumber.addEventListener('click', () =\u003e {\n\n const eventData = {\n 'event': 'home_services_phone_number_clicked',\n 'ecommerce': {\n 'data': {\n 'page_url': window.location.href,\n 'page_title': document.title,\n 'page_viewport': {\n 'width': window.innerWidth,\n 'height': window.innerHeight\n },\n 'utm_source': utmSource,\n 'utm_medium': utmMedium,\n 'utm_campaign': utmCampaign,\n 'utm_content': utmContent\n }\n }\n };\n\n sendEventToDataLayer(eventData);\n });\n });\n\n function sendEventToDataLayer(eventData) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(eventData);\n }\n });\n\u003c\/script\u003e"); 24281 } 24282 24283 if (document.readyState === 'complete') { 24284 runOnceWhenIdle(scheduleDeferredThirdPartyLoad, 3000); 24285 } else { 24286 window.addEventListener( 24287 'load', 24288 function () { 24289 runOnceWhenIdle(scheduleDeferredThirdPartyLoad, 3000); 24290 }, 24291 { once: true } 24292 ); 24293 } 24294 24295 onFirstInteraction(scheduleDeferredThirdPartyLoad); 24296 setTimeout(scheduleDeferredThirdPartyLoad, 7000); 24297 })(); 24298 </script>
24298 24299 24300
24300<script type="text/javascript"> 24301 window.addEventListener('retail-connect:add-to-cart:success', (e) => { 24302 var drawer = document.querySelector('component-minicart'); 24303 drawer.reload().then(() => { 24304 drawer.open(); 24305 }) 24306 }); 24307 24308 window.Nimstrata = window.Nimstrata || {}; 24309 24310 window.Nimstrata.search = { 24311 customFilters: [], 24312 defaultFilters: [], 24313 }; 24314 24315 window.Nimstrata.search.defaultFilters.push({ 24316 field: "attributes.avialable_in", 24317 value: ["US"], 24318 type: "string", 24319 }); 24320 24321 24322 window.Nimstrata.search.customFilters.push({ 24323 name: "InStock", 24324 displayName: "IN-STOCK", 24325 displayComponent: "switch", 24326 displayLocation: "toolbar", 24327 defaultActive: false, 24328 field: "availability", 24329 value: ["IN_STOCK"], 24330 type: "string", 24331 }); 24332 24333 24334 window.Nimstrata.search.customFilters.push({ 24335 name: "Discontinued", 24336 24337 displayName: "Show Discontinued Products", 24338 24339 displayComponent: "switch", 24340 displayLocation: "sidebar", 24341 defaultActive: true, 24342 filter: { 24343 field: "attributes.product_status", 24344 value: ["Active"], 24345 type: "string", 24346 }, 24347 }); 24348 24349 window.Nimstrata.translations = window.Nimstrata.translations || {}; 24350 24351 24352 24353 window.Nimstrata.translations.default = { 24354 colors: 'Color', 24355 colorFamilies: 'Color Family', 24356 'attributes.design_collection': 'Design Collection', 24357 'attributes.product_type': 'Product Type', 24358 'attributes.bath_accessory_mount_type': 'Mount Type', 24359 'attributes.bath_accessory_type': 'Bath Accessory Type', 24360 'attributes.bowl_shape': 'Toilet Bowl Shape', 24361 'attributes.fitting_handle_type': 'Handle Type', 24362 'attributes.fitting_no_of_holes_required': 'Number of Holes Required', 24363 'attributes.flush_technology': 'Flush Technology', 24364 'attributes.flushing_type': 'Flushing Type', 24365 'attributes.sink_shape': 'Shape', 24366 'attributes.kitchen_sink_mount_location': 'Mount Location', 24367 'attributes.shower_valve_type': 'Valve Type', 24368 'attributes.toilet_activation_lever_location': 'Trip Lever Location', 24369 'attributes.toilet_trapway_design': 'Trapway Design', 24370 'attributes.rough_in_size': 'Rough in Size', 24371 'attributes.sink_no_of_basins': 'Number of Bowls', 24372 'attributes.toilet_seat_included_yn': 'Toilet Seat Included', 24373 'attributes.ada_yn': 'ADA', 24374 'attributes.lwt_category': 'Category', 24375 'Load More': 'Load More', 24376 'Loading more...': 'Loading more...', 24377 'Viewed': "You've viewed", 24378 'Products': 'Products', 24379 'products': 'products', 24380 'of': 'of', 24381 'Back to Top': 'Back to Top', 24382 'Back to top of products': 'Back to top of products', 24383 'results.load_more': 'Load More', 24384 'results.load_more_loading': 'Loading more...', 24385 'results.count_singular': '{count} product', 24386 'results.count_plural': '{count} products', 24387 '{count} product': '{count} product', 24388 '{count} products': '{count} products', 24389 ' product': ' product', 24390 ' products': ' products', 24391 'results.summary.viewed': "You've viewed {viewed} of {total} products", 24392 'Add to Basket': 'Add', 24393 } 24394 24395 24396</script>
24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 <style> </style> 24408<div id="shopify-block-ASXJCWWEvMUE5L1VWd__5946647744298494267" class="shopify-block shopify-app-block"> 24409 24410 24411<!-- BEGIN app snippet: swymVersion -->
24411<script>var __SWYM__VERSION__ = '7.0.8';</script>
24411<!-- END app snippet --> 24412<!-- BEGIN app snippet: swymCustomCss --> 24413 24414 24415 24416 24417<style id="swym-custom-css"> 24418 24419</style> 24420 24421<!-- END app snippet --> 24422 24423 24424 24425 24426 24427 24428 24429 24430 24431 24432 24433
24434<script> 24435 (function () { 24436 // Get CompanyLocation Metadata for B2B customer scenerios (SFS) 24437 24438 24439 // Put metafields in window variable 24440 const commonCustomizationSettings = ''; 24441 try { 24442 const parsedSettings = JSON.parse(commonCustomizationSettings); 24443 if (parsedSettings) { 24444 window.SwymWishlistCommonCustomizationSettings = parsedSettings[window.Shopify.theme.schema_name] || parsedSettings['global-settings']; 24445 } else { 24446 window.SwymWishlistCommonCustomizationSettings = {}; 24447 } 24448 } catch (e) { 24449 window.SwymWishlistCommonCustomizationSettings = {}; 24450 } 24451 24452 let enabledCommonFeatures = '{"add-to-wishlist-collections-button":true,"add-to-wishlist-pdp-button":false,"auto-add-to-wishlist-from-pdp":{"pdpViewCount":"3","notificationTimeoutDuration":"5","selectedPosition":"TopLeft","enabled":false},"multiple-wishlist":true}'; 24453 try { 24454 enabledCommonFeatures = JSON.parse(enabledCommonFeatures) || {}; 24455 } catch (e) { 24456 enabledCommonFeatures = {}; 24457 } 24458 // Storing COMMON FEATURES data in the window object for potential use in the storefront JS code. 24459 window.SwymEnabledCommonFeatures = enabledCommonFeatures; 24460 24461 // Ghost-Intent Configuration 24462 // Defaults to disabled (false). Only enabled when metafields explicitly set to "true". 24463 try { 24464 let ghostIntentConfig = { 24465 isExplicitConsentNeeded: false, 24466 isExplicitConsentNeededEvenForLocalStorage: false, 24467 askForPermissionOnFirstClick: true 24468 }; 24469 24470 24471 24472 window.SwymGhostIntentConfig = ghostIntentConfig; 24473 } catch(e) { 24474 window.SwymGhostIntentConfig = { 24475 isExplicitConsentNeeded: false, 24476 isExplicitConsentNeededEvenForLocalStorage: false, 24477 askForPermissionOnFirstClick: true 24478 }; 24479 } 24480 24481 // Education Layer Configuration 24482 // Reads from common enabled-features metafield first. Falls back to old standalone metafield for backward compatibility. 24483 24484 24485 window.SwymEducationLayerEnabled = enabledCommonFeatures?.["education-layer"] ?? true; 24486 24487 // Login Nudge Configuration 24488 // Reads from common enabled-features metafield first. Falls back to old standalone metafield for backward compatibility. 24489 24490 24491 window.SwymLoginNudgeEnabled = enabledCommonFeatures?.["login-nudge"] ?? true; 24492 24493 // Initialize or ensure SwymViewProducts exists 24494 if (!window.SwymViewProducts) { 24495 window.SwymViewProducts = {}; 24496 } 24497 24498 })(); 24499</script>
24499 24500 24501<!-- BEGIN app snippet: swymLoadConsentManager -->
24502<script> 24503 (function () { 24504 if (document.querySelector("script[data-swym-consent-manager]")) return; 24505 var swymConsentManagerScript = document.createElement("script"); 24506 swymConsentManagerScript.src = "https:\/\/cdn.shopify.com\/extensions\/01a0f142-9ec3-73a2-babd-8904a7e44cee\/swym-relay-840\/assets\/swym-consent-manager.js"; 24507 swymConsentManagerScript.async = false; // run in insertion order once fetched, instead of whenever fetch resolves 24508 swymConsentManagerScript.setAttribute("data-swym-consent-manager", "true"); 24509 document.head.appendChild(swymConsentManagerScript); 24510 })(); 24511</script>
24511 24512<!-- END app snippet --> 24513
24514<script 24515 24516 id="wishlist-embed-init" 24517 defer 24518 async 24519> 24520 (function () { 24521 window.swymWishlistEmbedLoaded = true; 24522 var fullAssetUrl = "https://cdn.shopify.com/extensions/01a0f142-9ec3-73a2-babd-8904a7e44cee/swym-relay-840/assets/apps.bundle.js"; 24523 var assetBaseUrl = fullAssetUrl?.substring(0, fullAssetUrl.lastIndexOf('/') + 1); 24524 var swymJsPath = '//premcdn.swymrelay.com/code/swym-shopify.js'; 24525 var baseJsPath = swymJsPath?.substring(0, swymJsPath.lastIndexOf('/') + 1); 24526 window.SwymCurrentJSPath = baseJsPath; 24527 window.SwymAssetBaseUrl = assetBaseUrl; 24528 24529 window.SwymCurrentStorePath = "//swymstore-v3premium-01.swymrelay.com"; 24530 24531 function loadSwymShopifyScript() { 24532 var element = ""; 24533 var scriptSrc = ""; 24534 24535 24536 element = "swym-ext-shopify-script"; 24537 window.SwymShopifyCdnInUse = true; 24538 scriptSrc = "https://cdn.shopify.com/extensions/01a0f142-9ec3-73a2-babd-8904a7e44cee/swym-relay-840/assets/swym-ext-shopify.js"; 24539 24540 24541 if (document.getElementById(element)) { 24542 return; 24543 } 24544 24545 var s = document.createElement("script"); 24546 s.id = element; 24547 s.type = "text/javascript"; 24548 s.async = true; 24549 s.defer = true; 24550 s.src = scriptSrc; 24551 24552 s.onerror = function() { 24553 console.warn("Failed to load Swym Shopify script: ", scriptSrc, " Continuing with default"); 24554 // Fallback logic here 24555 element = `swym-ext-shopify-script-${__SWYM__VERSION__}`; 24556 var fallbackJsPathVal = "\/\/premcdn.swymrelay.com\/code\/swym-shopify.js"; 24557 var fallbackJsPathWithExt = fallbackJsPathVal.replace("swym-shopify", "swym-ext-shopify"); 24558 scriptSrc = fallbackJsPathWithExt + '?shop=' + encodeURIComponent(window.Shopify.shop) + '&v=' + __SWYM__VERSION__; 24559 24560 var fallbackScript = document.createElement("script"); 24561 fallbackScript.id = element; 24562 fallbackScript.type = "text/javascript"; 24563 fallbackScript.async = true; 24564 fallbackScript.defer = true; 24565 fallbackScript.src = scriptSrc; 24566 var y = document.getElementsByTagName("script")[0]; 24567 y.parentNode.insertBefore(fallbackScript, y); 24568 }; 24569 24570 var x = document.getElementsByTagName("script")[0]; 24571 x.parentNode.insertBefore(s, x); 24572 } 24573 24574 var consentAPICallbackInvoked = false; 24575 function checkConsentAndLoad() { 24576 // Allow app to load in design mode (theme editor) regardless of consent 24577 if (window.Shopify?.designMode) { 24578 loadSwymShopifyScript(); 24579 return; 24580 } 24581 24582 // Ghost-Intent: If merchant enabled explicit consent, block SDK until 24583 // consent is given through our Ghost-Intent flow (sync nudge accept). 24584 // This works on any store regardless of region (EU or non-EU). 24585 var ghostConfig = window.SwymGhostIntentConfig || {}; 24586 if (ghostConfig.isExplicitConsentNeeded || ghostConfig.isExplicitConsentNeededEvenForLocalStorage) { 24587 try { 24588 var consentKey = 'swym-ghost-consent-' + (window.Shopify && window.Shopify.shop || ''); 24589 if (localStorage.getItem(consentKey) === 'true') { 24590 // Consent was given through our flow â load SDK 24591 loadSwymShopifyScript(); 24592 return; 24593 } 24594 } catch(e) {} 24595 24596 // Check if Shopify native cookie consent was given via the cookie banner. 24597 // If user accepted cookies through Shopify's banner, load SDK normally 24598 // (Ghost-Intent is only needed when NO consent mechanism has been used). 24599 var shopifyConsentGiven = window.Shopify?.customerPrivacy?.preferencesProcessingAllowed?.(); 24600 if (shopifyConsentGiven) { 24601 loadSwymShopifyScript(); 24602 return; 24603 } 24604 24605 console.warn("[Swym Ghost-Intent] SDK blocked until explicit consent is given"); 24606 return; 24607 } 24608 24609 var isCookieBannerVisible = window.Shopify?.customerPrivacy?.shouldShowBanner?.(); 24610 if(!isCookieBannerVisible) { 24611 loadSwymShopifyScript(); 24612 return; 24613 } 24614 var shouldLoadSwymScript = window.Shopify?.customerPrivacy?.preferencesProcessingAllowed?.(); 24615 if (shouldLoadSwymScript) { 24616 loadSwymShopifyScript(); 24617 } else { 24618 console.warn("No customer consent to load Swym Wishlist Plus"); 24619 } 24620 } 24621 function initialiseConsentCheck() { 24622 document.addEventListener("visitorConsentCollected", (event) => { checkConsentAndLoad(); }); 24623 window.Shopify?.loadFeatures?.( 24624 [{name: 'consent-tracking-api', version: '0.1'}], 24625 error => { 24626 consentAPICallbackInvoked = true; 24627 if (error) { 24628 if(!window.Shopify?.customerPrivacy) { 24629 loadSwymShopifyScript(); 24630 return; 24631 } 24632 } 24633 checkConsentAndLoad(); 24634 } 24635 ); 24636 } 24637 function consentCheckFallback(retryCount) { 24638 if(!consentAPICallbackInvoked) { 24639 if (window.Shopify?.customerPrivacy) { 24640 checkConsentAndLoad(); 24641 } else if (retryCount >= 1) { 24642 console.warn("Shopify.loadFeatures unsuccessful on site, refer - https://shopify.dev/docs/api/customer-privacy#loading-the-customer-privacy-api. Proceeding with normal Swym Wishlist Plus load"); 24643 // Ghost-Intent: route through checkConsentAndLoad so SDK block is respected 24644 checkConsentAndLoad(); 24645 } else { 24646 setTimeout(() => consentCheckFallback(retryCount + 1), 1000); 24647 } 24648 } 24649 } 24650 if (document.readyState === "loading") { 24651 document.addEventListener("DOMContentLoaded", initialiseConsentCheck); 24652 window.addEventListener("load", () => consentCheckFallback(0)); 24653 } else { 24654 initialiseConsentCheck(); 24655 } 24656 24657 })(); 24658</script>
24658 24659 24660<!-- BEGIN app snippet: swymSnippet -->
24660<script defer> 24661 (function () { 24662 const currentSwymJSPath = '//premcdn.swymrelay.com/code/swym-shopify.js'; 24663 const currentSwymStorePath = 'https://swymstore-v3premium-01.swymrelay.com'; 24664 const dnsPrefetchLink = `<link rel="dns-prefetch" href="${currentSwymStorePath}" crossorigin>`; 24665 const dnsPrefetchLink2 = `<link rel="dns-prefetch" href="${currentSwymJSPath}">`; 24666 const preConnectLink = `<link rel="preconnect" href="${currentSwymJSPath}">`; 24667 const swymSnippet = document.getElementById('wishlist-embed-init'); 24668 if(dnsPrefetchLink) {swymSnippet.insertAdjacentHTML('afterend', dnsPrefetchLink);} 24669 if(dnsPrefetchLink2) {swymSnippet.insertAdjacentHTML('afterend', dnsPrefetchLink2);} 24670 if(preConnectLink) {swymSnippet.insertAdjacentHTML('afterend', preConnectLink);} 24671 })() 24672</script>
vendor: 1 bytes, line 24672
24672
24673<script id="swym-snippet" type="text"> 24674 window.swymLandingURL = document.URL; 24675 window.swymCart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 24676 window.swymPageLoad = function() { 24677 window.SwymProductVariants = window.SwymProductVariants || {}; 24678 window.SwymHasCartItems = 0 > 0; 24679 window.SwymPageData = {}, window.SwymProductInfo = {}; 24680 var unknown = {et: 0}; 24681 window.SwymPageData = unknown; 24682 24683 window.SwymPageData.uri = window.swymLandingURL; 24684 }; 24685 if(window.selectCallback){ 24686 (function(){ 24687 var originalSelectCallback = window.selectCallback; 24688 window.selectCallback = function(variant){ 24689 originalSelectCallback.apply(this, arguments); 24690 try{ 24691 if(window.triggerSwymVariantEvent){ 24692 window.triggerSwymVariantEvent(variant.id); 24693 } 24694 }catch(err){ 24695 console.warn("Swym selectCallback", err); 24696 } 24697 };})();} 24698 window.swymCustomerId =null; 24699 window.swymCustomerExtraCheck = 24700 null; 24701 var swappName = ("Wishlist" || "Wishlist"); 24702 var swymJSObject = { 24703 pid: "wHM132KsoTbCnMxaXTdQmUDbAd13+eCAIfv4Vx0zF68=", 24704 interface: "/apps/swym" + swappName + "/interfaces/interfaceStore.php?appname=" + swappName 24705 }; 24706 window.swymJSShopifyLoad = function(){ 24707 if(window.swymPageLoad) swymPageLoad(); 24708 if(!window._swat) { 24709 (function (s, w, r, e, l, a, y) { 24710 r['SwymRetailerConfig'] = s; 24711 r[s] = r[s] || function (k, v) { 24712 r[s][k] = v; 24713 }; 24714 })('_swrc', '', window); 24715 _swrc('RetailerId', swymJSObject.pid); 24716 _swrc('Callback', function(){initSwymShopify();}); 24717 }else if(window._swat.postLoader){ 24718 _swrc = window._swat.postLoader; 24719 _swrc('RetailerId', swymJSObject.pid); 24720 _swrc('Callback', function(){initSwymShopify();}); 24721 }else{ 24722 initSwymShopify();} 24723 } 24724 if(!window._SwymPreventAutoLoad) { 24725 swymJSShopifyLoad(); 24726 } 24727</script>
24727 24728 24729<style id="safari-flasher-pre"></style>
24730<script> 24731 if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1) { 24732 document.getElementById("safari-flasher-pre").innerHTML = '' + '#swym-plugin,#swym-hosted-plugin{display: none;}' + '.swym-button.swym-add-to-wishlist{display: none;}' + '.swym-button.swym-add-to-watchlist{display: none;}' + '#swym-plugin #swym-notepad, #swym-hosted-plugin #swym-notepad{opacity: 0; visibility: hidden;}' + '#swym-plugin #swym-notepad, #swym-plugin #swym-overlay, #swym-plugin #swym-notification,' + '#swym-hosted-plugin #swym-notepad, #swym-hosted-plugin #swym-overlay, #swym-hosted-plugin #swym-notification' + '{-webkit-transition: none; transition: none;}' + ''; 24733 window.SwymCallbacks = window.SwymCallbacks || []; 24734 window.SwymCallbacks.push(function(tracker) { 24735 tracker.evtLayer.addEventListener(tracker.JSEvents.configLoaded, function() { 24736 var x = function() { 24737 SwymUtils.onDOMReady(function() { 24738 var d = document.createElement("div"); 24739 d.innerHTML = "<style id='safari-flasher-post'>" + "#swym-plugin:not(.swym-ready),#swym-hosted-plugin:not(.swym-ready){display: none;}" + ".swym-button.swym-add-to-wishlist:not(.swym-loaded){display: none;}" + ".swym-button.swym-add-to-watchlist:not(.swym-loaded){display: none;}" + "#swym-plugin.swym-ready #swym-notepad, #swym-plugin.swym-ready #swym-overlay, #swym-plugin.swym-ready #swym-notification," + "#swym-hosted-plugin.swym-ready #swym-notepad, #swym-hosted-plugin.swym-ready #swym-overlay, #swym-hosted-plugin.swym-ready #swym-notification" + "{-webkit-transition: opacity 0.3s, visibility 0.3ms, -webkit-transform 0.3ms !important;-moz-transition: opacity 0.3s, visibility 0.3ms, -moz-transform 0.3ms !important;-ms-transition: opacity 0.3s, visibility 0.3ms, -ms-transform 0.3ms !important;-o-transition: opacity 0.3s, visibility 0.3ms, -o-transform 0.3ms !important;transition: opacity 0.3s, visibility 0.3ms, transform 0.3ms !important;}" + "</style>"; 24740 document.head.appendChild(d); 24741 });}; 24742 setTimeout(x, 10); 24743 });});} 24744 window.SwymOverrideMoneyFormat = "${{amount}}"; 24745</script>
24745 24746<style id="swym-product-view-defaults"> .swym-button.swym-add-to-wishlist-view-product:not(.swym-loaded) { display: none; } </style><!-- END app snippet --> 24747
24748<script 24749 24750 id="swymSnippetCheckAndActivate" 24751> 24752 (function () { 24753 var duplicateProneIds = ['safari-flasher-pre', 'swym-product-view-defaults', 'swym-wrap-login-handler']; 24754 24755 function removeDuplicateIdNodes(id) { 24756 var nodes = document.querySelectorAll('#' + id); 24757 nodes.forEach(function (node, index) { 24758 if (index > 0) { 24759 node.remove(); 24760 } 24761 }); 24762 } 24763 24764 function cleanupDuplicateSnippetNodes(activeScript) { 24765 if (!activeScript) { 24766 return; 24767 } 24768 var allSwymSnippets = document.querySelectorAll('script#swym-snippet'); 24769 allSwymSnippets.forEach(function (scriptNode) { 24770 if (scriptNode !== activeScript) { 24771 scriptNode.remove(); 24772 } 24773 }); 24774 } 24775 24776 function cleanupDuplicateActivationGuards() { 24777 var guardScripts = document.querySelectorAll('script#swymSnippetCheckAndActivate'); 24778 guardScripts.forEach(function (scriptNode, index) { 24779 if (index > 0) { 24780 scriptNode.removeAttribute('id'); 24781 } 24782 }); 24783 } 24784 24785 function postDomLoad() { 24786 var activeScript = document.querySelector('script#swym-snippet:not([type="text"])'); 24787 if (!activeScript) { 24788 var inactiveScript = document.querySelector('script#swym-snippet[type="text"]'); 24789 if (inactiveScript) { 24790 inactiveScript.type = 'text/javascript'; 24791 new Function(inactiveScript.textContent)(); 24792 activeScript = inactiveScript; 24793 } 24794 } 24795 24796 cleanupDuplicateSnippetNodes(activeScript); 24797 cleanupDuplicateActivationGuards(); 24798 duplicateProneIds.forEach(removeDuplicateIdNodes); 24799 } 24800 24801 if (document.readyState === 'loading') { 24802 document.addEventListener('DOMContentLoaded', postDomLoad); 24803 } else { 24804 postDomLoad(); 24805 } 24806 })(); 24807</script>
24807 24808 24809 24810
24811<script> 24812 (function () { 24813 const themeSchemaName = window.Shopify.theme.schema_name; 24814 24815 if (!window.SwymCallbacks) { 24816 window.SwymCallbacks = []; 24817 } 24818 window.SwymCallbacks.push(swat => { 24819 if (!swat) { 24820 return; 24821 } 24822 24823 // Ghost-Intent: Sync local wishlist items to cloud when SDK loads after consent 24824 if (window.SwymLocalWishlist && window.SwymLocalWishlist.getSyncableItems().length > 0) { 24825 window.SwymLocalWishlist.syncToCloud(swat); 24826 } 24827 24828 if (window._SwymSDKOnlyMode) { 24829 return; 24830 } 24831 24832 // ENABLE COMMON FEATURES 24833 let swymEnabledCommonFeatures = window.SwymEnabledCommonFeatures; 24834 Object.keys(swymEnabledCommonFeatures).forEach(key => { 24835 if (!swymEnabledCommonFeatures[key]) return; 24836 24837 switch (key) { 24838 case 'add-to-wishlist-collections-button': 24839 // Check if app block is already handling the collections button 24840 if (window.SwymCollectionsConfig) { 24841 return; 24842 } 24843 24844 // Check if v2 default collections is handling it 24845 if (window.SwymAdvancedCollectionsWishlistConfig) { 24846 return; 24847 } 24848 24849 // Fallback to old v1 behavior if v2 config is not present 24850 swat?.collectionsApi?.setDefaultCustomizationOptions(); 24851 swat?.collectionsApi?.initializeCollections(swat, false, themeSchemaName); 24852 24853 break; 24854 case 'add-to-wishlist-pdp-button': 24855 // Check if app block is already handling the PDP button 24856 if (window.swymATWButtonConfig?.shopifyExtensionType === 'appblock') { 24857 return; 24858 } 24859 24860 if (!(window.SwymPageData && window.SwymPageData.et === 1)) { 24861 // Not initiating pdp button as it is not a product page 24862 return; 24863 } 24864 24865 // Inject addtowishlist.css into the document's <head> 24866 var head = document.head; 24867 var pdpButtonStylesheet = "https://cdn.shopify.com/extensions/01a0f142-9ec3-73a2-babd-8904a7e44cee/swym-relay-840/assets/addtowishlistbutton.css"; 24868 var pdpButtonStylesheetTag = document.createElement('link'); 24869 pdpButtonStylesheetTag.id = `swym-pdp-button-stylesheet`; 24870 pdpButtonStylesheetTag.rel = 'stylesheet'; 24871 pdpButtonStylesheetTag.href = pdpButtonStylesheet; 24872 24873 if (!document.getElementById('swym-pdp-button-stylesheet')) { 24874 head.appendChild(pdpButtonStylesheetTag); 24875 } 24876 24877 var x = document.getElementsByTagName('script')[0]; 24878 function createAndInsertScript(id, src, onLoadCallback) { 24879 var scriptTag = document.createElement('script'); 24880 scriptTag.id = id; 24881 scriptTag.type = 'text/javascript'; 24882 scriptTag.src = src; 24883 scriptTag.onload = onLoadCallback; 24884 x.parentNode.insertBefore(scriptTag, x); 24885 } 24886 24887 var pdpButtonScript = "https://cdn.shopify.com/extensions/01a0f142-9ec3-73a2-babd-8904a7e44cee/swym-relay-840/assets/addtowishlistbutton.js"; 24888 createAndInsertScript(`swym-pdp-button-script`, pdpButtonScript, function () { 24889 const pdpBtnApi = window.WishlistPlusPDPButtonAPI; 24890 if (pdpBtnApi) { 24891 pdpBtnApi.setDefaultCustomizationOptions(swat); 24892 pdpBtnApi.initializePDPButton(swat, true); 24893 } 24894 }); 24895 break; 24896 default: 24897 return; 24898 } 24899 }); 24900 }); 24901 })(); // IIFE to prevent polluting global scope 24902</script>
24902 24903 24904 24905
24906<script> 24907 (function () { 24908 // Get the settings from Shopify's Liquid variables and create the styles 24909 const isControlCentreEnabledFromMetafield = window?.SwymEnabledCommonFeatures?.["control-centre"]; 24910 const isCommonCustomizationEnabledFromMetafield = window?.SwymWishlistCommonCustomizationSettings && 24911 Object.keys(window.SwymWishlistCommonCustomizationSettings).length > 0; 24912 const isControlCentreEnabledFromBlockSettings = false; 24913 24914 if (!(isControlCentreEnabledFromMetafield && isCommonCustomizationEnabledFromMetafield) && !isControlCentreEnabledFromBlockSettings) { 24915 // Don't enable control centre if this is disabled and block settings are not enabled 24916 return; 24917 } 24918 24919 let borderRadius = 6; 24920 let drawerWidth = window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutDrawerWidth || 400; 24921 24922 // Check if block settings exist, use them, otherwise fall back to common settings 24923 let primaryBgColor = isControlCentreEnabledFromBlockSettings ? 24924 "#000000" : 24925 window.SwymWishlistCommonCustomizationSettings.primaryColor; 24926 24927 let primaryTextColor = isControlCentreEnabledFromBlockSettings ? 24928 "#ffffff" : 24929 window.SwymWishlistCommonCustomizationSettings.secondaryColor; 24930 24931 let secondaryBgColor = isControlCentreEnabledFromBlockSettings ? 24932 "#f4f8fe" : null; 24933 let secondaryTextColor = isControlCentreEnabledFromBlockSettings ? 24934 "#333333" : null; 24935 24936 // Only use color adjustment functions if we're using common settings 24937 if (!secondaryBgColor || !secondaryTextColor) { 24938 function adjustOpacity(color, opacity) { 24939 if (color[0] === '#') { 24940 color = color.slice(1); 24941 } 24942 24943 if (color.length === 3) { 24944 color = color.split('').map(char => char + char).join(''); 24945 } 24946 24947 const r = parseInt(color.slice(0, 2), 16); 24948 const g = parseInt(color.slice(2, 4), 16); 24949 const b = parseInt(color.slice(4, 6), 16); 24950 24951 return `rgba(${r}, ${g}, ${b}, ${opacity})`; 24952 } 24953 24954 function hexToRgb(color) { 24955 if (color[0] === '#') { 24956 color = color.slice(1); 24957 } 24958 if (color.length === 3) { 24959 color = color.split('').map(c => c + c).join(''); 24960 } 24961 24962 return { 24963 r: parseInt(color.slice(0, 2), 16), 24964 g: parseInt(color.slice(2, 4), 16), 24965 b: parseInt(color.slice(4, 6), 16) 24966 }; 24967 } 24968 24969 function getLuminance({ r, g, b }) { 24970 return 0.299 * r + 0.587 * g + 0.114 * b; 24971 } 24972 24973 function generateSecondaryColors(primaryBgColor, primaryTextColor) { 24974 const secondaryBgOpacity = 0.2; 24975 const secondaryTextOpacity = 0.8; 24976 24977 const secondaryBgColor = adjustOpacity(primaryBgColor, secondaryBgOpacity); 24978 24979 const bgRgb = hexToRgb(primaryBgColor); 24980 const bgLuminance = getLuminance(bgRgb); 24981 24982 // Determine whether to use dark or light text for contrast 24983 const lightText = adjustOpacity(primaryTextColor, secondaryTextOpacity); 24984 const darkText = adjustOpacity(primaryBgColor, secondaryTextOpacity); 24985 24986 const secondaryTextColor = bgLuminance > 186 ? darkText : lightText; 24987 24988 return { 24989 secondaryBgColor, 24990 secondaryTextColor 24991 }; 24992 } 24993 24994 const generatedColors = generateSecondaryColors(primaryBgColor, primaryTextColor); 24995 secondaryBgColor = secondaryBgColor || generatedColors.secondaryBgColor; 24996 secondaryTextColor = secondaryTextColor || generatedColors.secondaryTextColor; 24997 } 24998 24999 // Create the CSS rule 25000 let styles = ` 25001 .swym-storefront-layout-root-component { 25002 --swym-storefront-layout-ui-border-radius: ${borderRadius}px; 25003 --swym-storefront-layout-button-border-radius: ${borderRadius}px; 25004 --swym-storefront-layout-side-drawer-width: ${drawerWidth}px; 25005 --swym-storefront-layout-button-color-bg-primary: ${primaryBgColor}; 25006 --swym-storefront-layout-button-color-text-primary: ${primaryTextColor}; 25007 --swym-storefront-layout-button-color-bg-secondary: ${secondaryBgColor}; 25008 --swym-storefront-layout-button-color-text-secondary: ${secondaryTextColor}; 25009 } 25010 `; 25011 25012 // Create a <style> element and append the styles 25013 let styleSheet = document.createElement("style"); 25014 styleSheet.type = "text/css"; 25015 styleSheet.innerText = styles; 25016 document.head.appendChild(styleSheet); 25017 25018 if (typeof window.SwymStorefrontLayoutContext === 'undefined') { 25019 window.SwymStorefrontLayoutContext = {}; 25020 } 25021 if (typeof window.SwymStorefrontLayoutExtensions === 'undefined'){ 25022 window.SwymStorefrontLayoutExtensions = {}; 25023 } 25024 25025 // Expose block settings toggle state so ThemeCSSMapping can respect it. 25026 // When true, theme editor color pickers take priority over inherited theme CSS variables. 25027 SwymStorefrontLayoutContext.BlockSettingsEnabled = isControlCentreEnabledFromBlockSettings; 25028 25029 if (isControlCentreEnabledFromBlockSettings) { 25030 // If block settings are enabled, use them 25031 SwymStorefrontLayoutContext.Settings = { 25032 EnableStorefrontLayoutOnLauncher: true, 25033 EnableStorefrontLayoutNotification: window?.SwymWishlistCommonCustomizationSettings?.enableStorefrontLayoutNotification ?? true, 25034 StorefrontLayoutType: window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutType || "as-drawer", 25035 StorefrontLayoutDrawerPosition: "left", 25036 StorefrontLayoutAsSectionContainerId: "swym-wishlist-render-container", 25037 StorefrontLayoutAsSectionPageURL: "/pages/swym-wishlist", 25038 EnableStorefrontLayoutVariantSelector: true, 25039 StorefrontLayoutNotificationPosition: "left", 25040 StorefrontLayoutActionPopupPosition: "left", 25041 StorefrontLayoutNotificationDuration: 5000 25042 }; 25043 } else { 25044 // If only metafield is enabled but no block settings, use common settings 25045 SwymStorefrontLayoutContext.Settings = { 25046 EnableStorefrontLayoutOnLauncher: true, 25047 EnableStorefrontLayoutNotification: window?.SwymWishlistCommonCustomizationSettings?.enableStorefrontLayoutNotification ?? true, 25048 StorefrontLayoutType: window?.SwymWishlistCommonCustomizationSettings?.storefrontLayoutType || "as-drawer", 25049 StorefrontLayoutDrawerPosition: "left", 25050 StorefrontLayoutAsSectionContainerId: "swym-wishlist-render-container", 25051 StorefrontLayoutAsSectionPageURL: "/pages/swym-wishlist", 25052 EnableStorefrontLayoutVariantSelector: true, 25053 StorefrontLayoutNotificationPosition: "left", 25054 StorefrontLayoutActionPopupPosition: "left", 25055 StorefrontLayoutNotificationDuration: 5000 25056 }; 25057 } 25058 const storefrontLayoutCallback = (swat) =>{ 25059 SwymStorefrontLayoutContext.swat = swat; 25060 let isStoreOnPaidPlan = swat.getApp('Wishlist')?.['is-paid']; 25061 let isWishlistEnabled = swat.getApp('Wishlist')?.['enabled']; 25062 SwymStorefrontLayoutContext.Settings = { 25063 ...SwymStorefrontLayoutContext?.Settings, 25064 EnableStorefrontLayoutCollection: window?.SwymEnabledCommonFeatures?.["multiple-wishlist"] ?? false, 25065 EnableStorefrontLayout: isWishlistEnabled && (isControlCentreEnabledFromBlockSettings || isControlCentreEnabledFromMetafield), 25066 } 25067 25068 if(SwymStorefrontLayoutContext?.Settings?.EnableStorefrontLayout){ 25069 if(SwymStorefrontLayoutContext?.CustomEvents?.LayoutInitialized){ 25070 var event = new CustomEvent(SwymStorefrontLayoutContext.CustomEvents.LayoutInitialized, { 25071 detail: { settings: SwymStorefrontLayoutContext?.Settings } 25072 }); 25073 document.dispatchEvent(event); 25074 }else{ 25075 swat.utils.warn(`LayoutInitialized event is not defined.`); 25076 } 25077 }else{ 25078 swat.utils.warn(`Storefront Layout is disabled.`); 25079 document.getElementById("swym-storefront-layout-container")?.remove(); 25080 document.getElementById("swym-storefront-extention-render-container")?.remove(); 25081 } 25082 } 25083 25084 if (!window.SwymCallbacks) { 25085 window.SwymCallbacks = []; 25086 } 25087 window.SwymCallbacks.push(storefrontLayoutCallback); 25088 25089 SwymStorefrontLayoutContext.SwymCustomerData = { 25090 25091 name: null, 25092 email: null 25093 25094 };
25095 SwymStorefrontLayoutContext.isShopperLoggedIn = !!SwymStorefrontLayoutContext?.SwymCustomerData?.email; 25096 })(); 25097</script>
25097 25098 25099 25100 25101 25102</div><div id="shopify-block-AbEpqaklGb2U2U255a__10274264662263595587" class="shopify-block shopify-app-block">
25103<script> 25104 window.SwymCollectionsConfig = { 25105 'CollectionsSelectors': [], 25106 'CollectionsPosition': "top-right", 25107 'CollectionsIcon': "heart", 25108 'CollectionsButtonSize': 25, 25109 'CollectionsVerticalOffset': 0, 25110 'CollectionsHorizontalOffset': 0, 25111 'CollectionsProductLinkSelector': "-reviews", 25112 'CollectionsProductTileSelector': "-reviews", 25113 'CollectionsVariantSelector': "false", 25114 'CollectionsVariantSelectorChooseActionText': "Choose or Create new Wishlist", 25115 'CollectionsCreateListTitle': "Name Your Wishlist", 25116 'CollectionsCreateListPlaceholder': "Enter wishlist name", 25117 'CollectionsCustomIconAdd': "files/transparent-image.png", 25118 'CollectionsCustomIconAdded': "files/transparent-image.png", 25119 'CollectionsIconColor': "#000000", 25120 'CollectionsIconThickness': "1.7", 25121} 25122</script>
25122 25123<style> 25124 .swym-wishlist-collections-v2, .swym-wishlist-collections-v2 svg {border:unset; background:unset; min-width: 25px; height: 25px!important;} 25125 .swym-wishlist-collections-icon-heart-filled, .swym-wishlist-collections-icon-heart-unfilled, .swym-wishlist-collections-icon-star-filled, .swym-wishlist-collections-icon-star-unfilled, .swym-wishlist-collections-icon-bookmark-unfilled, .swym-wishlist-collections-icon-bookmark-filled {fill: #000000;} 25126 .swym-wishlist-collections-v2 .swym-collections-social-count {color: #000000;} 25127</style> 25128 25129 25130
25131<script> 25132 // Send heartbeat for collections button 25133 (function() { 25134 let collectionsButtonHeartbeatData = '{"143690334255":"2025-04-10T20:23:38.772Z","143791980591":"2025-04-25T20:21:32.912Z","143126822959":"2025-04-04T15:02:16.174Z","144159309871":"2025-05-06T15:47:36.469Z","144326492207":"2025-05-14T01:42:46.341Z","143894511663":"2025-04-17T20:14:26.430Z","144210460719":"2025-05-14T22:01:24.327Z","144142368815":"2025-05-06T15:47:38.130Z","144191324207":"2025-05-07T19:48:48.469Z","144091447343":"2025-05-07T23:12:00.066Z","142681571375":"2025-11-24T20:27:26.004Z","143423963183":"2025-03-31T15:00:21.359Z","143512600623":"2025-04-03T15:14:27.824Z","143960604719":"2025-05-07T23:12:00.707Z","143649734703":"2025-04-08T13:55:02.598Z","143459123247":"2025-04-01T18:06:14.648Z","143983509551":"2025-05-07T23:12:02.021Z","143417344047":"2025-04-01T15:23:40.293Z","144026173487":"2025-05-06T15:47:37.027Z","143422193711":"2025-04-09T13:37:41.752Z","144022929455":"2025-05-06T15:47:35.812Z","143724183599":"2025-04-27T07:10:18.728Z","143461810223":"2025-04-07T14:33:15.763Z","143063744559":"2025-03-19T19:18:50.986Z","143773532207":"2025-04-15T18:11:14.972Z","143038775343":"2025-03-19T13:42:42.922Z","143430254639":"2025-03-31T20:16:59.663Z","143865610287":"2025-04-21T13:06:29.527Z","143888252975":"2025-04-17T14:14:03.276Z","144053600303":"2025-05-04T19:53:30.752Z","editor":"2025-05-14T21:47:47.004Z","144025845807":"2025-04-29T13:56:31.956Z","143977840687":"2025-04-21T15:17:53.039Z","143767306287":"2025-04-12T13:35:55.875Z","143350792239":"2025-03-28T14:36:59.883Z","143626764335":"2025-04-07T18:31:21.117Z","144046030895":"2025-05-07T23:12:03.053Z","143468986415":"2025-04-02T02:04:34.006Z","143539634223":"2025-04-04T15:22:15.328Z","143752003631":"2025-04-11T21:43:42.674Z","144160489519":"2025-05-07T20:48:07.182Z","144163405871":"2025-05-07T23:11:57.280Z","144022011951":"2025-04-29T13:51:03.796Z","144135749679":"2025-05-06T16:15:20.487Z","143380283439":"2025-03-29T18:38:07.892Z","144353919023":"2025-05-14T01:42:45.120Z","144052944943":"2025-05-07T23:11:58.790Z","143039594543":"2025-04-10T20:29:06.359Z","143720841263":"2025-04-10T19:24:11.361Z","143839166511":"2025-04-15T13:50:48.458Z","143257600047":"2025-03-25T10:44:49.993Z","143750365231":"2025-04-11T20:19:44.097Z","143894052911":"2025-04-17T19:40:48.812Z","143983476783":"2025-05-07T23:12:01.478Z","143496151087":"2025-04-03T00:01:08.244Z","144461070383":"2025-05-14T01:09:50.193Z","144099016751":"2025-05-08T17:03:57.311Z","143599829039":"2025-04-06T20:50:32.339Z","144168255535":"2025-05-12T15:32:52.785Z","143743713327":"2025-04-11T15:47:34.086Z"}'; 25135 try { 25136 collectionsButtonHeartbeatData = JSON.parse(collectionsButtonHeartbeatData) || {}; 25137 } catch (e) { 25138 collectionsButtonHeartbeatData = {}; 25139 } 25140 const ShopifyTheme = window.Shopify.theme; 25141 const themeId = ShopifyTheme.id; 25142 let heartbeatMetadata = { 25143 schema_name: ShopifyTheme?.schema_name, 25144 schema_version: ShopifyTheme?.schema_version, 25145 theme_store_id: ShopifyTheme?.theme_store_id, 25146 role: ShopifyTheme?.role 25147 }; 25148 25149 const isDesignMode = !!window.swymDesignMode; 25150 25151 if (!window.SwymCallbacks) { 25152 window.SwymCallbacks = []; 25153 } 25154 window.SwymCallbacks.push((swat) => { 25155 if (!swat || !themeId) { 25156 return; 25157 } 25158 const triggerHeartbeat = swat?.ExtensionHealth?.triggerExtensionHeartbeat; 25159 if (typeof triggerHeartbeat !== "function") return; 25160 25161 const lastHeartbeat = isDesignMode ? collectionsButtonHeartbeatData?.editor : collectionsButtonHeartbeatData?.[themeId]; 25162 const themeContext = isDesignMode ? 'editor' : themeId; 25163 25164 const extensionData = { 25165 extensionName: "add-to-wishlist-collections-button", 25166 extensionType: "app-embed", 25167 metadata: heartbeatMetadata, 25168 themeId: themeContext, 25169 extensionSource: "default" 25170 }; 25171 25172 /** Stop heartbeat 25173 triggerHeartbeat(extensionData, lastHeartbeat); 25174 */ 25175 }); 25176 })(); // IIFE to prevent polluting global scope 25177</script>
25177 25178 25179 25180<style> 25181 .swym-advanced-wishlist-collections-container { 25182 display: none; 25183 } 25184</style> 25185</div>
25185<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
25185 25186</body> 25187</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.