1<!DOCTYPE html> 2<html lang="en" dir="ltr" id="page" > 3 <head> 4 <meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1.0"> 6<meta name="csrf-token" content="EOGmO5PK4jrvyWRFzgdnYRSJRkfmHNs7RJfNiIdK"> 7<meta name="robots" content="all"/> 8<meta name="description" content="Universal Rocks is proud to be the industry's leading maker of high quality lightweight rocks, aquarium accessories, rock spa hot tubs, water features and more!"/> 9<link rel="canonical" href="https://universalrocks.com/search"/> 10 11 12 <meta property="og:title" content="Search | Universal Rocks"> 13 <meta property="og:description" content="Universal Rocks is proud to be the industry's leading maker of high quality lightweight rocks, aquarium accessories, rock spa hot tubs, water features and more!"> 14 <meta property="og:url" content="https://universalrocks.com/search"> 15 <meta property="og:updated_time" content="2026-03-02T15:48:08.000000Z"/> 16<meta property="og:type" content="website"> 17 18 19 <link rel="apple-touch-icon" sizes="180x180" href="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/universal-rock-apple-icon.png"> 20 21 22 <link rel="icon" type="image/png" sizes="32x32" href="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/favicon.png"> 23<!-- Google Tag Manager --> 24
24<script>
vendor: 534 bytes, lines 24-36
24(function (w, d, s, l, i) { 25 w[l] = w[l] || []; 26 w[l].push({ 27 'gtm.start': 28 new Date().getTime(), event: 'gtm.js' 29 }); 30 var f = d.getElementsByTagName(s)[0], 31 j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; 32 j.async = true; 33 j.src = 34 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 35 f.parentNode.insertBefore(j, f); 36 })(window, document, 'script', 'dataLayer', '
36GTM-WD48WHJ
vendor: 3 bytes, line 36
36');
36</script>
36 37 <!-- End Google Tag Manager --> 38 39 40 <!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 40-41
40 41<script async src="https://www.googletagmanager.com/gtag/js?id=
41G-FTLNHETF65
vendor: 12 bytes, line 41
41"></script>
42<script> 43
vendor: 134 bytes, lines 43-47
43window.dataLayer = window.dataLayer || []; 44 function gtag(){dataLayer.push(arguments);} 45 gtag('js', new Date()); 46 47 gtag('config', '
47G-FTLNHETF65
vendor: 4 bytes, line 47
47');
48</script>
48 49 50
50<script> 51 (function () { 52 function storeAnalyticsSessionData(clientId, sessionId) { 53 fetch("https:\/\/universalrocks.com\/analytics\/session", { 54 method: 'POST', 55 headers: { 56 'Content-Type': 'application/json', 57 'X-CSRF-TOKEN': "EOGmO5PK4jrvyWRFzgdnYRSJRkfmHNs7RJfNiIdK", 58 'Accept': 'application/json', 59 }, 60 body: JSON.stringify({ 61 client_id: clientId, 62 session_id: sessionId, 63 }), 64 }); 65 } 66 67 function readGtagValues() { 68 if (typeof window.gtag !== 'function') { 69 return; 70 } 71 72 if (typeof window.gaSessionStored === 'boolean' && window.gaSessionStored) { 73 return; 74 } 75 76 const measurementId = Object.keys(window.google_tag_manager || []).filter(e => { return e.substring(0,2) == 'G-' })[0]; 77 78 if (measurementId) { 79 window.gtag('get', measurementId, 'client_id', function (clientId) { 80 window.gtag('get', measurementId, 'session_id', function (sessionId) { 81 if (clientId || sessionId) { 82 storeAnalyticsSessionData((clientId).toString(), (sessionId).toString()); 83 window.gaSessionStored = true; 84 } 85 }); 86 }); 87 } 88 } 89 90 if (document.readyState === 'loading') { 91 document.addEventListener('DOMContentLoaded', readGtagValues); 92 } else { 93 readGtagValues(); 94 } 95 96 setTimeout(readGtagValues, 1500); 97 })(); 98 </script>
98 99 100<title>Search | Universal Rocks</title> 101 102 103
104<script> 105 (function (w, d, s, u) { 106 if (w.oaiq) return; 107 var q = function () { 108 q.q.push(arguments); 109 }; 110 q.q = []; 111 w.oaiq = q; 112 var js = d.createElement(s); 113 js.async = true; 114 js.src = u; 115 var f = d.getElementsByTagName(s)[0]; 116 f.parentNode.insertBefore(js, f); 117 })(window, document, "script", "https://bzrcdn.openai.com/sdk/oaiq.min.js"); 118 119 oaiq("init", { 120 pixelId: "DjcKRwz3pggsbvWKafV33Y", 121 }); 122</script>
122 123 124<link rel="preconnect" href="https://media.cmsmax.cloud" crossorigin> 125 <link rel="preconnect" href="https://cdn.cmsmax.cloud/production" crossorigin> 126<style >/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa133vkmmy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 100; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa133vkmoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 200; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa113vammy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 200; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa113vamoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa12pvammy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 300; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa12pvamoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa133vammy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa133vamoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa13fvammy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
126BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa13fvamoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa10puqmmy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa10puqmoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa10quqmmy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa10quqmoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa113uqmmy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa113uqmoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa11euqmmy8axlps0aiyueg.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xtdf02ifml4hgcymqgdynef6or5l2wa11euqmoy8axlps0aiy.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdyx8vh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
126BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 100; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdyx8vezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 200; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdsx4vh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 200; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdsx4vezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdlr4vh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 300; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdlr4vezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdyx4vh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdyx4vezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqd-r4vh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqd-r4vezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdfrkvh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
126BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdfrkvezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdlbkvh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdlbkvezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdsxkvh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdsxkvezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdyhkvh5msacg1kry2ciu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Urbanist'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/1a337ebd35/surbanistv18l0xjdf02ifml4hgcyocprdycfsgxsrqdyhkvezmsacg1kry2.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> 127 <style >/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-qitxt-a-3-ue0q0ejdo.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-qitxtha-3-ue0q0ea.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-pqtxt-a-3-ue0q0ejdo.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
127BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-pqtxtha-3-ue0q0ea.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-nauxt-a-3-ue0q0ejdo.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-nauxtha-3-ue0q0ea.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-k-uxt-a-3-ue0q0ejdo.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-k-uxtha-3-ue0q0ea.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-iiuxt-a-3-ue0q0ejdo.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-iiuxtha-3-ue0q0ea.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-gguxt-a-3-ue0q0ejdo.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: italic; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufrd-vyszvivyub-rj3ij-anpxdtncjmhkm4nyo7kn-gguxtha-3-ue0q0ea.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkdfvxdzbtxk-f2qo0isew.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
127BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkdfvxdxbtxk-f2qo0g.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkd3vxdzbtxk-f2qo0isew.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 500; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkd3vxdxbtxk-f2qo0g.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkebundzbtxk-f2qo0isew.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkebundxbtxk-f2qo0g.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkeiundzbtxk-f2qo0isew.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 700; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkeiundxbtxk-f2qo0g.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkffundzbtxk-f2qo0isew.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 800; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkffundxbtxk-f2qo0g.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkfsundzbtxk-f2qo0isew.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
127BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 900; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/a3666b4aeb/splayfairdisplayv40nufvd-vyszvivyub-rj3ij-anpxjzdwcbmjwbn2pkfsundxbtxk-f2qo0g.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> 128 <style >/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 300; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk5hkwv4exomudjfnmiu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 300; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk5hkwvaexomudjfnmg.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 400; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk8zkwv4exomudjfnmiu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 400; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk8zkwvaexomudjfnmg.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 500; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk-rkwv4exomudjfnmiu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 500; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk-rkwvaexomudjfnmg.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 600; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rkxhjwv4exomudjfnmiu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 600; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rkxhjwvaexomudjfnmg.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 700; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rkyfjwv4exomudjfnmiu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
128BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 700; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rkyfjwvaexomudjfnmg.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 800; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk0zjwv4exomudjfnmiu.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: italic; font-weight: 800; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memqyags126mizpba-ufuicvxscekx2cmqvxlwq8twz0pw86hd0rk0zjwvaexomudjfnmg.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsih0b4uavquwaeqxjn-mq.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 300; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsih0b4gavquwaeqxjm.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsjz0b4uavquwaeqxjn-mq.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsjz0b4gavquwaeqxjm.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 500; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsjr0b4uavquwaeqxjn-mq.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 500; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvn
128xbbobj2ovzyoosr4dvjwugsjr0b4gavquwaeqxjm.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 600; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsgh1x4uavquwaeqxjn-mq.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 600; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsgh1x4gavquwaeqxjm.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsg-1x4uavquwaeqxjn-mq.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 700; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugsg-1x4gavquwaeqxjm.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}/* latin-ext */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 800; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugshz1x4uavquwaeqxjn-mq.woff) format('woff'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}/* latin */@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 800; font-stretch: normal; font-display: swap; src: url(https://media.cmsmax.cloud/fonts/094549b9e1/sopensansv44memsyags126mizpba-uvwbx2vvnxbbobj2ovzyoosr4dvjwugshz1x4gavquwaeqxjm.woff) format('woff'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> 129 130 <style> 131 :root { 132 --primary-font: 'Urbanist', sans-serif; 133 --secondary-font: 'Urbanist', sans-serif; 134 --parent-menu-font: 'Urbanist', sans-serif; 135 --child-menu-font: 'Urbanist', sans-serif; 136 } 137 138 h1, h2, h3, h4, h5, h6 { 139 font-family: var(--primary-font); 140 } 141 142 body { 143 font-family: var(--secondary-font); 144 } 145 146 /* Parent/Top-level menu items (depth 0) */ 147 .menu-item-top-link, 148 .menu-simple-link { 149 font-family: var(--parent-menu-font); 150 } 151 152 /* Child/Nested menu items (depth > 0) */ 153 .menu-submenu-link, 154 .menu-submenu-placeholder-span, 155 .menu-nested-link { 156 font-family: var(--child-menu-font); 157 } 158 </style> 159 160<style> 161 [x-cloak] { 162 display: none !important; 163 } 164</style> 165 166 167<style>@layer properties, theme, base, filaforms, components, utilities, theme-overrides;</style> 168 169 170 171<!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.list-item][wire\:loading\.list-item], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak="x-cloak"],[x-cloak=""] {display: none !important;}[wire\:cloak="wire:cloak"],[wire\:cloak=""] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style> 172 173 174 175 176 <link rel="stylesheet" type="text/css" id="css-engine-theme" href="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/css/theme-a7708918.css"> 177 178 179 <link rel="stylesheet" type="text/css" id="css-engine-tenant" href="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/css/tenant-32fae8cd.css"> 180 181 182 183 184 <link rel="stylesheet" type="text/css" id="css-engine-page" href="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/css/page-24-a6f18205.css"> 185 186 187 188<style></style> 189 190
190<script src="https://js.adsrvr.org/up_loader.1.1.0.js" type="text/javascript"></script>
190 191 192
192<script type="text/javascript"> 193 194 ttd_dom_ready( function() { 195 196 if (typeof TTDUniversalPixelApi === 'function') { 197 198 var universalPixelApi = new TTDUniversalPixelApi(); 199 200 universalPixelApi.init("5wx0bqa", ["gfmajoc"], "https://insight.adsrvr.org/track/up"); 201 202 } 203 204 }); 205 206 </script>
206 207 208<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@glidejs/glide/dist/css/glide.core.min.css"> 209 210<link href="https://fonts.googleapis.com/css2?family=Baskervville:ital,wght@0,400..700;1,400..700&display=swap" rel="stylesheet"> 211 212 </head> 213 <body> 214 <!-- Google Tag Manager (noscript) --> 215 <noscript> 216 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WD48WHJ" 217 title="Google Tag Manager" 218 height="0" width="0" style="display:none;visibility:hidden"></iframe> 219 </noscript> 220 <!-- End Google Tag Manager (noscript) --> 221<style id="cookie-consent-fallback-css"> 222 @layer cookie-consent-fallback{ 223 @media (min-width:640px){ 224 .cookie-consent-actions{flex-direction:row;width:auto} 225 .cookie-consent-content .sm\:flex-row{flex-direction:row} 226 .cookie-consent-content .sm\:items-center{align-items:center} 227 .cookie-consent-content .sm\:justify-between{justify-content:space-between} 228 .cookie-consent-content .sm\:w-auto{width:auto} 229 } 230 } 231 </style> 232 233 <div class="js-cookie-consent cookie-consent-banner" data-nosnippet> 234 <div class="cookie-consent-content"> 235<section class="text-gray-600 w-full flex flex-col sm:flex-row sm:items-center sm:justify-between gap-5"> 236<p class="flex-1 min-w-0 m-0">Our website uses cookies. By continuing to use our site, you agree to our use of cookies in accordance with our <a href="/privacy">Privacy Policy</a>.</p> 237<div class="flex shrink-0 gap-3 w-full sm:w-auto flex-col sm:flex-row"><button type="button" class="js-cookie-consent-agree cookie-consent-agree w-full sm:w-auto bg-stone-900 text-white px-3 py-2 rounded-lg">Allow cookies</button> <button type="button" class="js-cookie-consent-decline w-full sm:w-auto px-3 py-2 text-stone-900 border border-stone-300 rounded-lg">Decline</button></div> 238</section></div> 239</div> 240 241
241<script> 242 243 window.laravelCookieConsent = (function () { 244 245 const COOKIE_VALUE = 1; 246 const COOKIE_REJECTED_VALUE = 0; 247 const COOKIE_DOMAIN = 'universalrocks.com'; 248 249 function consentWithCookies() { 250 setCookie('laravel_cookie_consent', COOKIE_VALUE, 7300); 251 updateGoogleConsent('granted'); 252 hideCookieDialog(); 253 } 254 255 function rejectCookies() { 256 setCookie('laravel_cookie_consent', COOKIE_REJECTED_VALUE, 7300); 257 updateGoogleConsent('denied'); 258 hideCookieDialog(); 259 } 260 261 function cookieExists(name) { 262 return document.cookie.split('; ').some(c => 263 c === name + '=' + COOKIE_VALUE || c === name + '=' + COOKIE_REJECTED_VALUE 264 ); 265 } 266 267 function hideCookieDialog() { 268 const dialogs = document.getElementsByClassName('js-cookie-consent'); 269 270 for (let i = 0; i < dialogs.length; ++i) { 271 dialogs[i].style.display = 'none'; 272 } 273 } 274 275 function setCookie(name, value, expirationInDays) { 276 const date = new Date(); 277 date.setTime(date.getTime() + (expirationInDays * 24 * 60 * 60 * 1000)); 278 document.cookie = name + '=' + value 279 + ';expires=' + date.toUTCString() 280 + ';domain=' + COOKIE_DOMAIN 281 + ';path=/' 282 + ';samesite=lax'; 283 } 284 285 function updateGoogleConsent(value) { 286 window.dataLayer = window.dataLayer || []; 287 window.gtag = window.gtag || function () { 288 window.dataLayer.push(arguments); 289 }; 290 291 window.gtag('consent', 'update', { 292 ad_storage: value, 293 analytics_storage: value, 294 ad_user_data: value, 295 ad_personalization: value, 296 }); 297 } 298 299 if (cookieExists('laravel_cookie_consent')) { 300 hideCookieDialog(); 301 } 302 303 const buttons = document.getElementsByClassName('js-cookie-consent-agree'); 304 305 for (let i = 0; i < buttons.length; ++i) { 306 buttons[i].addEventListener('click', consentWithCookies); 307 } 308 309 const declineButtons = document.getElementsByClassName('js-cookie-consent-decline'); 310 311 for (let i = 0; i < declineButtons.length; ++i) { 312 declineButtons[i].addEventListener('click', rejectCookies); 313 } 314 315 return { 316 consentWithCookies: consentWithCookies, 317 rejectCookies: rejectCookies, 318 hideCookieDialog: hideCookieDialog 319 }; 320 })(); 321 322 window.acceptCookies = function () { 323 window.laravelCookieConsent.consentWithCookies(); 324 }; 325 326 window.rejectCookies = function () { 327 window.laravelCookieConsent.rejectCookies(); 328 }; 329 </script>
329 330 331<div class="promo-bar-wrapper" 332 style="background-color: #456679;" 333 > 334 <div class="promo-bar-inner"> 335 336<div id="stickyBanner" class="w-full p-4 text-center"> 337<div id="carousel-2026100501" data-widget="Carousel" data-framework="tailwind4" class="carousel w-full" data-wrap="true" data-ride="carousel" data-interval="5000" data-pause="hover" data-animation="crossfade"> 338<div class="carousel-item w-full block"> 339<h4 class="text-white m-0">The Crawler Sale is live! Get 10% off all crawler items with code CRST10. Sale ends Friday!<a href="/crawler-course" target="_blank" rel="noopener" class="ml-3 inline-block px-3 py-2 text-base font-medium bg-[#292929] text-white hover:bg-secondary focus:bg-secondary transition-colors duration-300"> Shop Now </a></h4> 340</div> 341<div class="carousel-item w-full hidden"> 342<h4 class="text-white m-0">New! The Collectable Crawler Collection: 11 new obstacles to build your course.<a href="/crawler-course" target="_blank" rel="noopener" class="ml-3 inline-block px-3 py-2 text-base font-medium bg-[#292929] text-white hover:bg-secondary focus:bg-secondary transition-colors duration-300"> Shop the Collection </a></h4> 343</div> 344<div class="carousel-item w-full hidden"> 345<h4 class="text-white m-0">Free Shipping on Everything!<a href="/crawler-course" target="_blank" rel="noopener" class="ml-3 inline-block px-3 py-2 text-base font-medium bg-[#292929] text-white hover:bg-secondary focus:bg-secondary transition-colors duration-300"> Shop Now </a></h4> 346</div> 347</div> 348</div> 349 </div> 350 351 </div> 352 353 <main class="page-wrapper "> 354 <div class="header-wrapper sticky top-0"> 355 <div class="w-full z-50"> 356<header class="header bg-white transition-colors duration-200 lg:sticky top-0 z-[49]" style="box-shadow: rgba(33, 35, 38, 0.1) 0px 10px 10px -10px;"> 357<div class="max-w-full px-4"><!-- Top bar --> 358<div class="hidden lg:flex items-center justify-between border-b border-[#858b8d]/30 py-[15px]"> 359<div class="flex items-center"><a href="/" class="inline-block"> <img alt="universal rocks logo" src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-logo-1line-black.png 1920w" sizes="100vw" width="330" height="47" class="w-[200px] xl:w-[300px]"> </a></div> 360<div class="flex items-center justify-end flex-wrap xl:flex-nowrap -mx-2"> 361<div class="flex justify-end w-full xl:w-auto mb-2 xl:mb-0"><a href="https://www.naturalrockspas.com/" target="_blank" rel="noopener" class="mx-2 text-[14px] xl:text-[16px] font-light text-[#292929] ">NATURAL SPAS</a> <a href="https://earthdomes.com/" target="_blank" rel="noopener" class="mx-2 text-[14px] xl:text-[16px] font-light text-[#292929]">EARTH DOMES</a></div> 362<div class="mx-[20px]"><span class="cms-widget"><div class="flex max-w-md mx-auto"> 363 364 <form action="/search" method="GET" class="hidden lg:flex w-full"> 365 <input 366 type="search" 367 placeholder="Search" 368 aria-label="Search" 369 name="q" 370 class="search-bar " 371 > 372 <button 373 type="submit" 374 aria-label="Submit Search" 375 class="search-submit " 376 > 377 <svg class="search-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg> 378 </button> 379 </form> 380 381 382 <a href="/search" 383 aria-label="Search" 384 class="search-btn flex lg:hidden"> 385 <svg class="search-icon" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg> 386 </a> 387 </div> 388</span></div> 389<span> <a href="https://checkout.cmsmax.cloud"> <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 400w, https://cdn.cmsmax.cloud/production/width=600,qual
389ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/icon-customer-black.png 1920w" sizes="100vw" width="77" height="106" alt="" class="w-[16px] mx-3"> </a> </span> <span class="cms-widget"><div wire:key="lw-3250490340-0-ecom-active-filters-container-0-4" wire:snapshot="{"data":{"itemCount":0,"subtotal":"$0.00","showCount":true,"iconSize":"w-6 h-6","iconStyle":"bag","buttonStyle":"default","customClass":"","cartUrl":"\/cart","isProductPage":false},"memo":{"id":"yKYlsmdwTI8elIPU3Rj3","name":"CartIcon","path":"search","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"errors":[],"locale":"en","islands":[]},"checksum":"02b946b3d07a063ec957fe5b2e0975d13a935d0ecb310a47a5916efe15c57319"}" wire:effects="{"partials":[],"listeners":["cart-updated"]}" wire:id="yKYlsmdwTI8elIPU3Rj3" wire:name="CartIcon" class="relative text-inherit "> 390 <a 391 href="/cart" 392 class="cart-button" 393 aria-label="Shopping cart" 394 > 395 396 <svg class="w-6 h-6" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 256 256" aria-hidden="true"><path d="M216 40H40a16 16 0 0 0-16 16v144a16 16 0 0 0 16 16h176a16 16 0 0 0 16-16V56a16 16 0 0 0-16-16m0 16v16H40V56Zm0 144H40V88h176zm-40-88a48 48 0 0 1-96 0 8 8 0 0 1 16 0 32 32 0 0 0 64 0 8 8 0 0 1 16 0"/></svg> 397 398 </a> 399 </div> 400</span></div> 401</div> 402<!-- Main nav --> 403<div class="lg:flex items-center justify-center py-[15px]"><span class="cms-widget" data-shortcode-id="shortcode-1775762556976-kqucenyz7"><div x-data="{ 404 mobileMenuOpen: false, 405 searchOpen: false, 406 toggleMobileMenu() { 407 this.mobileMenuOpen = !this.mobileMenuOpen; 408 }, 409 toggleSearch() { 410 this.searchOpen = !this.searchOpen; 411 } 412}" x-init="$watch('searchOpen', value => { if (value) { $nextTick(() => $refs.searchInput?.focus()) } })"> 413 <div class="mobile-nav lg:hidden"> 414 415 <div class="bar"> 416 417 <a class="logo-container" href="/" aria-label="Universal Rocks - Home"> 418 <img src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/ur-logo-black-horizontal-h150px.png" 419 alt="Universal Rocks" 420 width="200" 421 height="66.666666666667" 422 class=""> 423 </a> 424 425 426 <div class="icons"> 427 428 <button @click="toggleSearch()" type="button" :aria-expanded="searchOpen" 429 aria-controls="searchDropdown" aria-label="Search" 430 class="icon-btn search-dropdown-btn" :class="searchOpen ? 'opacity-70' : ''"> 431 <svg class="icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m21 21-4.34-4.34"/><circle cx="11" cy="11" r="8"/></svg> 432 </button> 433 434 435 436 437 <div wire:key="lw-658402486-0-ecom-active-filters-container-0-4" wire:snapsh
437ot="{"data":{"itemCount":0,"subtotal":"$0.00","showCount":true,"iconSize":"w-6 h-6","iconStyle":"cart","buttonStyle":"default","customClass":"","cartUrl":"cart","isProductPage":false},"memo":{"id":"keg31FIxUwcxlAp39Y3q","name":"CartIcon","path":"search","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"errors":[],"locale":"en","islands":[]},"checksum":"a7c85a49f2f67f24efb9c4db630cdd4f601034d986491307fd827924e33e73ca"}" wire:effects="{"partials":[],"listeners":["cart-updated"]}" wire:id="keg31FIxUwcxlAp39Y3q" wire:name="CartIcon" class="relative text-inherit "> 438 <a 439 href="cart" 440 class="cart-button" 441 aria-label="Shopping cart" 442 > 443 444 <svg class="w-6 h-6" xmlns="http://www.w3.org/2000/svg" stroke="currentColor" fill="none" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path></svg> 445 446 </a> 447 </div> 448 </div> 449 450 451 <button @click="toggleMobileMenu()" type="button" :aria-expanded="mobileMenuOpen" 452 aria-controls="mobile-nav-bar" aria-label="Toggle navigation" 453 class="hamburger-btn"> 454 <span class="sr-only">Toggle navigation</span> 455 456 <div class="hamburger-container"> 457 <span class="hamburger-line top" 458 :class="mobileMenuOpen ? 'opacity-0 -translate-y-1/2 top-1/2' : 'opacity-100'"></span> 459 <span class="hamburger-line middle" 460 :class="mobileMenuOpen ? '-rotate-45' : ''"></span> 461 <span class="hamburger-line middle" 462 :class="mobileMenuOpen ? 'rotate-45 ' : ''"></span> 463 <span class="hamburger-line bottom" 464 :class="mobileMenuOpen ? 'opacity-0 -translate-y-1/2 top-1/2' : 'opacity-100'"></span> 465 </div> 466 </button> 467 </div> 468 469 470 <div x-show="searchOpen" x-transition:enter="transition ease-out duration-200" 471 x-transition:enter-start="opacity-0 -translate-y-2" x-transition:enter-end="opacity-100 translate-y-0" 472 x-transition:leave="transition ease-in duration-150" 473 x-transition:leave-start="opacity-100 translate-y-0" x-transition:leave-end="opacity-0 -translate-y-2" 474 id="searchDropdown" class="search-dropdown" 475 @click.away="searchOpen = false"> 476 <form action="/search" method="GET" class="w-full"> 477 <div class="search-input-container"> 478 <input type="search" name="q" 479 placeholder="Search..." 480 aria-label="Search" 481 autocomplete="off" 482 class="search-input" 483 x-ref="searchInput"> 484 <div class="search-icon-container"> 485 <svg class="search-icon" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true"> 486 <path 487 d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/> 488 </svg> 489 </div> 490 </div> 491 </form> 492 </div> 493 494 <div x-cloak 495 x-show="mobileMenuOpen" x-transition:enter="transition ease-out duration-300" 496 x-transition:enter-start="opacity-0 -translate-y-4" x-transition:enter-end="opacity-100 translate-y-0" 497 x-transition:leave="transition ease-in duration-200" x-transition:leave-start="opacity-100 translate-y-0" 498 x-transition:leave-end="opacity-0 -translate-y-4" id="mobile-nav-bar" 499 class="menu-dropdown" @click.away="mobileMenuOpen = false"> 500 <nav class="menu-nav"> 501 <ul class="menu-tree-list space-y-1" 502 x-data="{ 503 openItems: {}, 504 toggleItem(key) { 505 this.openItems[key] = !this.openItems[key]; 506 } 507 }" 508 > 509 <li class="menu-tree-item"> 510 <div> 511 512 <div class="menu-tree-level1-btn menu-tree-row"> 513 <a href="/crawler-course" 514 class="menu-tree-parent-link menu-tree-level1-title"> 515 Crawler Course 516 </a> 517 <button type="button" 518 @click="toggleItem('item-3964')" 519 :aria-expanded="openItems['item-3964'] ? 'true' : 'false'" 520 class="menu-tree-toggle-btn">
521 <span class="sr-only">Toggle Crawler Course submenu</span> 522 <svg xmlns="http://www.w3.org/2000/svg" 523 class="menu-tree-level1-icon" 524 :class="{ 'rotate-180': openItems['item-3964'] }" 525 aria-hidden="true" 526 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 527 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 528 </svg> 529 </button> 530 </div> 531 532 533 <div x-cloak 534 x-show="openItems['item-3964']" 535 x-collapse.duration.200ms 536 class="menu-tree-level1-submenu"> 537 <ul class="menu-tree-level1-list"> 538 <li class="menu-tree-item"> 539 540 <a href="/crawler-course" 541 class="menu-tree-link-level2"> 542 Crawler Course 543 </a> 544 </li> 545 <li class="menu-tree-item"> 546 547 <a href="/crawler-course/crawler-accessories" 548 class="menu-tree-link-level2"> 549 RC Crawler Accessories 550 </a> 551 </li> 552 </ul> 553 </div> 554 </div> 555 </li> 556 <li class="menu-tree-item"> 557 <div> 558 559 <button type="button" 560 @click="toggleItem('item-3967')" 561 :aria-expanded="openItems['item-3967'] ? 'true' : 'false'" 562 class="menu-tree-level1-btn"> 563 <span class="menu-tree-level1-title">Shop by Pet</span> 564 <svg xmlns="http://www.w3.org/2000/svg" 565 class="menu-tree-level1-icon" 566 :class="{ 'rotate-180': openItems['item-3967'] }" 567 aria-hidden="true" 568 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 569 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 570 </svg> 571 </button> 572 573 574 <div x-cloak 575 x-show="openItems['item-3967']" 576 x-collapse.duration.200ms 577 class="menu-tree-level1-submenu"> 578 <ul class="menu-tree-level1-list"> 579 <li class="menu-tree-item"> 580 <div> 581 582 <div class="menu-tree-level2-btn menu-tree-row"> 583 <a href="/fish" 584 class="menu-tree-parent-link menu-tree-level2-title"> 585 Fish 586 </a> 587 <button type="button" 588 @click="toggleItem('item-3968')" 589 :aria-expanded="openItems['item-3968'] ? 'true' : 'false'" 590 class="menu-tree-toggle-btn"> 591 <span class="sr-only">Toggle Fish submenu</span> 592 <svg xmlns="http://www.w3.org/2000/svg" 593 class="menu-tree-level2-icon" 594 :class="{ 'rotate-180': openItems['item-3968'] }" 595 aria-hidden="true" 596 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 597 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 598 </svg> 599 </button> 600 </div> 601 602 603 <div x-cloak 604 x-show="openItems['item-3968']" 605 x-collapse.duration.200ms 606 class="menu-tree-level2-submenu"> 607 <ul class="menu-tree-level2-list"> 608 <li class="menu-tree-item"> 609 610 <a href="/fish/backgrounds" 611 class="menu-tree-link-level3">
612 Backgrounds 613 </a> 614 </li> 615 <li class="menu-tree-item"> 616 617 <a href="/fish/rocks" 618 class="menu-tree-link-level3"> 619 Rocks 620 </a> 621 </li> 622 <li class="menu-tree-item"> 623 624 <a href="/fish/tree" 625 class="menu-tree-link-level3"> 626 Tree Products 627 </a> 628 </li> 629 <li class="menu-tree-item"> 630 631 <a href="/fish/heater-covers" 632 class="menu-tree-link-level3"> 633 Heater Covers 634 </a> 635 </li> 636 <li class="menu-tree-item"> 637 638 <a href="/fish/artificial-plants" 639 class="menu-tree-link-level3"> 640 Artificial Plants 641 </a> 642 </li> 643 <li class="menu-tree-item"> 644 645 <a href="/fish/fish-accessories" 646 class="menu-tree-link-level3"> 647 Fish Accessories 648 </a> 649 </li> 650 <li class="menu-tree-item"> 651 652 <a href="/request-sample" 653 class="menu-tree-link-level3"> 654 Request Sample 655 </a> 656 </li> 657 </ul> 658 </div> 659 </div> 660 </li> 661 <li class="menu-tree-item"> 662 <div> 663 664 <div class="menu-tree-level2-btn menu-tree-row"> 665 <a href="/reptiles" 666 class="menu-tree-parent-link menu-tree-level2-title"> 667 Reptiles 668 </a> 669 <button type="button" 670 @click="toggleItem('item-3976')" 671 :aria-expanded="openItems['item-3976'] ? 'true' : 'false'" 672 class="menu-tree-toggle-btn"> 673 <span class="sr-only">Toggle Reptiles submenu</span> 674 <svg xmlns="http://www.w3.org/2000/svg" 675 class="menu-tree-level2-icon" 676 :class="{ 'rotate-180': openItems['item-3976'] }" 677 aria-hidden="true" 678 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 679 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 680 </svg> 681 </button> 682 </div> 683 684 685 <div x-cloak 686 x-show="openItems['item-3976']" 687 x-collapse.duration.200ms 688 class="menu-tree-level2-submenu"> 689 <ul class="menu-tree-level2-list"> 690 <li class="menu-tree-item"> 691 692 <a href="/reptiles/backgrounds" 693 class="menu-tree-link-level3"> 694 Backgrounds 695 </a> 696 </li> 697 <li class="menu-tree-item"> 698 699 <a href="/reptiles/rocks" 700 class="menu-tree-link-level3"> 701 Rocks/Hides 702 </a> 703 </li> 704 <li class="menu-tree-item"> 705 706 <a href="/reptiles/ledges" 707 class="menu-tree-link-level3"> 708 Ledges 709 </a> 710 </li> 711 <li class="menu-tree-item"> 712 713 <a href="/reptiles/reptile-tree-products" 714 class="menu-tree-link-level3"> 715 Tree Products 716 </a> 717 </li> 718 <li class="menu-tree-item"> 719 720 <a href="/zoo/vines" 721 class="menu-tree-link-level3"> 722 Vines 723 </a> 724 </li> 725 <li class="menu-tree-item"> 726 727 <a href="/reptiles/food-water-bowls" 728 class="menu-tree-link-level3"> 729 Bowls 730 </a> 731 </li> 732 <li class="menu-tree-item"> 733 734 <a href="/zoo/ponds" 735 class="menu-tree-link-level3"> 736 Ponds 737 </a> 738 </li> 739 <li class="menu-tree-item"> 740 741 <a href="/garden-ponds/floating" 742 class="menu-tree-link-level3"> 743 Floating Products 744 </a> 745 </li> 746 <li class="menu-tree-item"> 747 748 <a href="/reptiles/reptile-accessories" 749 class="menu-tree-link-level3"> 750 Reptile Accessories 751 </a> 752 </li> 753 <li class="menu-tree-item"> 754 755 <a href="/request-sample" 756 class="menu-tree-link-level3"> 757 Request Sample 758 </a> 759 </li> 760 </ul> 761 </div> 762 </div> 763 </li> 764 <li class="menu-tree-item"> 765 <div> 766 767 <div class="menu-tree-level2-btn menu-tree-row"> 768 <a href="/zoo" 769 class="menu-tree-parent-link menu-tree-level2-title"> 770 Zoo Animals 771 </a> 772 <button type="button" 773 @click="toggleItem('item-3987')" 774 :aria-expanded="openItems['item-3987'] ? 'true' : 'false'" 775 class="menu-tree-toggle-btn">
776 <span class="sr-only">Toggle Zoo Animals submenu</span> 777 <svg xmlns="http://www.w3.org/2000/svg" 778 class="menu-tree-level2-icon" 779 :class="{ 'rotate-180': openItems['item-3987'] }" 780 aria-hidden="true" 781 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 782 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 783 </svg> 784 </button> 785 </div> 786 787 788 <div x-cloak 789 x-show="openItems['item-3987']" 790 x-collapse.duration.200ms 791 class="menu-tree-level2-submenu"> 792 <ul class="menu-tree-level2-list"> 793 <li class="menu-tree-item"> 794 795 <a href="/reptiles/food-water-bowls" 796 class="menu-tree-link-level3"> 797 Food & Water Bowls 798 </a> 799 </li> 800 <li class="menu-tree-item"> 801 802 <a href="/zoo/rocks" 803 class="menu-tree-link-level3"> 804 Rocks 805 </a> 806 </li> 807 <li class="menu-tree-item"> 808 809 <a href="/zoo/ponds" 810 class="menu-tree-link-level3"> 811 Ponds 812 </a> 813 </li> 814 <li class="menu-tree-item"> 815 816 <a href="/zoo/vines" 817 class="menu-tree-link-level3"> 818 Vines 819 </a> 820 </li> 821 <li class="menu-tree-item"> 822 823 <a href="/reptiles/ledges" 824 class="menu-tree-link-level3"> 825 Ledges 826 </a> 827 </li> 828 <li class="menu-tree-item"> 829 830 <a href="/fish/backgrounds/custom-backgrounds" 831 class="menu-tree-link-level3">
832 Small Enclosure Backgrounds 833 </a> 834 </li> 835 <li class="menu-tree-item"> 836 837 <a href="/rock-wall-panels" 838 class="menu-tree-link-level3"> 839 Exhibit Rock Walls 840 </a> 841 </li> 842 <li class="menu-tree-item"> 843 844 <a href="/garden-ponds/floating" 845 class="menu-tree-link-level3"> 846 Floating Products 847 </a> 848 </li> 849 <li class="menu-tree-item"> 850 851 <a href="/reptiles/reptile-tree-products" 852 class="menu-tree-link-level3"> 853 Tree Products 854 </a> 855 </li> 856 <li class="menu-tree-item"> 857 858 <a href="/zoo/zoo-accessories" 859 class="menu-tree-link-level3"> 860 Zoo Accessories 861 </a> 862 </li> 863 <li class="menu-tree-item"> 864 865 <a href="/request-sample" 866 class="menu-tree-link-level3"> 867 Request Sample 868 </a> 869 </li> 870 </ul> 871 </div> 872 </div> 873 </li> 874 <li class="menu-tree-item"> 875 876 <a href="/dogs-cats" 877 class="menu-tree-link-level2"> 878 Dogs & Cats 879 </a> 880 </li> 881 </ul> 882 </div> 883 </div> 884 </li> 885 <li class="menu-tree-item"> 886 <div> 887 888 <button type="button" 889 @click="toggleItem('item-4000')" 890 :aria-expanded="openItems['item-4000'] ? 'true' : 'false'" 891 class="menu-tree-level1-btn"> 892 <span class="menu-tree-level1-title">Shop Outdoors</span> 893 <svg xmlns="http://www.w3.org/2000/svg" 894 class="menu-tree-level1-icon" 895 :class="{ 'rotate-180': openItems['item-4000'] }" 896 aria-hidden="true" 897 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 898 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 899 </svg> 900 </button> 901 902 903 <div x-cloak 904 x-show="openItems['item-4000']" 905 x-collapse.duration.200ms 906 class="menu-tree-level1-submenu"> 907 <ul class="menu-tree-level1-list"> 908 <li class="menu-tree-item"> 909 <div> 910 911 <div class="menu-tree-level2-btn menu-tree-row"> 912 <a href="/swimming-pools" 913 class="menu-tree-parent-link menu-tree-level2-title"> 914 Pool 915 </a> 916 <button type="button" 917 @click="toggleItem('item-4001')" 918 :aria-expanded="openItems['item-4001'] ? 'true' : 'false'" 919 class="menu-tree-toggle-btn"> 920 <span class="sr-only">Toggle Pool submenu</span> 921 <svg xmlns="http://www.w3.org/2000/svg" 922 class="menu-tree-level2-icon" 923 :class="{ 'rotate-180': openItems['item-4001'] }" 924 aria-hidden="true" 925 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 926 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 927 </svg> 928 </button> 929 </div> 930 931 932 <div x-cloak 933 x-show="openItems['item-4001']" 934 x-collapse.duration.200ms 935 class="menu-tree-level2-submenu"> 936 <ul class="menu-tree-level2-list"> 937 <li class="menu-tree-item"> 938 939 <a href="/swimming-pools/waterfall-kits" 940 class="menu-tree-link-level3"> 941 Waterfall Kits 942 </a> 943 </li> 944 <li class="menu-tree-item"> 945 946 <a href="/swimming-pools/pool-waterfalls/rock-waterfalls" 947 class="menu-tree-link-level3"> 948 Natural Waterfalls 949 </a> 950 </li> 951 <li class="menu-tree-item"> 952 953 <a href="/swimming-pools/pool-waterfalls/modern-waterfalls" 954 class="menu-tree-link-level3"> 955 Modern Waterfalls 956 </a> 957 </li> 958 <li class="menu-tree-item"> 959 960 <a href="/swimming-pools/xl-pool-waterfalls" 961 class="menu-tree-link-level3"> 962 Grotto Waterfalls 963 </a> 964 </li> 965 <li class="menu-tree-item"> 966 967 <a href="/swimming-pools/stone-cold-plunge-tub" 968 class="menu-tree-link-level3"> 969 Cold Plunge 970 </a> 971 </li> 972 <li class="menu-tree-item"> 973 974 <a href="/swimming-pools/angel-wall" 975 class="menu-tree-link-level3"> 976 Slides 977 </a> 978 </li> 979 <li class="menu-tree-item"> 980 981 <a href="/swimming-pools/steps" 982 class="menu-tree-link-level3"> 983 Steps 984 </a> 985 </li> 986 <li class="menu-tree-item"> 987 988 <a href="/swimming-pools/rocks" 989 class="menu-tree-link-level3"> 990 Poolside Rocks 991 </a> 992 </li> 993 <li class="menu-tree-item"> 994 995 <a href="/coolers" 996 class="menu-tree-link-level3"> 997 Coolers 998 </a> 999 </li> 1000 <li class="menu-tree-item"> 1001 1002 <a href="/swimming-pools/plants" 1003 class="menu-tree-link-level3"> 1004 Plants 1005 </a> 1006 </li> 1007 <li class="menu-tree-item"> 1008 1009 <a href="/swimming-pools/pool-accessories" 1010 class="menu-tree-link-level3"> 1011 Pool Accessories 1012 </a> 1013 </li> 1014 <li class="menu-tree-item"> 1015 1016 <a href="/request-sample" 1017 class="menu-tree-link-level3"> 1018 Request Sample 1019 </a> 1020 </li> 1021 </ul> 1022 </div> 1023 </div> 1024 </li> 1025 <li class="menu-tree-item"> 1026 <div> 1027 1028 <div class="menu-tree-level2-btn menu-tree-row"> 1029 <a href="/garden-ponds" 1030 class="menu-tree-parent-link menu-tree-level2-title"> 1031 Garden 1032 </a> 1033 <button type="button" 1034 @click="toggleItem('item-4014')" 1035 :aria-expanded="openItems['item-4014'] ? 'true' : 'false'" 1036 class="menu-tree-toggle-btn">
1037 <span class="sr-only">Toggle Garden submenu</span> 1038 <svg xmlns="http://www.w3.org/2000/svg" 1039 class="menu-tree-level2-icon" 1040 :class="{ 'rotate-180': openItems['item-4014'] }" 1041 aria-hidden="true" 1042 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 1043 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 1044 </svg> 1045 </button> 1046 </div> 1047 1048 1049 <div x-cloak 1050 x-show="openItems['item-4014']" 1051 x-collapse.duration.200ms 1052 class="menu-tree-level2-submenu"> 1053 <ul class="menu-tree-level2-list"> 1054 <li class="menu-tree-item"> 1055 1056 <a href="/garden-ponds/pond-kits" 1057 class="menu-tree-link-level3"> 1058 Pond Kits 1059 </a> 1060 </li> 1061 <li class="menu-tree-item"> 1062 1063 <a href="/garden-ponds/water-features" 1064 class="menu-tree-link-level3"> 1065 Water Features 1066 </a> 1067 </li> 1068 <li class="menu-tree-item"> 1069 1070 <a href="/garden-ponds/ponds" 1071 class="menu-tree-link-level3"> 1072 Ponds 1073 </a> 1074 </li> 1075 <li class="menu-tree-item"> 1076 1077 <a href="/garden-ponds/rocks" 1078 class="menu-tree-link-level3"> 1079 Landscape Rocks 1080 </a> 1081 </li> 1082 <li class="menu-tree-item"> 1083 1084 <a href="/coolers" 1085 class="menu-tree-link-level3"> 1086 Coolers 1087 </a> 1088 </li> 1089 <li class="menu-tree-item"> 1090 1091 <a href="/garden-ponds/plants" 1092 class="menu-tree-link-level3"> 1093 Plants 1094 </a> 1095 </li> 1096 <li class="menu-tree-item"> 1097 1098 <a href="/garden-ponds/tree-products" 1099 class="menu-tree-link-level3"> 1100 Tree Products 1101 </a> 1102 </li> 1103 <li class="menu-tree-item"> 1104 1105 <a href="/garden-ponds/floating" 1106 class="menu-tree-link-level3"> 1107 Floating Products 1108 </a> 1109 </li> 1110 <li class="menu-tree-item"> 1111 1112 <a href="/garden-ponds/accessories" 1113 class="menu-tree-link-level3"> 1114 Accessories 1115 </a> 1116 </li> 1117 <li class="menu-tree-item"> 1118 1119 <a href="/garden-ponds/accessories/pumps" 1120 class="menu-tree-link-level3"> 1121 Pumps 1122 </a> 1123 </li> 1124 <li class="menu-tree-item"> 1125 1126 <a href="/request-sample" 1127 class="menu-tree-link-level3"> 1128 Request Sample 1129 </a> 1130 </li> 1131 </ul> 1132 </div> 1133 </div> 1134 </li> 1135 <li class="menu-tree-item"> 1136 1137 <a href="/rock-wall-panels" 1138 class="menu-tree-link-level2"> 1139 Rock Wall Panels 1140 </a> 1141 </li> 1142 </ul> 1143 </div> 1144 </div> 1145 </li> 1146 <li class="menu-tree-item"> 1147 1148 <a href="/swimming-pools/waterfall-kits" 1149 class="menu-tree-link-level1"> 1150 Pool Waterfalls 1151 </a> 1152 </li> 1153 <li class="menu-tree-item"> 1154 <div> 1155 1156 <div class="menu-tree-level1-btn menu-tree-row"> 1157 <a href="/rock-wall-panels" 1158 class="menu-tree-parent-link menu-tree-level1-title"> 1159 Faux Stone Panels 1160 </a> 1161 <button type="button" 1162 @click="toggleItem('item-4028')" 1163 :aria-expanded="openItems['item-4028'] ? 'true' : 'false'" 1164 class="menu-tree-toggle-btn">
1165 <span class="sr-only">Toggle Faux Stone Panels submenu</span> 1166 <svg xmlns="http://www.w3.org/2000/svg" 1167 class="menu-tree-level1-icon" 1168 :class="{ 'rotate-180': openItems['item-4028'] }" 1169 aria-hidden="true" 1170 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 1171 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 1172 </svg> 1173 </button> 1174 </div> 1175 1176 1177 <div x-cloak 1178 x-show="openItems['item-4028']" 1179 x-collapse.duration.200ms 1180 class="menu-tree-level1-submenu"> 1181 <ul class="menu-tree-level1-list"> 1182 <li class="menu-tree-item"> 1183 1184 <a href="/home-rock-panels" 1185 class="menu-tree-link-level2"> 1186 Home Rock Panels 1187 </a> 1188 </li> 1189 </ul> 1190 </div> 1191 </div> 1192 </li> 1193 <li class="menu-tree-item"> 1194 1195 <a href="/fish/backgrounds" 1196 class="menu-tree-link-level1"> 1197 3D Backgrounds 1198 </a> 1199 </li> 1200 <li class="menu-tree-item"> 1201 <div> 1202 1203 <button type="button" 1204 @click="toggleItem('item-4031')" 1205 :aria-expanded="openItems['item-4031'] ? 'true' : 'false'" 1206 class="menu-tree-level1-btn"> 1207 <span class="menu-tree-level1-title">Commercial</span> 1208 <svg xmlns="http://www.w3.org/2000/svg" 1209 class="menu-tree-level1-icon" 1210 :class="{ 'rotate-180': openItems['item-4031'] }" 1211 aria-hidden="true" 1212 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 1213 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 1214 </svg> 1215 </button> 1216 1217 1218 <div x-cloak 1219 x-show="openItems['item-4031']" 1220 x-collapse.duration.200ms 1221 class="menu-tree-level1-submenu"> 1222 <ul class="menu-tree-level1-list"> 1223 <li class="menu-tree-item"> 1224 1225 <a href="/rock-wall-panels" 1226 class="menu-tree-link-level2"> 1227 Faux Stone Panels 1228 </a> 1229 </li> 1230 <li class="menu-tree-item"> 1231 1232 <a href="/request-sample" 1233 class="menu-tree-link-level2"> 1234 Request Sample 1235 </a> 1236 </li> 1237 <li class="menu-tree-item"> 1238 1239 <a href="/dealer" 1240 class="menu-tree-link-level2"> 1241 Vendor Form 1242 </a> 1243 </li> 1244 </ul> 1245 </div> 1246 </div> 1247 </li> 1248 <li class="menu-tree-item"> 1249 1250 <a href="/request-sample" 1251 class="menu-tree-link-level1"> 1252 Samples 1253 </a> 1254 </li> 1255 <li class="menu-tree-item"> 1256 <div> 1257 1258 <button type="button" 1259 @click="toggleItem('item-4036')" 1260 :aria-expanded="openItems['item-4036'] ? 'true' : 'false'" 1261 class="menu-tree-level1-btn"> 1262 <span class="menu-tree-level1-title">Info</span> 1263 <svg xmlns="http://www.w3.org/2000/svg" 1264 class="menu-tree-level1-icon" 1265 :class="{ 'rotate-180': openItems['item-4036'] }" 1266 aria-hidden="true" 1267 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 1268 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 1269 </svg> 1270 </button> 1271 1272 1273 <div x-cloak 1274 x-show="openItems['item-4036']" 1275 x-collapse.duration.200ms 1276 class="menu-tree-level1-submenu"> 1277 <ul class="menu-tree-level1-list"> 1278 <li class="menu-tree-item"> 1279 1280 <a href="/order-status" 1281 class="menu-tree-link-level2"> 1282 Order Status 1283 </a> 1284 </li> 1285 <li class="menu-tree-item"> 1286 1287 <a href="/faqs" 1288 class="menu-tree-link-level2"> 1289 FAQs 1290 </a> 1291 </li> 1292 <li class="menu-tree-item"> 1293 1294 <a href="/videos" 1295 class="menu-tree-link-level2"> 1296 Videos 1297 </a> 1298 </li> 1299 <li class="menu-tree-item"> 1300 1301 <a href="/faqs/installation" 1302 class="menu-tree-link-level2">
1303 Installation Instructions 1304 </a> 1305 </li> 1306 <li class="menu-tree-item"> 1307 1308 <a href="/brochures" 1309 class="menu-tree-link-level2"> 1310 Brochures 1311 </a> 1312 </li> 1313 <li class="menu-tree-item"> 1314 1315 <a href="/financing" 1316 class="menu-tree-link-level2"> 1317 Financing 1318 </a> 1319 </li> 1320 <li class="menu-tree-item"> 1321 1322 <a href="https://universalrocks.com/blog/warranty" 1323 class="menu-tree-link-level2"> 1324 Warranty 1325 </a> 1326 </li> 1327 <li class="menu-tree-item"> 1328 1329 <a href="/return-policy" 1330 class="menu-tree-link-level2"> 1331 Return Policy 1332 </a> 1333 </li> 1334 <li class="menu-tree-item"> 1335 1336 <a href="/pictures" 1337 class="menu-tree-link-level2"> 1338 Gallery 1339 </a> 1340 </li> 1341 <li class="menu-tree-item"> 1342 1343 <a href="https://universalrocks.com/blog" 1344 class="menu-tree-link-level2"> 1345 Our Blog 1346 </a> 1347 </li> 1348 <li class="menu-tree-item"> 1349 1350 <a href="/testimonials" 1351 class="menu-tree-link-level2"> 1352 Testimonials 1353 </a> 1354 </li> 1355 <li class="menu-tree-item"> 1356 1357 <a href="/about-us" 1358 class="menu-tree-link-level2"> 1359 About Us 1360 </a> 1361 </li> 1362 </ul> 1363 </div> 1364 </div> 1365 </li> 1366 <li class="menu-tree-item"> 1367 <div> 1368 1369 <div class="menu-tree-level1-btn menu-tree-row"> 1370 <a href="/contact" 1371 class="menu-tree-parent-link menu-tree-level1-title"> 1372 Contact 1373 </a> 1374 <button type="button" 1375 @click="toggleItem('item-4049')" 1376 :aria-expanded="openItems['item-4049'] ? 'true' : 'false'" 1377 class="menu-tree-toggle-btn"> 1378 <span class="sr-only">Toggle Contact submenu</span> 1379 <svg xmlns="http://www.w3.org/2000/svg" 1380 class="menu-tree-level1-icon" 1381 :class="{ 'rotate-180': openItems['item-4049'] }" 1382 aria-hidden="true" 1383 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 1384 <path stroke-width="2" stroke-linecap="round" d="m6 9 6 6 6-6"/> 1385 </svg> 1386 </button> 1387 </div> 1388 1389 1390 <div x-cloak 1391 x-show="openItems['item-4049']" 1392 x-collapse.duration.200ms 1393 class="menu-tree-level1-submenu"> 1394 <ul class="menu-tree-level1-list"> 1395 <li class="menu-tree-item"> 1396 1397 <a href="/dealers" 1398 class="menu-tree-link-level2"> 1399 Find a Dealer 1400 </a> 1401 </li> 1402 <li class="menu-tree-item"> 1403 1404 <a href="/dealer" 1405 class="menu-tree-link-level2"> 1406 Seller Qualification Form 1407 </a> 1408 </li> 1409 <li class="menu-tree-item"> 1410 1411 <a href="/installations" 1412 class="menu-tree-link-level2"> 1413 Installations 1414 </a> 1415 </li> 1416 <li class="menu-tree-item"> 1417 1418 <a href="/international-shipping" 1419 class="menu-tree-link-level2"> 1420 International Shipping Quote 1421 </a> 1422 </li> 1423 <li class="menu-tree-item"> 1424 1425 <a href="/careers" 1426 class="menu-tree-link-level2"> 1427 Careers 1428 </a> 1429 </li> 1430 <li class="menu-tree-item"> 1431 1432 <a href="/influencer" 1433 class="menu-tree-link-level2"> 1434 Influencer Form 1435 </a> 1436 </li> 1437 </ul> 1438 </div> 1439 </div> 1440 </li> 1441 </ul> 1442 </nav> 1443 </div> 1444 </div> 1445</div> 1446 1447<header x-data="{ mobileMenuOpen: false }" 1448 class="hidden lg:block"> 1449 <div class="menu-header"> 1450 <nav class="nav"> 1451 <!-- Desktop Menu --> 1452 <div class="desktop-container">
1453 <div class="desktop-list"> 1454 <div x-data="{ 1455 open: false, 1456 closeTimeout: null, 1457 openMenu() { 1458 clearTimeout(this.closeTimeout); 1459 this.open = true; 1460 }, 1461 closeMenu() { 1462 this.closeTimeout = setTimeout(() => { 1463 this.open = false; 1464 }, 50); 1465 }, 1466 1467 positionDropdown: function() { 1468 const rect = this.$el.getBoundingClientRect(); 1469 const dropdown = this.$refs.dropdown; 1470 if (!dropdown) return; 1471 1472 dropdown.style.left = ''; 1473 dropdown.style.right = ''; 1474 1475 const rightSpace = window.innerWidth - rect.left; 1476 const leftSpace = rect.right; 1477 1478 if (rightSpace >= 300) { 1479 dropdown.style.left = '0'; 1480 } else if (leftSpace >= 300) { 1481 dropdown.style.right = '0'; 1482 } else { 1483 dropdown.style.left = '0'; 1484 } 1485 }, 1486 positionBridge: function() { 1487 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 1488 const dropdown = this.$refs.dropdown; 1489 const bridge = this.$refs.bridge; 1490 1491 if (!menuItem || !dropdown || !bridge) return; 1492 1493 const menuRect = menuItem.getBoundingClientRect(); 1494 const dropdownRect = dropdown.getBoundingClientRect(); 1495 const parentRect = this.$el.getBoundingClientRect(); 1496 1497 // Calculate the gap between menu item bottom and dropdown top 1498 const gap = dropdownRect.top - menuRect.bottom; 1499 1500 if (gap > 0) { 1501 bridge.style.position = 'absolute'; 1502 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 1503 bridge.style.left = '0'; 1504 bridge.style.width = '100%'; 1505 // Add a few extra pixels to overlap with the dropdown 1506 bridge.style.height = (gap + 10) + 'px'; 1507 bridge.style.zIndex = '40'; 1508 } 1509 }, 1510 1511 }" 1512 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 1513 @click.away="closeMenu()" 1514 1515 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 1516 class="menu-dropdown-parent"> 1517 1518 1519 1520 <div class="menu-item-top-container"> 1521 <a href="/crawler-course" 1522 class="menu-item-top-link" 1523 :class="{ 'text-primary' : open }"> 1524 Crawler Course 1525 </a> 1526 <button type="button" 1527 @click.prevent="open = !open" 1528 :aria-expanded="open.toString()" 1529 class="menu-item-top-btn"> 1530 <span class="sr-only">Toggle Crawler Course dropdown</span> 1531 <svg :class="{ 'rotate-180': open }" 1532 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 1533 aria-hidden="true" 1534 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 1535 stroke-linejoin="round"> 1536 <path d="m6 9 6 6 6-6"/> 1537 </svg> 1538 </button> 1539 </div> 1540 1541 1542 <div x-show="open" 1543 x-ref="bridge" 1544 class="menu-hover-bridge" 1545 x-cloak></div> 1546 1547 1548 <div x-show="open" 1549 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 1550 x-transition:enter-start="opacity-0 scale-95" 1551 x-transition:enter-end="opacity-100 scale-100" 1552 x-transition:leave="transition ease-in duration-150" 1553 x-transition:leave-start="opacity-100 scale-100" 1554 x-transition:leave-end="opacity-0 scale-95" 1555 class=" menu-dropdown-desktop " 1556 style="display: none;"> 1557 1558 <a class="menu-nested-link " 1559 href="/crawler-course" 1560 > 1561 Crawler Course 1562 </a> 1563 <a class="menu-nested-link " 1564 href="/crawler-course/crawler-accessories" 1565 > 1566 RC Crawler Accessories 1567 </a> 1568 </div> 1569 </div> 1570 <div x-data="{ 1571 open: false, 1572 closeTimeout: null, 1573 openMenu() { 1574 clearTimeout(this.closeTimeout); 1575 this.open = true; 1576 }, 1577 closeMenu() { 1578 this.closeTimeout = setTimeout(() => { 1579 this.open = false;
1580 }, 50); 1581 }, 1582 1583 positionDropdown: function() { 1584 const rect = this.$el.getBoundingClientRect(); 1585 const dropdown = this.$refs.dropdown; 1586 if (!dropdown) return; 1587 1588 dropdown.style.left = ''; 1589 dropdown.style.right = ''; 1590 1591 const rightSpace = window.innerWidth - rect.left; 1592 const leftSpace = rect.right; 1593 1594 if (rightSpace >= 300) { 1595 dropdown.style.left = '0'; 1596 } else if (leftSpace >= 300) { 1597 dropdown.style.right = '0'; 1598 } else { 1599 dropdown.style.left = '0'; 1600 } 1601 }, 1602 positionBridge: function() { 1603 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 1604 const dropdown = this.$refs.dropdown; 1605 const bridge = this.$refs.bridge; 1606 1607 if (!menuItem || !dropdown || !bridge) return; 1608 1609 const menuRect = menuItem.getBoundingClientRect(); 1610 const dropdownRect = dropdown.getBoundingClientRect(); 1611 const parentRect = this.$el.getBoundingClientRect(); 1612 1613 // Calculate the gap between menu item bottom and dropdown top 1614 const gap = dropdownRect.top - menuRect.bottom; 1615 1616 if (gap > 0) { 1617 bridge.style.position = 'absolute'; 1618 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 1619 bridge.style.left = '0'; 1620 bridge.style.width = '100%'; 1621 // Add a few extra pixels to overlap with the dropdown 1622 bridge.style.height = (gap + 10) + 'px'; 1623 bridge.style.zIndex = '40'; 1624 } 1625 }, 1626 1627 }" 1628 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 1629 @click.away="closeMenu()" 1630 1631 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 1632 class="menu-dropdown-parent"> 1633 1634 1635 1636 <div class="menu-item-top-container"> 1637 <div class="menu-item-top-link menu-item-top-placeholder"> 1638 Shop by Pet 1639 </div> 1640 <button type="button" 1641 @click.prevent="open = !open" 1642 :aria-expanded="open.toString()" 1643 class="menu-item-top-btn"> 1644 <span class="sr-only">Toggle Shop by Pet dropdown</span> 1645 <svg :class="{ 'rotate-180': open }" 1646 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 1647 aria-hidden="true" 1648 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 1649 stroke-linejoin="round"> 1650 <path d="m6 9 6 6 6-6"/> 1651 </svg> 1652 </button> 1653 </div> 1654 1655 1656 <div x-show="open" 1657 x-ref="bridge" 1658 class="menu-hover-bridge" 1659 x-cloak></div> 1660 1661 1662 <div x-show="open" 1663 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 1664 x-transition:enter-start="opacity-0 scale-95" 1665 x-transition:enter-end="opacity-100 scale-100" 1666 x-transition:leave="transition ease-in duration-150" 1667 x-transition:leave-start="opacity-100 scale-100" 1668 x-transition:leave-end="opacity-0 scale-95" 1669 class=" menu-dropdown-desktop " 1670 style="display: none;"> 1671 1672 <div x-data="{ 1673 subOpen: false, 1674 closeTimeout: null, 1675 openMenu() { 1676 clearTimeout(this.closeTimeout); 1677 this.subOpen = true; 1678 }, 1679 closeMenu() { 1680 this.closeTimeout = setTimeout(() => { 1681 this.subOpen = false;
1682 }, 50); 1683 }, 1684 positionSubmenu: function() { 1685 const rect = this.$el.getBoundingClientRect(); 1686 const submenu = this.$refs.submenu; 1687 if (!submenu) return; 1688 1689 submenu.style.left = ''; 1690 submenu.style.right = ''; 1691 submenu.style.top = '0'; 1692 1693 const rightSpace = window.innerWidth - rect.right; 1694 const leftSpace = rect.left; 1695 1696 if (rightSpace >= 250) { 1697 submenu.style.left = '100%'; 1698 submenu.style.marginLeft = '8px'; 1699 } else if (leftSpace >= 250) { 1700 submenu.style.right = '100%'; 1701 submenu.style.marginRight = '8px'; 1702 } else { 1703 submenu.style.left = '100%'; 1704 submenu.style.marginLeft = '8px'; 1705 } 1706 } 1707 }" 1708 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 1709 @click.away="closeMenu()" 1710 1711 x-init="$watch('subOpen', value => { if (value) { setTimeout(function(){ positionSubmenu(); }, 10); } })" 1712 class="relative"> 1713 1714 1715 1716 <div @mouseenter="openMenu()" class="menu-submenu-container"> 1717 <a href="/fish" 1718 class="menu-submenu-link "> 1719 Fish 1720 </a> 1721 <button type="button" 1722 @click.prevent="subOpen = !subOpen" 1723 :aria-expanded="subOpen.toString()" 1724 @mouseenter="openMenu()" class="menu-submenu-btn"> 1725 <span class="sr-only">Toggle Fish submenu</span> 1726 <svg 1727 :class="{ '-rotate-90': subOpen }" 1728 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 1729 aria-hidden="true" 1730 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 1731 stroke-linejoin="round"> 1732 <path d="m6 9 6 6 6-6"/> 1733 </svg> 1734 </button> 1735 </div> 1736 1737 1738 1739 1740 <div x-show="subOpen" 1741 x-ref="submenu" x-transition:enter="transition ease-out duration-200" 1742 x-transition:enter-start="opacity-0 " 1743 x-transition:enter-end="opacity-100 " 1744 x-transition:leave="transition ease-in duration-150" 1745 x-transition:leave-start="opacity-100 " 1746 x-transition:leave-end="opacity-0 " 1747 class=" menu-submenu-desktop " 1748 style="display: none;"> 1749 1750 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1751 href="/fish/backgrounds" 1752 > 1753 Backgrounds 1754 </a> 1755 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1756 href="/fish/rocks" 1757 > 1758 Rocks 1759 </a> 1760 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1761 href="/fish/tree" 1762 > 1763 Tree Products 1764 </a> 1765 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1766 href="/fish/heater-covers" 1767 > 1768 Heater Covers 1769 </a> 1770 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1771 href="/fish/artificial-plants" 1772 > 1773 Artificial Plants 1774 </a> 1775 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1776 href="/fish/fish-accessories" 1777 > 1778 Fish Accessories 1779 </a> 1780 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1781 href="/request-sample" 1782 > 1783 Request Sample 1784 </a> 1785 </div> 1786 </div> 1787 <div x-data="{ 1788 subOpen: false, 1789 closeTimeout: null, 1790 openMenu() { 1791 clearTimeout(this.closeTimeout); 1792 this.subOpen = true; 1793 }, 1794 closeMenu() { 1795 this.closeTimeout = setTimeout(() => { 1796 this.subOpen = false;
1797 }, 50); 1798 }, 1799 positionSubmenu: function() { 1800 const rect = this.$el.getBoundingClientRect(); 1801 const submenu = this.$refs.submenu; 1802 if (!submenu) return; 1803 1804 submenu.style.left = ''; 1805 submenu.style.right = ''; 1806 submenu.style.top = '0'; 1807 1808 const rightSpace = window.innerWidth - rect.right; 1809 const leftSpace = rect.left; 1810 1811 if (rightSpace >= 250) { 1812 submenu.style.left = '100%'; 1813 submenu.style.marginLeft = '8px'; 1814 } else if (leftSpace >= 250) { 1815 submenu.style.right = '100%'; 1816 submenu.style.marginRight = '8px'; 1817 } else { 1818 submenu.style.left = '100%'; 1819 submenu.style.marginLeft = '8px'; 1820 } 1821 } 1822 }" 1823 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 1824 @click.away="closeMenu()" 1825 1826 x-init="$watch('subOpen', value => { if (value) { setTimeout(function(){ positionSubmenu(); }, 10); } })" 1827 class="relative"> 1828 1829 1830 1831 <div @mouseenter="openMenu()" class="menu-submenu-container"> 1832 <a href="/reptiles" 1833 class="menu-submenu-link "> 1834 Reptiles 1835 </a> 1836 <button type="button" 1837 @click.prevent="subOpen = !subOpen" 1838 :aria-expanded="subOpen.toString()" 1839 @mouseenter="openMenu()" class="menu-submenu-btn"> 1840 <span class="sr-only">Toggle Reptiles submenu</span> 1841 <svg 1842 :class="{ '-rotate-90': subOpen }" 1843 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 1844 aria-hidden="true" 1845 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 1846 stroke-linejoin="round"> 1847 <path d="m6 9 6 6 6-6"/> 1848 </svg> 1849 </button> 1850 </div> 1851 1852 1853 1854 1855 <div x-show="subOpen" 1856 x-ref="submenu" x-transition:enter="transition ease-out duration-200" 1857 x-transition:enter-start="opacity-0 " 1858 x-transition:enter-end="opacity-100 " 1859 x-transition:leave="transition ease-in duration-150" 1860 x-transition:leave-start="opacity-100 " 1861 x-transition:leave-end="opacity-0 " 1862 class=" menu-submenu-desktop " 1863 style="display: none;"> 1864 1865 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1866 href="/reptiles/backgrounds" 1867 > 1868 Backgrounds 1869 </a> 1870 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1871 href="/reptiles/rocks" 1872 > 1873 Rocks/Hides 1874 </a> 1875 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1876 href="/reptiles/ledges" 1877 > 1878 Ledges 1879 </a> 1880 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1881 href="/reptiles/reptile-tree-products" 1882 > 1883 Tree Products 1884 </a> 1885 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1886 href="/zoo/vines" 1887 > 1888 Vines 1889 </a> 1890 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1891 href="/reptiles/food-water-bowls" 1892 > 1893 Bowls 1894 </a> 1895 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1896 href="/zoo/ponds" 1897 > 1898 Ponds 1899 </a> 1900 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1901 href="/garden-ponds/floating" 1902 > 1903 Floating Products 1904 </a> 1905 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1906 href="/reptiles/reptile-accessories" 1907 > 1908 Reptile Accessories 1909 </a> 1910 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1911 href="/request-sample" 1912 > 1913 Request Sample 1914 </a> 1915 </div> 1916 </div> 1917 <div x-data="{ 1918 subOpen: false, 1919 closeTimeout: null, 1920 openMenu() { 1921 clearTimeout(this.closeTimeout); 1922 this.subOpen = true; 1923 }, 1924 closeMenu() { 1925 this.closeTimeout = setTimeout(() => { 1926 this.subOpen = false;
1927 }, 50); 1928 }, 1929 positionSubmenu: function() { 1930 const rect = this.$el.getBoundingClientRect(); 1931 const submenu = this.$refs.submenu; 1932 if (!submenu) return; 1933 1934 submenu.style.left = ''; 1935 submenu.style.right = ''; 1936 submenu.style.top = '0'; 1937 1938 const rightSpace = window.innerWidth - rect.right; 1939 const leftSpace = rect.left; 1940 1941 if (rightSpace >= 250) { 1942 submenu.style.left = '100%'; 1943 submenu.style.marginLeft = '8px'; 1944 } else if (leftSpace >= 250) { 1945 submenu.style.right = '100%'; 1946 submenu.style.marginRight = '8px'; 1947 } else { 1948 submenu.style.left = '100%'; 1949 submenu.style.marginLeft = '8px'; 1950 } 1951 } 1952 }" 1953 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 1954 @click.away="closeMenu()" 1955 1956 x-init="$watch('subOpen', value => { if (value) { setTimeout(function(){ positionSubmenu(); }, 10); } })" 1957 class="relative"> 1958 1959 1960 1961 <div @mouseenter="openMenu()" class="menu-submenu-container"> 1962 <a href="/zoo" 1963 class="menu-submenu-link "> 1964 Zoo Animals 1965 </a> 1966 <button type="button" 1967 @click.prevent="subOpen = !subOpen" 1968 :aria-expanded="subOpen.toString()" 1969 @mouseenter="openMenu()" class="menu-submenu-btn"> 1970 <span class="sr-only">Toggle Zoo Animals submenu</span> 1971 <svg 1972 :class="{ '-rotate-90': subOpen }" 1973 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 1974 aria-hidden="true" 1975 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 1976 stroke-linejoin="round"> 1977 <path d="m6 9 6 6 6-6"/> 1978 </svg> 1979 </button> 1980 </div> 1981 1982 1983 1984 1985 <div x-show="subOpen" 1986 x-ref="submenu" x-transition:enter="transition ease-out duration-200" 1987 x-transition:enter-start="opacity-0 " 1988 x-transition:enter-end="opacity-100 " 1989 x-transition:leave="transition ease-in duration-150" 1990 x-transition:leave-start="opacity-100 " 1991 x-transition:leave-end="opacity-0 " 1992 class=" menu-submenu-desktop " 1993 style="display: none;"> 1994 1995 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 1996 href="/reptiles/food-water-bowls" 1997 > 1998 Food & Water Bowls 1999 </a> 2000 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2001 href="/zoo/rocks" 2002 > 2003 Rocks 2004 </a> 2005 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2006 href="/zoo/ponds" 2007 > 2008 Ponds 2009 </a> 2010 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2011 href="/zoo/vines" 2012 > 2013 Vines 2014 </a> 2015 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2016 href="/reptiles/ledges" 2017 > 2018 Ledges 2019 </a> 2020 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2021 href="/fish/backgrounds/custom-backgrounds" 2022 >
2023 Small Enclosure Backgrounds 2024 </a> 2025 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2026 href="/rock-wall-panels" 2027 > 2028 Exhibit Rock Walls 2029 </a> 2030 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2031 href="/garden-ponds/floating" 2032 > 2033 Floating Products 2034 </a> 2035 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2036 href="/reptiles/reptile-tree-products" 2037 > 2038 Tree Products 2039 </a> 2040 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2041 href="/zoo/zoo-accessories" 2042 > 2043 Zoo Accessories 2044 </a> 2045 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2046 href="/request-sample" 2047 > 2048 Request Sample 2049 </a> 2050 </div> 2051 </div> 2052 <a class="menu-nested-link " 2053 href="/dogs-cats" 2054 > 2055 Dogs & Cats 2056 </a> 2057 </div> 2058 </div> 2059 <div x-data="{ 2060 open: false, 2061 closeTimeout: null, 2062 openMenu() { 2063 clearTimeout(this.closeTimeout); 2064 this.open = true; 2065 }, 2066 closeMenu() { 2067 this.closeTimeout = setTimeout(() => { 2068 this.open = false; 2069 }, 50); 2070 }, 2071 2072 positionDropdown: function() { 2073 const rect = this.$el.getBoundingClientRect(); 2074 const dropdown = this.$refs.dropdown; 2075 if (!dropdown) return; 2076 2077 dropdown.style.left = ''; 2078 dropdown.style.right = ''; 2079 2080 const rightSpace = window.innerWidth - rect.left; 2081 const leftSpace = rect.right; 2082 2083 if (rightSpace >= 300) { 2084 dropdown.style.left = '0'; 2085 } else if (leftSpace >= 300) { 2086 dropdown.style.right = '0'; 2087 } else { 2088 dropdown.style.left = '0'; 2089 } 2090 }, 2091 positionBridge: function() { 2092 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 2093 const dropdown = this.$refs.dropdown; 2094 const bridge = this.$refs.bridge; 2095 2096 if (!menuItem || !dropdown || !bridge) return; 2097 2098 const menuRect = menuItem.getBoundingClientRect(); 2099 const dropdownRect = dropdown.getBoundingClientRect(); 2100 const parentRect = this.$el.getBoundingClientRect(); 2101 2102 // Calculate the gap between menu item bottom and dropdown top 2103 const gap = dropdownRect.top - menuRect.bottom; 2104 2105 if (gap > 0) { 2106 bridge.style.position = 'absolute'; 2107 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 2108 bridge.style.left = '0'; 2109 bridge.style.width = '100%'; 2110 // Add a few extra pixels to overlap with the dropdown 2111 bridge.style.height = (gap + 10) + 'px'; 2112 bridge.style.zIndex = '40'; 2113 } 2114 }, 2115 2116 }" 2117 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2118 @click.away="closeMenu()" 2119 2120 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 2121 class="menu-dropdown-parent"> 2122 2123 2124 2125 <div class="menu-item-top-container"> 2126 <div class="menu-item-top-link menu-item-top-placeholder"> 2127 Shop Outdoors 2128 </div> 2129 <button type="button" 2130 @click.prevent="open = !open" 2131 :aria-expanded="open.toString()" 2132 class="menu-item-top-btn">
2133 <span class="sr-only">Toggle Shop Outdoors dropdown</span> 2134 <svg :class="{ 'rotate-180': open }" 2135 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2136 aria-hidden="true" 2137 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2138 stroke-linejoin="round"> 2139 <path d="m6 9 6 6 6-6"/> 2140 </svg> 2141 </button> 2142 </div> 2143 2144 2145 <div x-show="open" 2146 x-ref="bridge" 2147 class="menu-hover-bridge" 2148 x-cloak></div> 2149 2150 2151 <div x-show="open" 2152 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 2153 x-transition:enter-start="opacity-0 scale-95" 2154 x-transition:enter-end="opacity-100 scale-100" 2155 x-transition:leave="transition ease-in duration-150" 2156 x-transition:leave-start="opacity-100 scale-100" 2157 x-transition:leave-end="opacity-0 scale-95" 2158 class=" menu-dropdown-desktop " 2159 style="display: none;"> 2160 2161 <div x-data="{ 2162 subOpen: false, 2163 closeTimeout: null, 2164 openMenu() { 2165 clearTimeout(this.closeTimeout); 2166 this.subOpen = true; 2167 }, 2168 closeMenu() { 2169 this.closeTimeout = setTimeout(() => { 2170 this.subOpen = false; 2171 }, 50); 2172 }, 2173 positionSubmenu: function() { 2174 const rect = this.$el.getBoundingClientRect(); 2175 const submenu = this.$refs.submenu; 2176 if (!submenu) return; 2177 2178 submenu.style.left = ''; 2179 submenu.style.right = ''; 2180 submenu.style.top = '0'; 2181 2182 const rightSpace = window.innerWidth - rect.right; 2183 const leftSpace = rect.left; 2184 2185 if (rightSpace >= 250) { 2186 submenu.style.left = '100%'; 2187 submenu.style.marginLeft = '8px'; 2188 } else if (leftSpace >= 250) { 2189 submenu.style.right = '100%'; 2190 submenu.style.marginRight = '8px'; 2191 } else { 2192 submenu.style.left = '100%'; 2193 submenu.style.marginLeft = '8px'; 2194 } 2195 } 2196 }" 2197 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2198 @click.away="closeMenu()" 2199 2200 x-init="$watch('subOpen', value => { if (value) { setTimeout(function(){ positionSubmenu(); }, 10); } })" 2201 class="relative"> 2202 2203 2204 2205 <div @mouseenter="openMenu()" class="menu-submenu-container"> 2206 <a href="/swimming-pools" 2207 class="menu-submenu-link "> 2208 Pool 2209 </a> 2210 <button type="button" 2211 @click.prevent="subOpen = !subOpen" 2212 :aria-expanded="subOpen.toString()" 2213 @mouseenter="openMenu()" class="menu-submenu-btn"> 2214 <span class="sr-only">Toggle Pool submenu</span> 2215 <svg 2216 :class="{ '-rotate-90': subOpen }" 2217 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2218 aria-hidden="true" 2219 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2220 stroke-linejoin="round"> 2221 <path d="m6 9 6 6 6-6"/> 2222 </svg> 2223 </button> 2224 </div> 2225 2226 2227 2228 2229 <div x-show="subOpen" 2230 x-ref="submenu" x-transition:enter="transition ease-out duration-200" 2231 x-transition:enter-start="opacity-0 " 2232 x-transition:enter-end="opacity-100 " 2233 x-transition:leave="transition ease-in duration-150" 2234 x-transition:leave-start="opacity-100 " 2235 x-transition:leave-end="opacity-0 " 2236 class=" menu-submenu-desktop " 2237 style="display: none;"> 2238 2239 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2240 href="/swimming-pools/waterfall-kits" 2241 > 2242 Waterfall Kits 2243 </a> 2244 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2245 href="/swimming-pools/pool-waterfalls/rock-waterfalls" 2246 > 2247 Natural Waterfalls 2248 </a> 2249 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2250 href="/swimming-pools/pool-waterfalls/modern-waterfalls" 2251 > 2252 Modern Waterfalls 2253 </a> 2254 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2255 href="/swimming-pools/xl-pool-waterfalls" 2256 > 2257 Grotto Waterfalls 2258 </a> 2259 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2260 href="/swimming-pools/stone-cold-plunge-tub" 2261 > 2262 Cold Plunge 2263 </a> 2264 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2265 href="/swimming-pools/angel-wall" 2266 > 2267 Slides 2268 </a> 2269 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2270 href="/swimming-pools/steps" 2271 > 2272 Steps 2273 </a> 2274 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2275 href="/swimming-pools/rocks" 2276 > 2277 Poolside Rocks 2278 </a> 2279 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2280 href="/coolers" 2281 > 2282 Coolers 2283 </a> 2284 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2285 href="/swimming-pools/plants" 2286 > 2287 Plants 2288 </a> 2289 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2290 href="/swimming-pools/pool-accessories" 2291 > 2292 Pool Accessories 2293 </a> 2294 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2295 href="/request-sample" 2296 > 2297 Request Sample 2298 </a> 2299 </div> 2300 </div> 2301 <div x-data="{ 2302 subOpen: false, 2303 closeTimeout: null, 2304 openMenu() { 2305 clearTimeout(this.closeTimeout); 2306 this.subOpen = true; 2307 }, 2308 closeMenu() { 2309 this.closeTimeout = setTimeout(() => { 2310 this.subOpen = false;
2311 }, 50); 2312 }, 2313 positionSubmenu: function() { 2314 const rect = this.$el.getBoundingClientRect(); 2315 const submenu = this.$refs.submenu; 2316 if (!submenu) return; 2317 2318 submenu.style.left = ''; 2319 submenu.style.right = ''; 2320 submenu.style.top = '0'; 2321 2322 const rightSpace = window.innerWidth - rect.right; 2323 const leftSpace = rect.left; 2324 2325 if (rightSpace >= 250) { 2326 submenu.style.left = '100%'; 2327 submenu.style.marginLeft = '8px'; 2328 } else if (leftSpace >= 250) { 2329 submenu.style.right = '100%'; 2330 submenu.style.marginRight = '8px'; 2331 } else { 2332 submenu.style.left = '100%'; 2333 submenu.style.marginLeft = '8px'; 2334 } 2335 } 2336 }" 2337 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2338 @click.away="closeMenu()" 2339 2340 x-init="$watch('subOpen', value => { if (value) { setTimeout(function(){ positionSubmenu(); }, 10); } })" 2341 class="relative"> 2342 2343 2344 2345 <div @mouseenter="openMenu()" class="menu-submenu-container"> 2346 <a href="/garden-ponds" 2347 class="menu-submenu-link "> 2348 Garden 2349 </a> 2350 <button type="button" 2351 @click.prevent="subOpen = !subOpen" 2352 :aria-expanded="subOpen.toString()" 2353 @mouseenter="openMenu()" class="menu-submenu-btn"> 2354 <span class="sr-only">Toggle Garden submenu</span> 2355 <svg 2356 :class="{ '-rotate-90': subOpen }" 2357 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2358 aria-hidden="true" 2359 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2360 stroke-linejoin="round"> 2361 <path d="m6 9 6 6 6-6"/> 2362 </svg> 2363 </button> 2364 </div> 2365 2366 2367 2368 2369 <div x-show="subOpen" 2370 x-ref="submenu" x-transition:enter="transition ease-out duration-200" 2371 x-transition:enter-start="opacity-0 " 2372 x-transition:enter-end="opacity-100 " 2373 x-transition:leave="transition ease-in duration-150" 2374 x-transition:leave-start="opacity-100 " 2375 x-transition:leave-end="opacity-0 " 2376 class=" menu-submenu-desktop " 2377 style="display: none;"> 2378 2379 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2380 href="/garden-ponds/pond-kits" 2381 > 2382 Pond Kits 2383 </a> 2384 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2385 href="/garden-ponds/water-features" 2386 > 2387 Water Features 2388 </a> 2389 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2390 href="/garden-ponds/ponds" 2391 > 2392 Ponds 2393 </a> 2394 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2395 href="/garden-ponds/rocks" 2396 > 2397 Landscape Rocks 2398 </a> 2399 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2400 href="/coolers" 2401 > 2402 Coolers 2403 </a> 2404 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2405 href="/garden-ponds/plants" 2406 > 2407 Plants 2408 </a> 2409 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2410 href="/garden-ponds/tree-products" 2411 > 2412 Tree Products 2413 </a> 2414 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2415 href="/garden-ponds/floating" 2416 > 2417 Floating Products 2418 </a> 2419 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2420 href="/garden-ponds/accessories" 2421 > 2422 Accessories 2423 </a> 2424 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2425 href="/garden-ponds/accessories/pumps" 2426 > 2427 Pumps 2428 </a> 2429 <a class="menu-nested-link pl-6 sm:pl-3 w-full min-w-40 max-w-64 break-words" 2430 href="/request-sample" 2431 > 2432 Request Sample 2433 </a> 2434 </div> 2435 </div> 2436 <a class="menu-nested-link " 2437 href="/rock-wall-panels" 2438 > 2439 Rock Wall Panels 2440 </a> 2441 </div> 2442 </div> 2443 <div class="menu-simple-link-container"> 2444 <a class="menu-simple-link hover:md:text-primary" 2445 href="/swimming-pools/waterfall-kits" 2446 > 2447 Pool Waterfalls 2448 </a> 2449 </div> 2450 <div x-data="{ 2451 open: false, 2452 closeTimeout: null, 2453 openMenu() { 2454 clearTimeout(this.closeTimeout); 2455 this.open = true; 2456 }, 2457 closeMenu() { 2458 this.closeTimeout = setTimeout(() => { 2459 this.open = false;
2460 }, 50); 2461 }, 2462 2463 positionDropdown: function() { 2464 const rect = this.$el.getBoundingClientRect(); 2465 const dropdown = this.$refs.dropdown; 2466 if (!dropdown) return; 2467 2468 dropdown.style.left = ''; 2469 dropdown.style.right = ''; 2470 2471 const rightSpace = window.innerWidth - rect.left; 2472 const leftSpace = rect.right; 2473 2474 if (rightSpace >= 300) { 2475 dropdown.style.left = '0'; 2476 } else if (leftSpace >= 300) { 2477 dropdown.style.right = '0'; 2478 } else { 2479 dropdown.style.left = '0'; 2480 } 2481 }, 2482 positionBridge: function() { 2483 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 2484 const dropdown = this.$refs.dropdown; 2485 const bridge = this.$refs.bridge; 2486 2487 if (!menuItem || !dropdown || !bridge) return; 2488 2489 const menuRect = menuItem.getBoundingClientRect(); 2490 const dropdownRect = dropdown.getBoundingClientRect(); 2491 const parentRect = this.$el.getBoundingClientRect(); 2492 2493 // Calculate the gap between menu item bottom and dropdown top 2494 const gap = dropdownRect.top - menuRect.bottom; 2495 2496 if (gap > 0) { 2497 bridge.style.position = 'absolute'; 2498 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 2499 bridge.style.left = '0'; 2500 bridge.style.width = '100%'; 2501 // Add a few extra pixels to overlap with the dropdown 2502 bridge.style.height = (gap + 10) + 'px'; 2503 bridge.style.zIndex = '40'; 2504 } 2505 }, 2506 2507 }" 2508 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2509 @click.away="closeMenu()" 2510 2511 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 2512 class="menu-dropdown-parent"> 2513 2514 2515 2516 <div class="menu-item-top-container"> 2517 <a href="/rock-wall-panels" 2518 class="menu-item-top-link" 2519 :class="{ 'text-primary' : open }"> 2520 Faux Stone Panels 2521 </a> 2522 <button type="button" 2523 @click.prevent="open = !open" 2524 :aria-expanded="open.toString()" 2525 class="menu-item-top-btn"> 2526 <span class="sr-only">Toggle Faux Stone Panels dropdown</span> 2527 <svg :class="{ 'rotate-180': open }" 2528 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2529 aria-hidden="true" 2530 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2531 stroke-linejoin="round"> 2532 <path d="m6 9 6 6 6-6"/> 2533 </svg> 2534 </button> 2535 </div> 2536 2537 2538 <div x-show="open" 2539 x-ref="bridge" 2540 class="menu-hover-bridge" 2541 x-cloak></div> 2542 2543 2544 <div x-show="open" 2545 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 2546 x-transition:enter-start="opacity-0 scale-95" 2547 x-transition:enter-end="opacity-100 scale-100" 2548 x-transition:leave="transition ease-in duration-150" 2549 x-transition:leave-start="opacity-100 scale-100" 2550 x-transition:leave-end="opacity-0 scale-95" 2551 class=" menu-dropdown-desktop " 2552 style="display: none;"> 2553 2554 <a class="menu-nested-link " 2555 href="/home-rock-panels" 2556 > 2557 Home Rock Panels 2558 </a> 2559 </div> 2560 </div> 2561 <div class="menu-simple-link-container"> 2562 <a class="menu-simple-link hover:md:text-primary" 2563 href="/fish/backgrounds" 2564 >
2565 3D Backgrounds 2566 </a> 2567 </div> 2568 <div x-data="{ 2569 open: false, 2570 closeTimeout: null, 2571 openMenu() { 2572 clearTimeout(this.closeTimeout); 2573 this.open = true; 2574 }, 2575 closeMenu() { 2576 this.closeTimeout = setTimeout(() => { 2577 this.open = false; 2578 }, 50); 2579 }, 2580 2581 positionDropdown: function() { 2582 const rect = this.$el.getBoundingClientRect(); 2583 const dropdown = this.$refs.dropdown; 2584 if (!dropdown) return; 2585 2586 dropdown.style.left = ''; 2587 dropdown.style.right = ''; 2588 2589 const rightSpace = window.innerWidth - rect.left; 2590 const leftSpace = rect.right; 2591 2592 if (rightSpace >= 300) { 2593 dropdown.style.left = '0'; 2594 } else if (leftSpace >= 300) { 2595 dropdown.style.right = '0'; 2596 } else { 2597 dropdown.style.left = '0'; 2598 } 2599 }, 2600 positionBridge: function() { 2601 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 2602 const dropdown = this.$refs.dropdown; 2603 const bridge = this.$refs.bridge; 2604 2605 if (!menuItem || !dropdown || !bridge) return; 2606 2607 const menuRect = menuItem.getBoundingClientRect(); 2608 const dropdownRect = dropdown.getBoundingClientRect(); 2609 const parentRect = this.$el.getBoundingClientRect(); 2610 2611 // Calculate the gap between menu item bottom and dropdown top 2612 const gap = dropdownRect.top - menuRect.bottom; 2613 2614 if (gap > 0) { 2615 bridge.style.position = 'absolute'; 2616 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 2617 bridge.style.left = '0'; 2618 bridge.style.width = '100%'; 2619 // Add a few extra pixels to overlap with the dropdown 2620 bridge.style.height = (gap + 10) + 'px'; 2621 bridge.style.zIndex = '40'; 2622 } 2623 }, 2624 2625 }" 2626 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2627 @click.away="closeMenu()" 2628 2629 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 2630 class="menu-dropdown-parent"> 2631 2632 2633 2634 <div class="menu-item-top-container"> 2635 <div class="menu-item-top-link menu-item-top-placeholder"> 2636 Commercial 2637 </div> 2638 <button type="button" 2639 @click.prevent="open = !open" 2640 :aria-expanded="open.toString()" 2641 class="menu-item-top-btn"> 2642 <span class="sr-only">Toggle Commercial dropdown</span> 2643 <svg :class="{ 'rotate-180': open }" 2644 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2645 aria-hidden="true" 2646 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2647 stroke-linejoin="round"> 2648 <path d="m6 9 6 6 6-6"/> 2649 </svg> 2650 </button> 2651 </div> 2652 2653 2654 <div x-show="open" 2655 x-ref="bridge" 2656 class="menu-hover-bridge" 2657 x-cloak></div> 2658 2659 2660 <div x-show="open" 2661 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 2662 x-transition:enter-start="opacity-0 scale-95" 2663 x-transition:enter-end="opacity-100 scale-100" 2664 x-transition:leave="transition ease-in duration-150" 2665 x-transition:leave-start="opacity-100 scale-100" 2666 x-transition:leave-end="opacity-0 scale-95" 2667 class=" menu-dropdown-desktop " 2668 style="display: none;"> 2669 2670 <a class="menu-nested-link " 2671 href="/rock-wall-panels" 2672 > 2673 Faux Stone Panels 2674 </a> 2675 <a class="menu-nested-link " 2676 href="/request-sample" 2677 > 2678 Request Sample 2679 </a> 2680 <a class="menu-nested-link " 2681 href="/dealer" 2682 > 2683 Vendor Form 2684 </a> 2685 </div> 2686 </div> 2687 <div class="menu-simple-link-container"> 2688 <a class="menu-simple-link hover:md:text-primary" 2689 href="/request-sample" 2690 > 2691 Samples 2692 </a> 2693 </div> 2694 <div x-data="{ 2695 open: false, 2696 closeTimeout: null, 2697 openMenu() { 2698 clearTimeout(this.closeTimeout); 2699 this.open = true; 2700 }, 2701 closeMenu() { 2702 this.closeTimeout = setTimeout(() => { 2703 this.open = false;
2704 }, 50); 2705 }, 2706 2707 positionDropdown: function() { 2708 const rect = this.$el.getBoundingClientRect(); 2709 const dropdown = this.$refs.dropdown; 2710 if (!dropdown) return; 2711 2712 dropdown.style.left = ''; 2713 dropdown.style.right = ''; 2714 2715 const rightSpace = window.innerWidth - rect.left; 2716 const leftSpace = rect.right; 2717 2718 if (rightSpace >= 300) { 2719 dropdown.style.left = '0'; 2720 } else if (leftSpace >= 300) { 2721 dropdown.style.right = '0'; 2722 } else { 2723 dropdown.style.left = '0'; 2724 } 2725 }, 2726 positionBridge: function() { 2727 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 2728 const dropdown = this.$refs.dropdown; 2729 const bridge = this.$refs.bridge; 2730 2731 if (!menuItem || !dropdown || !bridge) return; 2732 2733 const menuRect = menuItem.getBoundingClientRect(); 2734 const dropdownRect = dropdown.getBoundingClientRect(); 2735 const parentRect = this.$el.getBoundingClientRect(); 2736 2737 // Calculate the gap between menu item bottom and dropdown top 2738 const gap = dropdownRect.top - menuRect.bottom; 2739 2740 if (gap > 0) { 2741 bridge.style.position = 'absolute'; 2742 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 2743 bridge.style.left = '0'; 2744 bridge.style.width = '100%'; 2745 // Add a few extra pixels to overlap with the dropdown 2746 bridge.style.height = (gap + 10) + 'px'; 2747 bridge.style.zIndex = '40'; 2748 } 2749 }, 2750 2751 }" 2752 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2753 @click.away="closeMenu()" 2754 2755 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 2756 class="menu-dropdown-parent"> 2757 2758 2759 2760 <div class="menu-item-top-container"> 2761 <div class="menu-item-top-link menu-item-top-placeholder"> 2762 Info 2763 </div> 2764 <button type="button" 2765 @click.prevent="open = !open" 2766 :aria-expanded="open.toString()" 2767 class="menu-item-top-btn"> 2768 <span class="sr-only">Toggle Info dropdown</span> 2769 <svg :class="{ 'rotate-180': open }" 2770 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2771 aria-hidden="true" 2772 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2773 stroke-linejoin="round"> 2774 <path d="m6 9 6 6 6-6"/> 2775 </svg> 2776 </button> 2777 </div> 2778 2779 2780 <div x-show="open" 2781 x-ref="bridge" 2782 class="menu-hover-bridge" 2783 x-cloak></div> 2784 2785 2786 <div x-show="open" 2787 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 2788 x-transition:enter-start="opacity-0 scale-95" 2789 x-transition:enter-end="opacity-100 scale-100" 2790 x-transition:leave="transition ease-in duration-150" 2791 x-transition:leave-start="opacity-100 scale-100" 2792 x-transition:leave-end="opacity-0 scale-95" 2793 class=" menu-dropdown-desktop " 2794 style="display: none;"> 2795 2796 <a class="menu-nested-link " 2797 href="/order-status" 2798 > 2799 Order Status 2800 </a> 2801 <a class="menu-nested-link " 2802 href="/faqs" 2803 > 2804 FAQs 2805 </a> 2806 <a class="menu-nested-link " 2807 href="/videos" 2808 > 2809 Videos 2810 </a> 2811 <a class="menu-nested-link " 2812 href="/faqs/installation" 2813 >
2814 Installation Instructions 2815 </a> 2816 <a class="menu-nested-link " 2817 href="/brochures" 2818 > 2819 Brochures 2820 </a> 2821 <a class="menu-nested-link " 2822 href="/financing" 2823 > 2824 Financing 2825 </a> 2826 <a class="menu-nested-link " 2827 href="https://universalrocks.com/blog/warranty" 2828 > 2829 Warranty 2830 </a> 2831 <a class="menu-nested-link " 2832 href="/return-policy" 2833 > 2834 Return Policy 2835 </a> 2836 <a class="menu-nested-link " 2837 href="/pictures" 2838 > 2839 Gallery 2840 </a> 2841 <a class="menu-nested-link " 2842 href="https://universalrocks.com/blog" 2843 > 2844 Our Blog 2845 </a> 2846 <a class="menu-nested-link " 2847 href="/testimonials" 2848 > 2849 Testimonials 2850 </a> 2851 <a class="menu-nested-link " 2852 href="/about-us" 2853 > 2854 About Us 2855 </a> 2856 </div> 2857 </div> 2858 <div x-data="{ 2859 open: false, 2860 closeTimeout: null, 2861 openMenu() { 2862 clearTimeout(this.closeTimeout); 2863 this.open = true; 2864 }, 2865 closeMenu() { 2866 this.closeTimeout = setTimeout(() => { 2867 this.open = false; 2868 }, 50); 2869 }, 2870 2871 positionDropdown: function() { 2872 const rect = this.$el.getBoundingClientRect(); 2873 const dropdown = this.$refs.dropdown; 2874 if (!dropdown) return; 2875 2876 dropdown.style.left = ''; 2877 dropdown.style.right = ''; 2878 2879 const rightSpace = window.innerWidth - rect.left; 2880 const leftSpace = rect.right; 2881 2882 if (rightSpace >= 300) { 2883 dropdown.style.left = '0'; 2884 } else if (leftSpace >= 300) { 2885 dropdown.style.right = '0'; 2886 } else { 2887 dropdown.style.left = '0'; 2888 } 2889 }, 2890 positionBridge: function() { 2891 const menuItem = this.$el.querySelector('.menu-item-top-container, .menu-item-top-placeholder-btn'); 2892 const dropdown = this.$refs.dropdown; 2893 const bridge = this.$refs.bridge; 2894 2895 if (!menuItem || !dropdown || !bridge) return; 2896 2897 const menuRect = menuItem.getBoundingClientRect(); 2898 const dropdownRect = dropdown.getBoundingClientRect(); 2899 const parentRect = this.$el.getBoundingClientRect(); 2900 2901 // Calculate the gap between menu item bottom and dropdown top 2902 const gap = dropdownRect.top - menuRect.bottom; 2903 2904 if (gap > 0) { 2905 bridge.style.position = 'absolute'; 2906 bridge.style.top = (menuRect.bottom - parentRect.top) + 'px'; 2907 bridge.style.left = '0'; 2908 bridge.style.width = '100%'; 2909 // Add a few extra pixels to overlap with the dropdown 2910 bridge.style.height = (gap + 10) + 'px'; 2911 bridge.style.zIndex = '40'; 2912 } 2913 }, 2914 2915 }" 2916 @mouseenter="openMenu()" @mouseleave="closeMenu()" @focusin="openMenu()" @focusout="if (! $el.contains($event.relatedTarget)) closeMenu()" @keydown.escape="closeMenu()" 2917 @click.away="closeMenu()" 2918 2919 x-init="$watch('open', value => { if (value) { setTimeout(function(){ positionBridge(); positionDropdown(); }, 10); } })" 2920 class="menu-dropdown-parent"> 2921 2922 2923 2924 <div class="menu-item-top-container"> 2925 <a href="/contact" 2926 class="menu-item-top-link" 2927 :class="{ 'text-primary' : open }"> 2928 Contact 2929 </a> 2930 <button type="button" 2931 @click.prevent="open = !open" 2932 :aria-expanded="open.toString()" 2933 class="menu-item-top-btn">
2934 <span class="sr-only">Toggle Contact dropdown</span> 2935 <svg :class="{ 'rotate-180': open }" 2936 class="menu-chevron-icon" xmlns="http://www.w3.org/2000/svg" 2937 aria-hidden="true" 2938 width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 2939 stroke-linejoin="round"> 2940 <path d="m6 9 6 6 6-6"/> 2941 </svg> 2942 </button> 2943 </div> 2944 2945 2946 <div x-show="open" 2947 x-ref="bridge" 2948 class="menu-hover-bridge" 2949 x-cloak></div> 2950 2951 2952 <div x-show="open" 2953 x-ref="dropdown" x-transition:enter="transition ease-out duration-200" 2954 x-transition:enter-start="opacity-0 scale-95" 2955 x-transition:enter-end="opacity-100 scale-100" 2956 x-transition:leave="transition ease-in duration-150" 2957 x-transition:leave-start="opacity-100 scale-100" 2958 x-transition:leave-end="opacity-0 scale-95" 2959 class=" menu-dropdown-desktop " 2960 style="display: none;"> 2961 2962 <a class="menu-nested-link " 2963 href="/dealers" 2964 > 2965 Find a Dealer 2966 </a> 2967 <a class="menu-nested-link " 2968 href="/dealer" 2969 > 2970 Seller Qualification Form 2971 </a> 2972 <a class="menu-nested-link " 2973 href="/installations" 2974 > 2975 Installations 2976 </a> 2977 <a class="menu-nested-link " 2978 href="/international-shipping" 2979 > 2980 International Shipping Quote 2981 </a> 2982 <a class="menu-nested-link " 2983 href="/careers" 2984 > 2985 Careers 2986 </a> 2987 <a class="menu-nested-link " 2988 href="/influencer" 2989 > 2990 Influencer Form 2991 </a> 2992 </div> 2993 </div> 2994 </div> 2995 </div> 2996 2997 <!-- Mobile Full Screen Menu --> 2998 <div x-cloak x-show="mobileMenuOpen" x-transition:enter="transition ease-out duration-300" 2999 x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" 3000 x-transition:leave="transition ease-in duration-150" x-transition:leave-start="opacity-100" 3001 x-transition:leave-end="opacity-0" class="mobile-overlay"> 3002 3003 <!-- Mobile Menu Header --> 3004 <div class="mobile-header"> 3005 <h2 class="mobile-title">Menu</h2> 3006 <button @click="mobileMenuOpen = false" class="mobile-close-btn"> 3007 <span class="sr-only">Close menu</span> 3008 <svg class="mobile-close-icon" xmlns="http://www.w3.org/2000/svg" 3009 aria-hidden="true" 3010 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3011 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" 3012 d="M6 18L18 6M6 6l12 12"/> 3013 </svg> 3014 </button> 3015 </div> 3016 3017 <div class="mobile-content"> 3018 <ul class="menu-tree-list" 3019 x-data="{ 3020 openItems: {}, 3021 toggleItem(key) { 3022 this.openItems[key] = !this.openItems[key]; 3023 } 3024 }" 3025 > 3026 <li class="menu-tree-item"> 3027 <div> 3028 3029 <div class="menu-tree-level1-btn menu-tree-row"> 3030 <a href="/crawler-course" 3031 class="menu-tree-parent-link menu-tree-level1-title"> 3032 Crawler Course 3033 </a> 3034 <button type="button" 3035 @click="toggleItem('item-3964')" 3036 :aria-expanded="openItems['item-3964'] ? 'true' : 'false'" 3037 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush">
3038 <span class="sr-only">Toggle Crawler Course submenu</span> 3039 <svg xmlns="http://www.w3.org/2000/svg" 3040 class="menu-tree-level1-icon" 3041 :class="{ 'rotate-90': openItems['item-3964'] }" 3042 aria-hidden="true" 3043 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3044 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3045 </svg> 3046 </button> 3047 </div> 3048 3049 3050 <div x-cloak 3051 x-show="openItems['item-3964']" 3052 x-transition:enter="transition-all ease-out duration-200" 3053 x-transition:enter-start="transform scale-y-0 origin-top" 3054 x-transition:enter-end="transform scale-y-100 origin-top" 3055 x-transition:leave="transition-all ease-in duration-150" 3056 x-transition:leave-start="transform scale-y-100 origin-top" 3057 x-transition:leave-end="transform scale-y-0 origin-top" 3058 class="menu-tree-level1-submenu"> 3059 <ul class="menu-tree-level1-list"> 3060 <li> 3061 3062 <a href="/crawler-course" 3063 class="menu-tree-link-level2"> 3064 Crawler Course 3065 </a> 3066 </li> 3067 <li> 3068 3069 <a href="/crawler-course/crawler-accessories" 3070 class="menu-tree-link-level2"> 3071 RC Crawler Accessories 3072 </a> 3073 </li> 3074 </ul> 3075 </div> 3076 </div> 3077 </li> 3078 <li class="menu-tree-item"> 3079 <div> 3080 3081 <button type="button" 3082 @click="toggleItem('item-3967')" 3083 :aria-expanded="openItems['item-3967'] ? 'true' : 'false'" 3084 class="menu-tree-level1-btn"> 3085 <span class="menu-tree-level1-title">Shop by Pet</span> 3086 <svg xmlns="http://www.w3.org/2000/svg" 3087 class="menu-tree-level1-icon" 3088 :class="{ 'rotate-90': openItems['item-3967'] }" 3089 aria-hidden="true" 3090 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3091 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3092 </svg> 3093 </button> 3094 3095 3096 <div x-cloak 3097 x-show="openItems['item-3967']" 3098 x-transition:enter="transition-all ease-out duration-200" 3099 x-transition:enter-start="transform scale-y-0 origin-top" 3100 x-transition:enter-end="transform scale-y-100 origin-top" 3101 x-transition:leave="transition-all ease-in duration-150" 3102 x-transition:leave-start="transform scale-y-100 origin-top" 3103 x-transition:leave-end="transform scale-y-0 origin-top" 3104 class="menu-tree-level1-submenu"> 3105 <ul class="menu-tree-level1-list"> 3106 <li> 3107 <div> 3108 3109 <div class="menu-tree-level2-btn menu-tree-row"> 3110 <a href="/fish" 3111 class="menu-tree-parent-link menu-tree-level2-title"> 3112 Fish 3113 </a> 3114 <button type="button" 3115 @click="toggleItem('item-3968')" 3116 :aria-expanded="openItems['item-3968'] ? 'true' : 'false'" 3117 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush"> 3118 <span class="sr-only">
3118Toggle Fish submenu</span> 3119 <svg xmlns="http://www.w3.org/2000/svg" 3120 class="menu-tree-level2-icon" 3121 :class="{ 'rotate-90': openItems['item-3968'] }" 3122 aria-hidden="true" 3123 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3124 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3125 </svg> 3126 </button> 3127 </div> 3128 3129 3130 <div x-cloak 3131 x-show="openItems['item-3968']" 3132 x-transition:enter="transition-all ease-out duration-200" 3133 x-transition:enter-start="transform scale-y-0 origin-top" 3134 x-transition:enter-end="transform scale-y-100 origin-top" 3135 x-transition:leave="transition-all ease-in duration-150" 3136 x-transition:leave-start="transform scale-y-100 origin-top" 3137 x-transition:leave-end="transform scale-y-0 origin-top" 3138 class="menu-tree-level2-submenu"> 3139 <ul class="menu-tree-level2-list"> 3140 <li> 3141 3142 <a href="/fish/backgrounds" 3143 class="menu-tree-link-level3"> 3144 Backgrounds 3145 </a> 3146 </li> 3147 <li> 3148 3149 <a href="/fish/rocks" 3150 class="menu-tree-link-level3"> 3151 Rocks 3152 </a> 3153 </li> 3154 <li> 3155 3156 <a href="/fish/tree" 3157 class="menu-tree-link-level3"> 3158 Tree Products 3159 </a> 3160 </li> 3161 <li> 3162 3163 <a href="/fish/heater-covers" 3164 class="menu-tree-link-level3"> 3165 Heater Covers 3166 </a> 3167 </li> 3168 <li> 3169 3170 <a href="/fish/artificial-plants" 3171 class="menu-tree-link-level3"> 3172 Artificial Plants 3173 </a> 3174 </li> 3175 <li> 3176 3177 <a href="/fish/fish-accessories" 3178 class="menu-tree-link-level3"> 3179 Fish Accessories 3180 </a> 3181 </li> 3182 <li> 3183 3184 <a href="/request-sample" 3185 class="menu-tree-link-level3"> 3186 Request Sample 3187 </a> 3188 </li> 3189 </ul> 3190 </div> 3191 </div> 3192 </li> 3193 <li> 3194 <div> 3195 3196 <div class="menu-tree-level2-btn menu-tree-row"> 3197 <a href="/reptiles" 3198 class="menu-tree-parent-link menu-tree-level2-title"> 3199 Reptiles 3200 </a> 3201 <button type="button" 3202 @click="toggleItem('item-3976')" 3203 :aria-expanded="openItems['item-3976'] ? 'true' : 'false'" 3204 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush"> 3205 <span class="sr-only">Toggle Reptiles submenu</span> 3206 <svg xmlns="http://www.w3.org/2000/svg" 3207 class="menu-tree-level2-icon" 3208 :class="{ 'rotate-90': openItems['item-3976'] }" 3209 aria-hidden="true" 3210 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3211 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3212 </svg> 3213 </button> 3214 </div> 3215 3216 3217 <div x-cloak 3218 x-show="openItems['item-3976']" 3219 x-transition:enter="transition-all ease-out duration-200" 3220 x-transition:enter-start="transform scale-y-0 origin-top" 3221 x-transition:enter-end="transform scale-y-100 origin-top" 3222 x-transition:leave="transition-all ease-in duration-150" 3223 x-transition:leave-start="transform scale-y-100 origin-top" 3224 x-transition:leave-end="transform scale-y-0 origin-top" 3225 class="menu-tree-level2-submenu"> 3226 <ul class="menu-tree-level2-list"> 3227 <li> 3228 3229 <a href="/reptiles/backgrounds" 3230 class="menu-tree-link-level3">
3231 Backgrounds 3232 </a> 3233 </li> 3234 <li> 3235 3236 <a href="/reptiles/rocks" 3237 class="menu-tree-link-level3"> 3238 Rocks/Hides 3239 </a> 3240 </li> 3241 <li> 3242 3243 <a href="/reptiles/ledges" 3244 class="menu-tree-link-level3"> 3245 Ledges 3246 </a> 3247 </li> 3248 <li> 3249 3250 <a href="/reptiles/reptile-tree-products" 3251 class="menu-tree-link-level3"> 3252 Tree Products 3253 </a> 3254 </li> 3255 <li> 3256 3257 <a href="/zoo/vines" 3258 class="menu-tree-link-level3"> 3259 Vines 3260 </a> 3261 </li> 3262 <li> 3263 3264 <a href="/reptiles/food-water-bowls" 3265 class="menu-tree-link-level3"> 3266 Bowls 3267 </a> 3268 </li> 3269 <li> 3270 3271 <a href="/zoo/ponds" 3272 class="menu-tree-link-level3"> 3273 Ponds 3274 </a> 3275 </li> 3276 <li> 3277 3278 <a href="/garden-ponds/floating" 3279 class="menu-tree-link-level3"> 3280 Floating Products 3281 </a> 3282 </li> 3283 <li> 3284 3285 <a href="/reptiles/reptile-accessories" 3286 class="menu-tree-link-level3"> 3287 Reptile Accessories 3288 </a> 3289 </li> 3290 <li> 3291 3292 <a href="/request-sample" 3293 class="menu-tree-link-level3"> 3294 Request Sample 3295 </a> 3296 </li> 3297 </ul> 3298 </div> 3299 </div> 3300 </li> 3301 <li> 3302 <div> 3303 3304 <div class="menu-tree-level2-btn menu-tree-row"> 3305 <a href="/zoo" 3306 class="menu-tree-parent-link menu-tree-level2-title"> 3307 Zoo Animals 3308 </a> 3309 <button type="button" 3310 @click="toggleItem('item-3987')" 3311 :aria-expanded="openItems['item-3987'] ? 'true' : 'false'" 3312 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush"> 3313 <span class="sr-only">Toggle Zoo Animals submenu</span> 3314 <svg xmlns="http://www.w3.org/2000/svg" 3315 class="menu-tree-level2-icon" 3316 :class="{ 'rotate-90': openItems['item-3987'] }" 3317 aria-hidden="true" 3318 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3319 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3320 </svg> 3321 </button> 3322 </div> 3323 3324 3325 <div x-cloak 3326 x-show="openItems['item-3987']" 3327 x-transition:enter="transition-all ease-out duration-200" 3328 x-transition:enter-start="transform scale-y-0 origin-top" 3329 x-transition:enter-end="transform scale-y-100 origin-top" 3330 x-transition:leave="transition-all ease-in duration-150" 3331 x-transition:leave-start="transform scale-y-100 origin-top" 3332 x-transition:leave-end="transform scale-y-0 origin-top" 3333 class="menu-tree-level2-submenu"> 3334 <ul class="menu-tree-level2-list"> 3335 <li> 3336 3337 <a href="/reptiles/food-water-bowls" 3338 class="menu-tree-link-level3"> 3339 Food & Water Bowls 3340 </a> 3341 </li> 3342 <li> 3343 3344 <a href="/zoo/rocks" 3345 class="menu-tree-link-level3"> 3346 Rocks 3347 </a> 3348 </li> 3349 <li> 3350 3351 <a href="/zoo/ponds" 3352 class="menu-tree-link-level3"> 3353 Ponds 3354 </a> 3355 </li> 3356 <li> 3357 3358 <a href="/zoo/vines" 3359 class="menu-tree-link-level3"> 3360 Vines 3361 </a> 3362 </li> 3363 <li> 3364 3365 <a href="/reptiles/ledges" 3366 class="menu-tree-link-level3"> 3367 Ledges 3368 </a> 3369 </li> 3370 <li> 3371 3372 <a href="/fish/backgrounds/custom-backgrounds" 3373 class="menu-tree-link-level3">
3374 Small Enclosure Backgrounds 3375 </a> 3376 </li> 3377 <li> 3378 3379 <a href="/rock-wall-panels" 3380 class="menu-tree-link-level3"> 3381 Exhibit Rock Walls 3382 </a> 3383 </li> 3384 <li> 3385 3386 <a href="/garden-ponds/floating" 3387 class="menu-tree-link-level3"> 3388 Floating Products 3389 </a> 3390 </li> 3391 <li> 3392 3393 <a href="/reptiles/reptile-tree-products" 3394 class="menu-tree-link-level3"> 3395 Tree Products 3396 </a> 3397 </li> 3398 <li> 3399 3400 <a href="/zoo/zoo-accessories" 3401 class="menu-tree-link-level3"> 3402 Zoo Accessories 3403 </a> 3404 </li> 3405 <li> 3406 3407 <a href="/request-sample" 3408 class="menu-tree-link-level3"> 3409 Request Sample 3410 </a> 3411 </li> 3412 </ul> 3413 </div> 3414 </div> 3415 </li> 3416 <li> 3417 3418 <a href="/dogs-cats" 3419 class="menu-tree-link-level2"> 3420 Dogs & Cats 3421 </a> 3422 </li> 3423 </ul> 3424 </div> 3425 </div> 3426 </li> 3427 <li class="menu-tree-item"> 3428 <div> 3429 3430 <button type="button" 3431 @click="toggleItem('item-4000')" 3432 :aria-expanded="openItems['item-4000'] ? 'true' : 'false'" 3433 class="menu-tree-level1-btn"> 3434 <span class="menu-tree-level1-title">Shop Outdoors</span> 3435 <svg xmlns="http://www.w3.org/2000/svg" 3436 class="menu-tree-level1-icon" 3437 :class="{ 'rotate-90': openItems['item-4000'] }" 3438 aria-hidden="true" 3439 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3440 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3441 </svg> 3442 </button> 3443 3444 3445 <div x-cloak 3446 x-show="openItems['item-4000']" 3447 x-transition:enter="transition-all ease-out duration-200" 3448 x-transition:enter-start="transform scale-y-0 origin-top" 3449 x-transition:enter-end="transform scale-y-100 origin-top" 3450 x-transition:leave="transition-all ease-in duration-150" 3451 x-transition:leave-start="transform scale-y-100 origin-top" 3452 x-transition:leave-end="transform scale-y-0 origin-top" 3453 class="menu-tree-level1-submenu"> 3454 <ul class="menu-tree-level1-list"> 3455 <li> 3456 <div> 3457 3458 <div class="menu-tree-level2-btn menu-tree-row"> 3459 <a href="/swimming-pools" 3460 class="menu-tree-parent-link menu-tree-level2-title"> 3461 Pool 3462 </a> 3463 <button type="button" 3464 @click="toggleItem('item-4001')" 3465 :aria-expanded="openItems['item-4001'] ? 'true' : 'false'" 3466 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush"> 3467 <span class="sr-only">Toggle Pool submenu</span> 3468 <svg xmlns="http://www.w3.org/2000/svg" 3469 class="menu-tree-level2-icon" 3470 :class="{ 'rotate-90': openItems['item-4001'] }" 3471 aria-hidden="true" 3472 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3473 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3474 </svg> 3475 </button> 3476 </div> 3477 3478 3479 <div x-cloak 3480 x-show="openItems['item-4001']" 3481 x-transition:enter="transition-all ease-out duration-200" 3482 x-transition:enter-start="transform scale-y-0 origin-top" 3483 x-transition:enter-end="transform scale-y-100 origin-top" 3484 x-transition:leave="transition-all ease-in duration-150" 3485 x-transition:leave-start="transform scale-y-100 origin-top" 3486 x-transition:leave-end="transform scale-y-0 origin-top" 3487 class="menu-tree-level2-submenu"> 3488 <ul class="menu-tree-level2-list"> 3489 <li> 3490 3491 <a href="/swimming-pools/waterfall-kits" 3492 class="menu-tree-link-level3"> 3493 Waterfall Kits 3494 </a> 3495 </li> 3496 <li> 3497 3498 <a href="/swimming-pools/pool-waterfalls/rock-waterfalls" 3499 class="menu-tree-link-level3"> 3500 Natural Waterfalls 3501 </a> 3502 </li> 3503 <li> 3504 3505 <a href="/swimming-pools/pool-waterfalls/modern-waterfalls" 3506 class="menu-tree-link-level3"> 3507 Modern Waterfalls 3508 </a> 3509 </li> 3510 <li> 3511 3512 <a href="/swimming-pools/xl-pool-waterfalls" 3513 class="menu-tree-link-level3"> 3514 Grotto Waterfalls 3515 </a> 3516 </li> 3517 <li> 3518 3519 <a href="/swimming-pools/stone-cold-plunge-tub" 3520 class="menu-tree-link-level3"> 3521 Cold Plunge 3522 </a> 3523 </li> 3524 <li> 3525 3526 <a href="/swimming-pools/angel-wall" 3527 class="menu-tree-link-level3"> 3528 Slides 3529 </a> 3530 </li> 3531 <li> 3532 3533 <a href="/swimming-pools/steps" 3534 class="menu-tree-link-level3"> 3535 Steps 3536 </a> 3537 </li> 3538 <li> 3539 3540 <a href="/swimming-pools/rocks" 3541 class="menu-tree-link-level3"> 3542 Poolside Rocks 3543 </a> 3544 </li> 3545 <li> 3546 3547 <a href="/coolers" 3548 class="menu-tree-link-level3"> 3549 Coolers 3550 </a> 3551 </li> 3552 <li> 3553 3554 <a href="/swimming-pools/plants" 3555 class="menu-tree-link-level3"> 3556 Plants 3557 </a> 3558 </li> 3559 <li> 3560 3561 <a href="/swimming-pools/pool-accessories" 3562 class="menu-tree-link-level3"> 3563 Pool Accessories 3564 </a> 3565 </li> 3566 <li> 3567 3568 <a href="/request-sample" 3569 class="menu-tree-link-level3"> 3570 Request Sample 3571 </a> 3572 </li> 3573 </ul> 3574 </div> 3575 </div> 3576 </li> 3577 <li> 3578 <div> 3579 3580 <div class="menu-tree-level2-btn menu-tree-row"> 3581 <a href="/garden-ponds" 3582 class="menu-tree-parent-link menu-tree-level2-title"> 3583 Garden 3584 </a> 3585 <button type="button" 3586 @click="toggleItem('item-4014')" 3587 :aria-expanded="openItems['item-4014'] ? 'true' : 'false'" 3588 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush">
3589 <span class="sr-only">Toggle Garden submenu</span> 3590 <svg xmlns="http://www.w3.org/2000/svg" 3591 class="menu-tree-level2-icon" 3592 :class="{ 'rotate-90': openItems['item-4014'] }" 3593 aria-hidden="true" 3594 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3595 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3596 </svg> 3597 </button> 3598 </div> 3599 3600 3601 <div x-cloak 3602 x-show="openItems['item-4014']" 3603 x-transition:enter="transition-all ease-out duration-200" 3604 x-transition:enter-start="transform scale-y-0 origin-top" 3605 x-transition:enter-end="transform scale-y-100 origin-top" 3606 x-transition:leave="transition-all ease-in duration-150" 3607 x-transition:leave-start="transform scale-y-100 origin-top" 3608 x-transition:leave-end="transform scale-y-0 origin-top" 3609 class="menu-tree-level2-submenu"> 3610 <ul class="menu-tree-level2-list"> 3611 <li> 3612 3613 <a href="/garden-ponds/pond-kits" 3614 class="menu-tree-link-level3"> 3615 Pond Kits 3616 </a> 3617 </li> 3618 <li> 3619 3620 <a href="/garden-ponds/water-features" 3621 class="menu-tree-link-level3"> 3622 Water Features 3623 </a> 3624 </li> 3625 <li> 3626 3627 <a href="/garden-ponds/ponds" 3628 class="menu-tree-link-level3"> 3629 Ponds 3630 </a> 3631 </li> 3632 <li> 3633 3634 <a href="/garden-ponds/rocks" 3635 class="menu-tree-link-level3"> 3636 Landscape Rocks 3637 </a> 3638 </li> 3639 <li> 3640 3641 <a href="/coolers" 3642 class="menu-tree-link-level3"> 3643 Coolers 3644 </a> 3645 </li> 3646 <li> 3647 3648 <a href="/garden-ponds/plants" 3649 class="menu-tree-link-level3"> 3650 Plants 3651 </a> 3652 </li> 3653 <li> 3654 3655 <a href="/garden-ponds/tree-products" 3656 class="menu-tree-link-level3"> 3657 Tree Products 3658 </a> 3659 </li> 3660 <li> 3661 3662 <a href="/garden-ponds/floating" 3663 class="menu-tree-link-level3"> 3664 Floating Products 3665 </a> 3666 </li> 3667 <li> 3668 3669 <a href="/garden-ponds/accessories" 3670 class="menu-tree-link-level3"> 3671 Accessories 3672 </a> 3673 </li> 3674 <li> 3675 3676 <a href="/garden-ponds/accessories/pumps" 3677 class="menu-tree-link-level3"> 3678 Pumps 3679 </a> 3680 </li> 3681 <li> 3682 3683 <a href="/request-sample" 3684 class="menu-tree-link-level3"> 3685 Request Sample 3686 </a> 3687 </li> 3688 </ul> 3689 </div> 3690 </div> 3691 </li> 3692 <li> 3693 3694 <a href="/rock-wall-panels" 3695 class="menu-tree-link-level2"> 3696 Rock Wall Panels 3697 </a> 3698 </li> 3699 </ul> 3700 </div> 3701 </div> 3702 </li> 3703 <li class="menu-tree-item"> 3704 3705 <a href="/swimming-pools/waterfall-kits" 3706 class="menu-tree-link-level1"> 3707 Pool Waterfalls 3708 </a> 3709 </li> 3710 <li class="menu-tree-item"> 3711 <div> 3712 3713 <div class="menu-tree-level1-btn menu-tree-row"> 3714 <a href="/rock-wall-panels" 3715 class="menu-tree-parent-link menu-tree-level1-title"> 3716 Faux Stone Panels 3717 </a> 3718 <button type="button" 3719 @click="toggleItem('item-4028')" 3720 :aria-expanded="openItems['item-4028'] ? 'true' : 'false'" 3721 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush">
3722 <span class="sr-only">Toggle Faux Stone Panels submenu</span> 3723 <svg xmlns="http://www.w3.org/2000/svg" 3724 class="menu-tree-level1-icon" 3725 :class="{ 'rotate-90': openItems['item-4028'] }" 3726 aria-hidden="true" 3727 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3728 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3729 </svg> 3730 </button> 3731 </div> 3732 3733 3734 <div x-cloak 3735 x-show="openItems['item-4028']" 3736 x-transition:enter="transition-all ease-out duration-200" 3737 x-transition:enter-start="transform scale-y-0 origin-top" 3738 x-transition:enter-end="transform scale-y-100 origin-top" 3739 x-transition:leave="transition-all ease-in duration-150" 3740 x-transition:leave-start="transform scale-y-100 origin-top" 3741 x-transition:leave-end="transform scale-y-0 origin-top" 3742 class="menu-tree-level1-submenu"> 3743 <ul class="menu-tree-level1-list"> 3744 <li> 3745 3746 <a href="/home-rock-panels" 3747 class="menu-tree-link-level2"> 3748 Home Rock Panels 3749 </a> 3750 </li> 3751 </ul> 3752 </div> 3753 </div> 3754 </li> 3755 <li class="menu-tree-item"> 3756 3757 <a href="/fish/backgrounds" 3758 class="menu-tree-link-level1"> 3759 3D Backgrounds 3760 </a> 3761 </li> 3762 <li class="menu-tree-item"> 3763 <div> 3764 3765 <button type="button" 3766 @click="toggleItem('item-4031')" 3767 :aria-expanded="openItems['item-4031'] ? 'true' : 'false'" 3768 class="menu-tree-level1-btn"> 3769 <span class="menu-tree-level1-title">Commercial</span> 3770 <svg xmlns="http://www.w3.org/2000/svg" 3771 class="menu-tree-level1-icon" 3772 :class="{ 'rotate-90': openItems['item-4031'] }" 3773 aria-hidden="true" 3774 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3775 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3776 </svg> 3777 </button> 3778 3779 3780 <div x-cloak 3781 x-show="openItems['item-4031']" 3782 x-transition:enter="transition-all ease-out duration-200" 3783 x-transition:enter-start="transform scale-y-0 origin-top" 3784 x-transition:enter-end="transform scale-y-100 origin-top" 3785 x-transition:leave="transition-all ease-in duration-150" 3786 x-transition:leave-start="transform scale-y-100 origin-top" 3787 x-transition:leave-end="transform scale-y-0 origin-top" 3788 class="menu-tree-level1-submenu"> 3789 <ul class="menu-tree-level1-list"> 3790 <li> 3791 3792 <a href="/rock-wall-panels" 3793 class="menu-tree-link-level2"> 3794 Faux Stone Panels 3795 </a> 3796 </li> 3797 <li> 3798 3799 <a href="/request-sample" 3800 class="menu-tree-link-level2"> 3801 Request Sample 3802 </a> 3803 </li> 3804 <li> 3805 3806 <a href="/dealer" 3807 class="menu-tree-link-level2"> 3808 Vendor Form 3809 </a> 3810 </li> 3811 </ul> 3812 </div> 3813 </div> 3814 </li> 3815 <li class="menu-tree-item"> 3816 3817 <a href="/request-sample" 3818 class="menu-tree-link-level1"> 3819 Samples 3820 </a> 3821 </li> 3822 <li class="menu-tree-item"> 3823 <div> 3824 3825 <button type="button" 3826 @click="toggleItem('item-4036')" 3827 :aria-expanded="openItems['item-4036'] ? 'true' : 'false'" 3828 class="menu-tree-level1-btn">
3829 <span class="menu-tree-level1-title">Info</span> 3830 <svg xmlns="http://www.w3.org/2000/svg" 3831 class="menu-tree-level1-icon" 3832 :class="{ 'rotate-90': openItems['item-4036'] }" 3833 aria-hidden="true" 3834 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3835 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3836 </svg> 3837 </button> 3838 3839 3840 <div x-cloak 3841 x-show="openItems['item-4036']" 3842 x-transition:enter="transition-all ease-out duration-200" 3843 x-transition:enter-start="transform scale-y-0 origin-top" 3844 x-transition:enter-end="transform scale-y-100 origin-top" 3845 x-transition:leave="transition-all ease-in duration-150" 3846 x-transition:leave-start="transform scale-y-100 origin-top" 3847 x-transition:leave-end="transform scale-y-0 origin-top" 3848 class="menu-tree-level1-submenu"> 3849 <ul class="menu-tree-level1-list"> 3850 <li> 3851 3852 <a href="/order-status" 3853 class="menu-tree-link-level2"> 3854 Order Status 3855 </a> 3856 </li> 3857 <li> 3858 3859 <a href="/faqs" 3860 class="menu-tree-link-level2"> 3861 FAQs 3862 </a> 3863 </li> 3864 <li> 3865 3866 <a href="/videos" 3867 class="menu-tree-link-level2"> 3868 Videos 3869 </a> 3870 </li> 3871 <li> 3872 3873 <a href="/faqs/installation" 3874 class="menu-tree-link-level2"> 3875 Installation Instructions 3876 </a> 3877 </li> 3878 <li> 3879 3880 <a href="/brochures" 3881 class="menu-tree-link-level2"> 3882 Brochures 3883 </a> 3884 </li> 3885 <li> 3886 3887 <a href="/financing" 3888 class="menu-tree-link-level2"> 3889 Financing 3890 </a> 3891 </li> 3892 <li> 3893 3894 <a href="https://universalrocks.com/blog/warranty" 3895 class="menu-tree-link-level2"> 3896 Warranty 3897 </a> 3898 </li> 3899 <li> 3900 3901 <a href="/return-policy" 3902 class="menu-tree-link-level2"> 3903 Return Policy 3904 </a> 3905 </li> 3906 <li> 3907 3908 <a href="/pictures" 3909 class="menu-tree-link-level2"> 3910 Gallery 3911 </a> 3912 </li> 3913 <li> 3914 3915 <a href="https://universalrocks.com/blog" 3916 class="menu-tree-link-level2"> 3917 Our Blog 3918 </a> 3919 </li> 3920 <li> 3921 3922 <a href="/testimonials" 3923 class="menu-tree-link-level2"> 3924 Testimonials 3925 </a> 3926 </li> 3927 <li> 3928 3929 <a href="/about-us" 3930 class="menu-tree-link-level2"> 3931 About Us 3932 </a> 3933 </li> 3934 </ul> 3935 </div> 3936 </div> 3937 </li> 3938 <li class="menu-tree-item"> 3939 <div> 3940 3941 <div class="menu-tree-level1-btn menu-tree-row"> 3942 <a href="/contact" 3943 class="menu-tree-parent-link menu-tree-level1-title"> 3944 Contact 3945 </a> 3946 <button type="button" 3947 @click="toggleItem('item-4049')" 3948 :aria-expanded="openItems['item-4049'] ? 'true' : 'false'" 3949 class="menu-tree-toggle-btn menu-tree-toggle-btn-flush">
3950 <span class="sr-only">Toggle Contact submenu</span> 3951 <svg xmlns="http://www.w3.org/2000/svg" 3952 class="menu-tree-level1-icon" 3953 :class="{ 'rotate-90': openItems['item-4049'] }" 3954 aria-hidden="true" 3955 fill="none" viewBox="0 0 24 24" stroke="currentColor"> 3956 <path stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> 3957 </svg> 3958 </button> 3959 </div> 3960 3961 3962 <div x-cloak 3963 x-show="openItems['item-4049']" 3964 x-transition:enter="transition-all ease-out duration-200" 3965 x-transition:enter-start="transform scale-y-0 origin-top" 3966 x-transition:enter-end="transform scale-y-100 origin-top" 3967 x-transition:leave="transition-all ease-in duration-150" 3968 x-transition:leave-start="transform scale-y-100 origin-top" 3969 x-transition:leave-end="transform scale-y-0 origin-top" 3970 class="menu-tree-level1-submenu"> 3971 <ul class="menu-tree-level1-list"> 3972 <li> 3973 3974 <a href="/dealers" 3975 class="menu-tree-link-level2"> 3976 Find a Dealer 3977 </a> 3978 </li> 3979 <li> 3980 3981 <a href="/dealer" 3982 class="menu-tree-link-level2"> 3983 Seller Qualification Form 3984 </a> 3985 </li> 3986 <li> 3987 3988 <a href="/installations" 3989 class="menu-tree-link-level2"> 3990 Installations 3991 </a> 3992 </li> 3993 <li> 3994 3995 <a href="/international-shipping" 3996 class="menu-tree-link-level2"> 3997 International Shipping Quote 3998 </a> 3999 </li> 4000 <li> 4001 4002 <a href="/careers" 4003 class="menu-tree-link-level2"> 4004 Careers 4005 </a> 4006 </li> 4007 <li> 4008 4009 <a href="/influencer" 4010 class="menu-tree-link-level2"> 4011 Influencer Form 4012 </a> 4013 </li> 4014 </ul> 4015 </div> 4016 </div> 4017 </li> 4018 </ul> 4019 </div> 4020 </div> 4021 </nav> 4022 </div> 4023</header> 4024</span></div> 4025</div> 4026</header> 4027<style> 4028 .header .menu-simple-link, 4029 .header .menu-item-top-link { 4030 text-transform: uppercase; 4031 font-size: 16px; 4032 color: #151515; 4033 padding: 0.5rem 0; 4034 font-weight: 300; 4035 } 4036 4037 .header .menu-item-top-btn { 4038 background-color: transparent; 4039 color: #151515; 4040 } 4041</style> 4042</div> 4043 </div> 4044 4045 <div class="px-4 mx-auto max-w-7xl"> 4046 <div class="w-full"></div> 4047 </div> 4048 <div class="w-full px-4 pb-12 mx-auto max-w-7xl"> 4049 <div class="main-content-wrapper"><div class="breadcrumb-title-wrapper mx-auto max-w-7xl"><h1 class="page-title">Search</h1> 4050</div> 4051 4052<p><span class="cms-widget"><div wire:key="lw-4258966139-0" wire:snapshot="{"data":{"hasPagination":true,"limit":20,"search":"","searchInput":"","minPrice":"","maxPrice":"","selectedCategories":[[],{"s":"arr"}],"selectedBrands":[[],{"s":"arr"}],"selectedTagValues":[[],{"s":"arr"}],"selectedVariantOptions":[[],{"s":"arr"}],"sortBy":"most_relevant","isLiquorMaxInstalled":false,"paginators":[{"page":1},{"s":"arr"}],"onSaleOnly":false,"showPrice":true,"showAddToCart":false,"showProductTags":false,"showAvailability":false,"hideUserOrdering":false,"categoryId":null,"brandId":null,"productsGroupId":null,"displayType":"grid","columns":3,"columnsPerSlide":3,"carouselSpeed":4,"hasBeverageFilters":false},"memo":{"id":"NoHKASBFlwNFF29z1G3b","name":"ProductSearch","path":"search","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"errors":[],"locale":"en","islands":[]},"checksum":"dff34f915653cd8330bac8bacd7dfdc5ce2543dd77118f4f311ba9f094d7b622"}" wire:effects="{"partials":[],"url":{"search":{"as":"q","use":"replace","alwaysShow":false,"except":""},"minPrice":{"as":"min_price","use":"replace","alwaysShow":false,"except":""},"maxPrice":{"as":"max_price","use":"replace","alwaysShow":false,"except":""},"selectedCategories":{"as":"categories","use":"replace","alwaysShow":false,"except":[]},"selectedBrands":{"as":"brands","use":"replace","alwaysShow":false,"except":[]},"selectedTagValues":{"as":"tags","use":"replace","alwaysShow":false,"except":[]},"selectedVariantOptions":{"as":"variant","use":"replace","alwaysShow":false,"except":[]},"sortBy":{"as":"sort","use":"replace","alwaysShow":false,"except":"most_relevant"},"paginators.page":{"as":"page","use":"push","alwaysShow":false,"except":null}}}" wire:id="NoHKASBFlwNFF29z1G3b" wire:name="ProductSearch" class="ecom-search-page" 4053 x-data="searchTracker()"> 4054 <!-- Search Input - Above Everything --> 4055 <div class="ecom-search-header"> 4056 <div class="ecom-search-input-wrapper"> 4057 <label class="ecom-search-label">Search Products</label> 4058 <div class="ecom-search-input-group"> 4059 <input 4060 type="text" 4061 name="search" 4062 placeholder="Search" 4063 class="ecom-search-input" 4064 wire:model.live.debounce.300ms="searchInput" 4065 /> 4066 <div class="ecom-search-input-icon"> 4067 <svg fill="none" stroke="currentColor" viewBox="0 0 24 24"> 4068 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" 4069 d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path> 4070 </svg> 4071 </div> 4072 </div> 4073 </div> 4074 4075 <!-- Sorting Section --> 4076 <div class="ecom-search-sort"> 4077 <div class="ecom-search-sort-inner"> 4078 <label class="ecom-search-label">Sort By</label> 4079 <select 4080 wire:model.live="sortBy" 4081 class="ecom-search-sort-select" 4082 > 4083 <option value="most_relevant">Most Relevant</option> 4084 <option value="price_desc">Price: High to Low</option> 4085 <option value="price_asc">Price: Low to High</option> 4086 <option value="newest">Newest Added</option> 4087 </select> 4088 </div> 4089 </div> 4090 </div> 4091 4092 <div class="ecom-search-layout"> 4093 <!-- Left Sidebar - Sorting and Filters --> 4094 <div class="ecom-search-sidebar" x-data="{ filtersExpanded: false }" 4095 x-init="filtersExpanded = window.innerWidth >= 1024"> 4096 4097 <!-- Filters Section --> 4098 <div class="ecom-search-filters-card"> 4099 <!-- Filters Header --> 4100 <div 4101 class="ecom-search-filters-header" 4102 @click="filtersExpanded = !filtersExpanded" 4103 > 4104 <div class="ecom-search-filters-header-inner"> 4105 <div class="ecom-search-filters-title-group"> 4106 <h2 class="ecom-search-filters-title">Filters</h2> 4107 </div> 4108 <div class="ecom-search-filters-actions"> 4109 <button 4110 wire:click="resetFilters" 4111 class="ecom-search-clear-btn ecom-search-clear-btn--desktop" 4112 title="Clear all filters (search will remain)" 4113 > 4114 Clear All 4115 </button> 4116 <!-- Mobile toggle indicator --> 4117 <div class="ecom-search-mobile-toggle">
4118 <span class="ecom-search-mobile-toggle-text" x-text="filtersExpanded ? 'Hide' : 'Show'"></span> 4119 <svg 4120 class="ecom-search-mobile-toggle-icon" 4121 :class="{ 'rotate-180': filtersExpanded }" 4122 fill="none" 4123 stroke="currentColor" 4124 viewBox="0 0 24 24" 4125 > 4126 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path> 4127 </svg> 4128 </div> 4129 </div> 4130 </div> 4131 </div> 4132 4133 <!-- Filters Content --> 4134 <div 4135 class="ecom-search-filters-content" 4136 :class="{ 'hidden lg:block': !filtersExpanded, 'block': filtersExpanded }" 4137 x-show="filtersExpanded" 4138 x-transition:enter="transition ease-out duration-200" 4139 x-transition:enter-start="opacity-0 -translate-y-2" 4140 x-transition:enter-end="opacity-100 translate-y-0" 4141 x-transition:leave="transition ease-in duration-150" 4142 x-transition:leave-start="opacity-100 translate-y-0" 4143 x-transition:leave-end="opacity-0 -translate-y-2" 4144 > 4145 <!-- Mobile Clear All Button --> 4146 <div class="ecom-search-mobile-clear"> 4147 <button 4148 wire:click="resetFilters" 4149 class="ecom-search-clear-btn" 4150 title="Clear all filters (search will remain)" 4151 > 4152 Clear All 4153 </button> 4154 </div> 4155 4156 <div class="ecom-search-filter-groups"> 4157 <!-- Price Range --> 4158 <div> 4159 <label class="ecom-search-price-label">Price Range</label> 4160 <div class="ecom-search-price-inputs"> 4161 <div class="ecom-search-price-input-wrapper"> 4162 <input 4163 type="number" 4164 min="0" 4165 step="0.01" 4166 placeholder="Min" 4167 class="ecom-search-price-input" 4168 wire:model.live.debounce.300ms="minPrice" 4169 /> 4170 </div> 4171 <span class="ecom-search-price-separator">-</span> 4172 <div class="ecom-search-price-input-wrapper"> 4173 <input 4174 type="number" 4175 min="0" 4176 step="0.01" 4177 placeholder="Max" 4178 class="ecom-search-price-input" 4179 wire:model.live.debounce.300ms="maxPrice" 4180 /> 4181 </div> 4182 </div> 4183 </div> 4184 4185 4186 <!-- Categories --> 4187 <div> 4188 <label class="ecom-search-filter-section-label">Categories</label> 4189 <div class="ecom-search-filter-list"> 4190 <label 4191 class="ecom-search-filter-item" 4192 style="padding-left: calc(0.5rem + 0rem);" 4193 > 4194 <input 4195 type="checkbox" 4196 value="180" 4197 class="ecom-search-checkbox" 4198 wire:model.live="selectedCategories" 4199 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 180) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4200 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4201 />
4202 <span class="ecom-search-filter-item-text">Coolers</span> 4203 </label> 4204 <label 4205 class="ecom-search-filter-item" 4206 style="padding-left: calc(0.5rem + 0rem);" 4207 > 4208 <input 4209 type="checkbox" 4210 value="184" 4211 class="ecom-search-checkbox" 4212 wire:model.live="selectedCategories" 4213 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 184) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4214 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4215 /> 4216 <span class="ecom-search-filter-item-text">Crawler Course</span> 4217 </label> 4218 <label 4219 class="ecom-search-filter-item" 4220 style="padding-left: calc(0.5rem + 0.75rem);" 4221 > 4222 <input 4223 type="checkbox" 4224 value="185" 4225 class="ecom-search-checkbox" 4226 wire:model.live="selectedCategories" 4227 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 185) || JSON.parse('[184]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4228 :disabled="JSON.parse('[184]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4229 /> 4230 <span class="ecom-search-filter-item-text">RC Crawler Accessories</span> 4231 </label> 4232 <label 4233 class="ecom-search-filter-item" 4234 style="padding-left: calc(0.5rem + 0rem);" 4235 > 4236 <input 4237 type="checkbox" 4238 value="179" 4239 class="ecom-search-checkbox" 4240 wire:model.live="selectedCategories" 4241 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 179) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4242 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4243 />
4244 <span class="ecom-search-filter-item-text">Dogs & Cats</span> 4245 </label> 4246 <label 4247 class="ecom-search-filter-item" 4248 style="padding-left: calc(0.5rem + 0rem);" 4249 > 4250 <input 4251 type="checkbox" 4252 value="81" 4253 class="ecom-search-checkbox" 4254 wire:model.live="selectedCategories" 4255 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 81) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4256 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4257 /> 4258 <span class="ecom-search-filter-item-text">Fish</span> 4259 </label> 4260 <label 4261 class="ecom-search-filter-item" 4262 style="padding-left: calc(0.5rem + 0.75rem);" 4263 > 4264 <input 4265 type="checkbox" 4266 value="18" 4267 class="ecom-search-checkbox" 4268 wire:model.live="selectedCategories" 4269 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 18) || JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4270 :disabled="JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4271 /> 4272 <span class="ecom-search-filter-item-text">Artificial Plants</span> 4273 </label> 4274 <label 4275 class="ecom-search-filter-item" 4276 style="padding-left: calc(0.5rem + 0.75rem);" 4277 > 4278 <input 4279 type="checkbox" 4280 value="7" 4281 class="ecom-search-checkbox" 4282 wire:model.live="selectedCategories" 4283 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 7) || JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4284 :disabled="JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4285 />
4286 <span class="ecom-search-filter-item-text">Backgrounds</span> 4287 </label> 4288 <label 4289 class="ecom-search-filter-item" 4290 style="padding-left: calc(0.5rem + 1.5rem);" 4291 > 4292 <input 4293 type="checkbox" 4294 value="186" 4295 class="ecom-search-checkbox" 4296 wire:model.live="selectedCategories" 4297 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 186) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4298 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4299 /> 4300 <span class="ecom-search-filter-item-text">Cliff Series</span> 4301 </label> 4302 <label 4303 class="ecom-search-filter-item" 4304 style="padding-left: calc(0.5rem + 1.5rem);" 4305 > 4306 <input 4307 type="checkbox" 4308 value="20" 4309 class="ecom-search-checkbox" 4310 wire:model.live="selectedCategories" 4311 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 20) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4312 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4313 /> 4314 <span class="ecom-search-filter-item-text">Crevice Style</span> 4315 </label> 4316 <label 4317 class="ecom-search-filter-item" 4318 style="padding-left: calc(0.5rem + 1.5rem);" 4319 > 4320 <input 4321 type="checkbox" 4322 value="21" 4323 class="ecom-search-checkbox" 4324 wire:model.live="selectedCategories" 4325 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 21) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4326 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4327 />
4328 <span class="ecom-search-filter-item-text">Custom Backgrounds</span> 4329 </label> 4330 <label 4331 class="ecom-search-filter-item" 4332 style="padding-left: calc(0.5rem + 1.5rem);" 4333 > 4334 <input 4335 type="checkbox" 4336 value="23" 4337 class="ecom-search-checkbox" 4338 wire:model.live="selectedCategories" 4339 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 23) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4340 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4341 /> 4342 <span class="ecom-search-filter-item-text">Ledge Style</span> 4343 </label> 4344 <label 4345 class="ecom-search-filter-item" 4346 style="padding-left: calc(0.5rem + 1.5rem);" 4347 > 4348 <input 4349 type="checkbox" 4350 value="26" 4351 class="ecom-search-checkbox" 4352 wire:model.live="selectedCategories" 4353 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 26) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4354 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4355 /> 4356 <span class="ecom-search-filter-item-text">Rocky Style</span> 4357 </label> 4358 <label 4359 class="ecom-search-filter-item" 4360 style="padding-left: calc(0.5rem + 1.5rem);" 4361 > 4362 <input 4363 type="checkbox" 4364 value="19" 4365 class="ecom-search-checkbox" 4366 wire:model.live="selectedCategories" 4367 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 19) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4368 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4369 />
4370 <span class="ecom-search-filter-item-text">Unique Backgrounds</span> 4371 </label> 4372 <label 4373 class="ecom-search-filter-item" 4374 style="padding-left: calc(0.5rem + 1.5rem);" 4375 > 4376 <input 4377 type="checkbox" 4378 value="25" 4379 class="ecom-search-checkbox" 4380 wire:model.live="selectedCategories" 4381 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 25) || JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4382 :disabled="JSON.parse('[81,7]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4383 /> 4384 <span class="ecom-search-filter-item-text">Versatile Flat Sheets</span> 4385 </label> 4386 <label 4387 class="ecom-search-filter-item" 4388 style="padding-left: calc(0.5rem + 0.75rem);" 4389 > 4390 <input 4391 type="checkbox" 4392 value="16" 4393 class="ecom-search-checkbox" 4394 wire:model.live="selectedCategories" 4395 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 16) || JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4396 :disabled="JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4397 /> 4398 <span class="ecom-search-filter-item-text">Driftwood</span> 4399 </label> 4400 <label 4401 class="ecom-search-filter-item" 4402 style="padding-left: calc(0.5rem + 1.5rem);" 4403 > 4404 <input 4405 type="checkbox" 4406 value="39" 4407 class="ecom-search-checkbox" 4408 wire:model.live="selectedCategories" 4409 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 39) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4410 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4411 />
4412 <span class="ecom-search-filter-item-text">Cypress Knees</span> 4413 </label> 4414 <label 4415 class="ecom-search-filter-item" 4416 style="padding-left: calc(0.5rem + 1.5rem);" 4417 > 4418 <input 4419 type="checkbox" 4420 value="40" 4421 class="ecom-search-checkbox" 4422 wire:model.live="selectedCategories" 4423 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 40) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4424 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4425 /> 4426 <span class="ecom-search-filter-item-text">Cypress Stumps</span> 4427 </label> 4428 <label 4429 class="ecom-search-filter-item" 4430 style="padding-left: calc(0.5rem + 1.5rem);" 4431 > 4432 <input 4433 type="checkbox" 4434 value="41" 4435 class="ecom-search-checkbox" 4436 wire:model.live="selectedCategories" 4437 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 41) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4438 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4439 /> 4440 <span class="ecom-search-filter-item-text">Mangrove Roots</span> 4441 </label> 4442 <label 4443 class="ecom-search-filter-item" 4444 style="padding-left: calc(0.5rem + 1.5rem);" 4445 > 4446 <input 4447 type="checkbox" 4448 value="97" 4449 class="ecom-search-checkbox" 4450 wire:model.live="selectedCategories" 4451 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 97) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4452 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4453 />
4454 <span class="ecom-search-filter-item-text">Mistwood</span> 4455 </label> 4456 <label 4457 class="ecom-search-filter-item" 4458 style="padding-left: calc(0.5rem + 1.5rem);" 4459 > 4460 <input 4461 type="checkbox" 4462 value="38" 4463 class="ecom-search-checkbox" 4464 wire:model.live="selectedCategories" 4465 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 38) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4466 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4467 /> 4468 <span class="ecom-search-filter-item-text">Tree Branches</span> 4469 </label> 4470 <label 4471 class="ecom-search-filter-item" 4472 style="padding-left: calc(0.5rem + 1.5rem);" 4473 > 4474 <input 4475 type="checkbox" 4476 value="42" 4477 class="ecom-search-checkbox" 4478 wire:model.live="selectedCategories" 4479 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 42) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4480 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4481 /> 4482 <span class="ecom-search-filter-item-text">Tree Roots</span> 4483 </label> 4484 <label 4485 class="ecom-search-filter-item" 4486 style="padding-left: calc(0.5rem + 1.5rem);" 4487 > 4488 <input 4489 type="checkbox" 4490 value="43" 4491 class="ecom-search-checkbox" 4492 wire:model.live="selectedCategories" 4493 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 43) || JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4494 :disabled="JSON.parse('[81,16]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4495 />
4496 <span class="ecom-search-filter-item-text">Tree Stumps</span> 4497 </label> 4498 <label 4499 class="ecom-search-filter-item" 4500 style="padding-left: calc(0.5rem + 0.75rem);" 4501 > 4502 <input 4503 type="checkbox" 4504 value="134" 4505 class="ecom-search-checkbox" 4506 wire:model.live="selectedCategories" 4507 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 134) || JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4508 :disabled="JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4509 /> 4510 <span class="ecom-search-filter-item-text">Fish Accessories</span> 4511 </label> 4512 <label 4513 class="ecom-search-filter-item" 4514 style="padding-left: calc(0.5rem + 0.75rem);" 4515 > 4516 <input 4517 type="checkbox" 4518 value="9" 4519 class="ecom-search-checkbox" 4520 wire:model.live="selectedCategories" 4521 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 9) || JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4522 :disabled="JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4523 /> 4524 <span class="ecom-search-filter-item-text">Heater Covers</span> 4525 </label> 4526 <label 4527 class="ecom-search-filter-item" 4528 style="padding-left: calc(0.5rem + 0.75rem);" 4529 > 4530 <input 4531 type="checkbox" 4532 value="15" 4533 class="ecom-search-checkbox" 4534 wire:model.live="selectedCategories" 4535 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 15) || JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4536 :disabled="JSON.parse('[81]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4537 />
4538 <span class="ecom-search-filter-item-text">Rocks, Caves & Hides</span> 4539 </label> 4540 <label 4541 class="ecom-search-filter-item" 4542 style="padding-left: calc(0.5rem + 1.5rem);" 4543 > 4544 <input 4545 type="checkbox" 4546 value="95" 4547 class="ecom-search-checkbox" 4548 wire:model.live="selectedCategories" 4549 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 95) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4550 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4551 /> 4552 <span class="ecom-search-filter-item-text">Aquarium Cave Rocks</span> 4553 </label> 4554 <label 4555 class="ecom-search-filter-item" 4556 style="padding-left: calc(0.5rem + 1.5rem);" 4557 > 4558 <input 4559 type="checkbox" 4560 value="33" 4561 class="ecom-search-checkbox" 4562 wire:model.live="selectedCategories" 4563 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 33) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4564 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4565 /> 4566 <span class="ecom-search-filter-item-text">Aquarium Decoration Rocks</span> 4567 </label> 4568 <label 4569 class="ecom-search-filter-item" 4570 style="padding-left: calc(0.5rem + 1.5rem);" 4571 > 4572 <input 4573 type="checkbox" 4574 value="36" 4575 class="ecom-search-checkbox" 4576 wire:model.live="selectedCategories" 4577 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 36) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4578 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4579 />
4580 <span class="ecom-search-filter-item-text">Aquarium Rock Combos</span> 4581 </label> 4582 <label 4583 class="ecom-search-filter-item" 4584 style="padding-left: calc(0.5rem + 1.5rem);" 4585 > 4586 <input 4587 type="checkbox" 4588 value="32" 4589 class="ecom-search-checkbox" 4590 wire:model.live="selectedCategories" 4591 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 32) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4592 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4593 /> 4594 <span class="ecom-search-filter-item-text">Feature Rocks</span> 4595 </label> 4596 <label 4597 class="ecom-search-filter-item" 4598 style="padding-left: calc(0.5rem + 1.5rem);" 4599 > 4600 <input 4601 type="checkbox" 4602 value="10" 4603 class="ecom-search-checkbox" 4604 wire:model.live="selectedCategories" 4605 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 10) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4606 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4607 /> 4608 <span class="ecom-search-filter-item-text">Holey Rock</span> 4609 </label> 4610 <label 4611 class="ecom-search-filter-item" 4612 style="padding-left: calc(0.5rem + 1.5rem);" 4613 > 4614 <input 4615 type="checkbox" 4616 value="94" 4617 class="ecom-search-checkbox" 4618 wire:model.live="selectedCategories" 4619 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 94) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4620 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4621 />
4622 <span class="ecom-search-filter-item-text">Stacking Rocks</span> 4623 </label> 4624 <label 4625 class="ecom-search-filter-item" 4626 style="padding-left: calc(0.5rem + 1.5rem);" 4627 > 4628 <input 4629 type="checkbox" 4630 value="35" 4631 class="ecom-search-checkbox" 4632 wire:model.live="selectedCategories" 4633 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 35) || JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4634 :disabled="JSON.parse('[81,15]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4635 /> 4636 <span class="ecom-search-filter-item-text">Stone Clusters</span> 4637 </label> 4638 <label 4639 class="ecom-search-filter-item" 4640 style="padding-left: calc(0.5rem + 0rem);" 4641 > 4642 <input 4643 type="checkbox" 4644 value="3" 4645 class="ecom-search-checkbox" 4646 wire:model.live="selectedCategories" 4647 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 3) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4648 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4649 /> 4650 <span class="ecom-search-filter-item-text">Garden</span> 4651 </label> 4652 <label 4653 class="ecom-search-filter-item" 4654 style="padding-left: calc(0.5rem + 0.75rem);" 4655 > 4656 <input 4657 type="checkbox" 4658 value="45" 4659 class="ecom-search-checkbox" 4660 wire:model.live="selectedCategories" 4661 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 45) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4662 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4663 />
4664 <span class="ecom-search-filter-item-text">Cascades and Creeks</span> 4665 </label> 4666 <label 4667 class="ecom-search-filter-item" 4668 style="padding-left: calc(0.5rem + 0.75rem);" 4669 > 4670 <input 4671 type="checkbox" 4672 value="149" 4673 class="ecom-search-checkbox" 4674 wire:model.live="selectedCategories" 4675 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 149) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4676 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4677 /> 4678 <span class="ecom-search-filter-item-text">Faux Wood </span> 4679 </label> 4680 <label 4681 class="ecom-search-filter-item" 4682 style="padding-left: calc(0.5rem + 1.5rem);" 4683 > 4684 <input 4685 type="checkbox" 4686 value="178" 4687 class="ecom-search-checkbox" 4688 wire:model.live="selectedCategories" 4689 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 178) || JSON.parse('[3,149]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4690 :disabled="JSON.parse('[3,149]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4691 /> 4692 <span class="ecom-search-filter-item-text">Sunken Logs</span> 4693 </label> 4694 <label 4695 class="ecom-search-filter-item" 4696 style="padding-left: calc(0.5rem + 0.75rem);" 4697 > 4698 <input 4699 type="checkbox" 4700 value="49" 4701 class="ecom-search-checkbox" 4702 wire:model.live="selectedCategories" 4703 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 49) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4704 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4705 />
4706 <span class="ecom-search-filter-item-text">Floating Products</span> 4707 </label> 4708 <label 4709 class="ecom-search-filter-item" 4710 style="padding-left: calc(0.5rem + 1.5rem);" 4711 > 4712 <input 4713 type="checkbox" 4714 value="61" 4715 class="ecom-search-checkbox" 4716 wire:model.live="selectedCategories" 4717 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 61) || JSON.parse('[3,49]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4718 :disabled="JSON.parse('[3,49]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4719 /> 4720 <span class="ecom-search-filter-item-text">Floating Animals</span> 4721 </label> 4722 <label 4723 class="ecom-search-filter-item" 4724 style="padding-left: calc(0.5rem + 1.5rem);" 4725 > 4726 <input 4727 type="checkbox" 4728 value="63" 4729 class="ecom-search-checkbox" 4730 wire:model.live="selectedCategories" 4731 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 63) || JSON.parse('[3,49]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4732 :disabled="JSON.parse('[3,49]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4733 /> 4734 <span class="ecom-search-filter-item-text">Floating Logs</span> 4735 </label> 4736 <label 4737 class="ecom-search-filter-item" 4738 style="padding-left: calc(0.5rem + 1.5rem);" 4739 > 4740 <input 4741 type="checkbox" 4742 value="64" 4743 class="ecom-search-checkbox" 4744 wire:model.live="selectedCategories" 4745 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 64) || JSON.parse('[3,49]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4746 :disabled="JSON.parse('[3,49]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4747 />
4748 <span class="ecom-search-filter-item-text">Floating Rocks</span> 4749 </label> 4750 <label 4751 class="ecom-search-filter-item" 4752 style="padding-left: calc(0.5rem + 0.75rem);" 4753 > 4754 <input 4755 type="checkbox" 4756 value="44" 4757 class="ecom-search-checkbox" 4758 wire:model.live="selectedCategories" 4759 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 44) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4760 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4761 /> 4762 <span class="ecom-search-filter-item-text">Garden Accessories</span> 4763 </label> 4764 <label 4765 class="ecom-search-filter-item" 4766 style="padding-left: calc(0.5rem + 1.5rem);" 4767 > 4768 <input 4769 type="checkbox" 4770 value="58" 4771 class="ecom-search-checkbox" 4772 wire:model.live="selectedCategories" 4773 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 58) || JSON.parse('[3,44]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4774 :disabled="JSON.parse('[3,44]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4775 /> 4776 <span class="ecom-search-filter-item-text">Pumps</span> 4777 </label> 4778 <label 4779 class="ecom-search-filter-item" 4780 style="padding-left: calc(0.5rem + 0.75rem);" 4781 > 4782 <input 4783 type="checkbox" 4784 value="56" 4785 class="ecom-search-checkbox" 4786 wire:model.live="selectedCategories" 4787 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 56) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4788 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4789 />
4790 <span class="ecom-search-filter-item-text">Garden Waterfalls</span> 4791 </label> 4792 <label 4793 class="ecom-search-filter-item" 4794 style="padding-left: calc(0.5rem + 0.75rem);" 4795 > 4796 <input 4797 type="checkbox" 4798 value="53" 4799 class="ecom-search-checkbox" 4800 wire:model.live="selectedCategories" 4801 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 53) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4802 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4803 /> 4804 <span class="ecom-search-filter-item-text">Landscaping Rocks</span> 4805 </label> 4806 <label 4807 class="ecom-search-filter-item" 4808 style="padding-left: calc(0.5rem + 1.5rem);" 4809 > 4810 <input 4811 type="checkbox" 4812 value="65" 4813 class="ecom-search-checkbox" 4814 wire:model.live="selectedCategories" 4815 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 65) || JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4816 :disabled="JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4817 /> 4818 <span class="ecom-search-filter-item-text">Accent Rocks</span> 4819 </label> 4820 <label 4821 class="ecom-search-filter-item" 4822 style="padding-left: calc(0.5rem + 1.5rem);" 4823 > 4824 <input 4825 type="checkbox" 4826 value="66" 4827 class="ecom-search-checkbox" 4828 wire:model.live="selectedCategories" 4829 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 66) || JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4830 :disabled="JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4831 />
4832 <span class="ecom-search-filter-item-text">Bridge Stones</span> 4833 </label> 4834 <label 4835 class="ecom-search-filter-item" 4836 style="padding-left: calc(0.5rem + 1.5rem);" 4837 > 4838 <input 4839 type="checkbox" 4840 value="68" 4841 class="ecom-search-checkbox" 4842 wire:model.live="selectedCategories" 4843 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 68) || JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4844 :disabled="JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4845 /> 4846 <span class="ecom-search-filter-item-text">Dispersion Rocks</span> 4847 </label> 4848 <label 4849 class="ecom-search-filter-item" 4850 style="padding-left: calc(0.5rem + 1.5rem);" 4851 > 4852 <input 4853 type="checkbox" 4854 value="71" 4855 class="ecom-search-checkbox" 4856 wire:model.live="selectedCategories" 4857 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 71) || JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4858 :disabled="JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4859 /> 4860 <span class="ecom-search-filter-item-text">Pot Rocks</span> 4861 </label> 4862 <label 4863 class="ecom-search-filter-item" 4864 style="padding-left: calc(0.5rem + 1.5rem);" 4865 > 4866 <input 4867 type="checkbox" 4868 value="72" 4869 class="ecom-search-checkbox" 4870 wire:model.live="selectedCategories" 4871 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 72) || JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4872 :disabled="JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4873 />
4874 <span class="ecom-search-filter-item-text">Pump Cover</span> 4875 </label> 4876 <label 4877 class="ecom-search-filter-item" 4878 style="padding-left: calc(0.5rem + 1.5rem);" 4879 > 4880 <input 4881 type="checkbox" 4882 value="70" 4883 class="ecom-search-checkbox" 4884 wire:model.live="selectedCategories" 4885 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 70) || JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4886 :disabled="JSON.parse('[3,53]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4887 /> 4888 <span class="ecom-search-filter-item-text">Wall/Planter Rocks</span> 4889 </label> 4890 <label 4891 class="ecom-search-filter-item" 4892 style="padding-left: calc(0.5rem + 0.75rem);" 4893 > 4894 <input 4895 type="checkbox" 4896 value="90" 4897 class="ecom-search-checkbox" 4898 wire:model.live="selectedCategories" 4899 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 90) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4900 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4901 /> 4902 <span class="ecom-search-filter-item-text">Pond Kits</span> 4903 </label> 4904 <label 4905 class="ecom-search-filter-item" 4906 style="padding-left: calc(0.5rem + 0.75rem);" 4907 > 4908 <input 4909 type="checkbox" 4910 value="50" 4911 class="ecom-search-checkbox" 4912 wire:model.live="selectedCategories" 4913 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 50) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4914 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4915 />
4916 <span class="ecom-search-filter-item-text">Ponds</span> 4917 </label> 4918 <label 4919 class="ecom-search-filter-item" 4920 style="padding-left: calc(0.5rem + 0.75rem);" 4921 > 4922 <input 4923 type="checkbox" 4924 value="55" 4925 class="ecom-search-checkbox" 4926 wire:model.live="selectedCategories" 4927 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 55) || JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4928 :disabled="JSON.parse('[3]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4929 /> 4930 <span class="ecom-search-filter-item-text">Skimmer Lids</span> 4931 </label> 4932 <label 4933 class="ecom-search-filter-item" 4934 style="padding-left: calc(0.5rem + 0rem);" 4935 > 4936 <input 4937 type="checkbox" 4938 value="4" 4939 class="ecom-search-checkbox" 4940 wire:model.live="selectedCategories" 4941 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 4) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4942 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4943 /> 4944 <span class="ecom-search-filter-item-text">Pool</span> 4945 </label> 4946 <label 4947 class="ecom-search-filter-item" 4948 style="padding-left: calc(0.5rem + 0.75rem);" 4949 > 4950 <input 4951 type="checkbox" 4952 value="140" 4953 class="ecom-search-checkbox" 4954 wire:model.live="selectedCategories" 4955 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 140) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4956 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4957 />
4958 <span class="ecom-search-filter-item-text">Accessories</span> 4959 </label> 4960 <label 4961 class="ecom-search-filter-item" 4962 style="padding-left: calc(0.5rem + 0.75rem);" 4963 > 4964 <input 4965 type="checkbox" 4966 value="74" 4967 class="ecom-search-checkbox" 4968 wire:model.live="selectedCategories" 4969 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 74) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4970 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4971 /> 4972 <span class="ecom-search-filter-item-text">Edge Rocks</span> 4973 </label> 4974 <label 4975 class="ecom-search-filter-item" 4976 style="padding-left: calc(0.5rem + 0.75rem);" 4977 > 4978 <input 4979 type="checkbox" 4980 value="79" 4981 class="ecom-search-checkbox" 4982 wire:model.live="selectedCategories" 4983 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 79) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4984 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4985 /> 4986 <span class="ecom-search-filter-item-text">Grotto Waterfalls</span> 4987 </label> 4988 <label 4989 class="ecom-search-filter-item" 4990 style="padding-left: calc(0.5rem + 0.75rem);" 4991 > 4992 <input 4993 type="checkbox" 4994 value="142" 4995 class="ecom-search-checkbox" 4996 wire:model.live="selectedCategories" 4997 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 142) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4998 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 4999 />
5000 <span class="ecom-search-filter-item-text">Pool Plants</span> 5001 </label> 5002 <label 5003 class="ecom-search-filter-item" 5004 style="padding-left: calc(0.5rem + 1.5rem);" 5005 > 5006 <input 5007 type="checkbox" 5008 value="145" 5009 class="ecom-search-checkbox" 5010 wire:model.live="selectedCategories" 5011 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 145) || JSON.parse('[4,142]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5012 :disabled="JSON.parse('[4,142]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5013 /> 5014 <span class="ecom-search-filter-item-text">U.V Artificial Plants</span> 5015 </label> 5016 <label 5017 class="ecom-search-filter-item" 5018 style="padding-left: calc(0.5rem + 0.75rem);" 5019 > 5020 <input 5021 type="checkbox" 5022 value="182" 5023 class="ecom-search-checkbox" 5024 wire:model.live="selectedCategories" 5025 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 182) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5026 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5027 /> 5028 <span class="ecom-search-filter-item-text">Pool Steps</span> 5029 </label> 5030 <label 5031 class="ecom-search-filter-item" 5032 style="padding-left: calc(0.5rem + 0.75rem);" 5033 > 5034 <input 5035 type="checkbox" 5036 value="136" 5037 class="ecom-search-checkbox" 5038 wire:model.live="selectedCategories" 5039 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 136) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5040 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5041 />
5042 <span class="ecom-search-filter-item-text">Pool Waterfalls</span> 5043 </label> 5044 <label 5045 class="ecom-search-filter-item" 5046 style="padding-left: calc(0.5rem + 1.5rem);" 5047 > 5048 <input 5049 type="checkbox" 5050 value="176" 5051 class="ecom-search-checkbox" 5052 wire:model.live="selectedCategories" 5053 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 176) || JSON.parse('[4,136]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5054 :disabled="JSON.parse('[4,136]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5055 /> 5056 <span class="ecom-search-filter-item-text">Modern Waterfalls</span> 5057 </label> 5058 <label 5059 class="ecom-search-filter-item" 5060 style="padding-left: calc(0.5rem + 1.5rem);" 5061 > 5062 <input 5063 type="checkbox" 5064 value="177" 5065 class="ecom-search-checkbox" 5066 wire:model.live="selectedCategories" 5067 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 177) || JSON.parse('[4,136]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5068 :disabled="JSON.parse('[4,136]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5069 /> 5070 <span class="ecom-search-filter-item-text">Rock Waterfalls</span> 5071 </label> 5072 <label 5073 class="ecom-search-filter-item" 5074 style="padding-left: calc(0.5rem + 0.75rem);" 5075 > 5076 <input 5077 type="checkbox" 5078 value="77" 5079 class="ecom-search-checkbox" 5080 wire:model.live="selectedCategories" 5081 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 77) || JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5082 :disabled="JSON.parse('[4]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5083 />
5084 <span class="ecom-search-filter-item-text">Waterfall Kits</span> 5085 </label> 5086 <label 5087 class="ecom-search-filter-item" 5088 style="padding-left: calc(0.5rem + 0rem);" 5089 > 5090 <input 5091 type="checkbox" 5092 value="2" 5093 class="ecom-search-checkbox" 5094 wire:model.live="selectedCategories" 5095 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 2) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5096 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5097 /> 5098 <span class="ecom-search-filter-item-text">Reptiles</span> 5099 </label> 5100 <label 5101 class="ecom-search-filter-item" 5102 style="padding-left: calc(0.5rem + 0.75rem);" 5103 > 5104 <input 5105 type="checkbox" 5106 value="84" 5107 class="ecom-search-checkbox" 5108 wire:model.live="selectedCategories" 5109 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 84) || JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5110 :disabled="JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5111 /> 5112 <span class="ecom-search-filter-item-text">Backgrounds</span> 5113 </label> 5114 <label 5115 class="ecom-search-filter-item" 5116 style="padding-left: calc(0.5rem + 1.5rem);" 5117 > 5118 <input 5119 type="checkbox" 5120 value="162" 5121 class="ecom-search-checkbox" 5122 wire:model.live="selectedCategories" 5123 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 162) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5124 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5125 />
5126 <span class="ecom-search-filter-item-text">Crevice Style</span> 5127 </label> 5128 <label 5129 class="ecom-search-filter-item" 5130 style="padding-left: calc(0.5rem + 1.5rem);" 5131 > 5132 <input 5133 type="checkbox" 5134 value="163" 5135 class="ecom-search-checkbox" 5136 wire:model.live="selectedCategories" 5137 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 163) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5138 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5139 /> 5140 <span class="ecom-search-filter-item-text">Custom Backgrounds</span> 5141 </label> 5142 <label 5143 class="ecom-search-filter-item" 5144 style="padding-left: calc(0.5rem + 1.5rem);" 5145 > 5146 <input 5147 type="checkbox" 5148 value="22" 5149 class="ecom-search-checkbox" 5150 wire:model.live="selectedCategories" 5151 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 22) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5152 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5153 /> 5154 <span class="ecom-search-filter-item-text">Exo-Terra</span> 5155 </label> 5156 <label 5157 class="ecom-search-filter-item" 5158 style="padding-left: calc(0.5rem + 1.5rem);" 5159 > 5160 <input 5161 type="checkbox" 5162 value="87" 5163 class="ecom-search-checkbox" 5164 wire:model.live="selectedCategories" 5165 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 87) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5166 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5167 />
5168 <span class="ecom-search-filter-item-text">Ledge</span> 5169 </label> 5170 <label 5171 class="ecom-search-filter-item" 5172 style="padding-left: calc(0.5rem + 1.5rem);" 5173 > 5174 <input 5175 type="checkbox" 5176 value="164" 5177 class="ecom-search-checkbox" 5178 wire:model.live="selectedCategories" 5179 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 164) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5180 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5181 /> 5182 <span class="ecom-search-filter-item-text">Rocky Style</span> 5183 </label> 5184 <label 5185 class="ecom-search-filter-item" 5186 style="padding-left: calc(0.5rem + 1.5rem);" 5187 > 5188 <input 5189 type="checkbox" 5190 value="165" 5191 class="ecom-search-checkbox" 5192 wire:model.live="selectedCategories" 5193 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 165) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5194 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5195 /> 5196 <span class="ecom-search-filter-item-text">Unique Backgrounds</span> 5197 </label> 5198 <label 5199 class="ecom-search-filter-item" 5200 style="padding-left: calc(0.5rem + 1.5rem);" 5201 > 5202 <input 5203 type="checkbox" 5204 value="166" 5205 class="ecom-search-checkbox" 5206 wire:model.live="selectedCategories" 5207 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 166) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5208 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5209 />
5210 <span class="ecom-search-filter-item-text">Versatile Flat Sheets</span> 5211 </label> 5212 <label 5213 class="ecom-search-filter-item" 5214 style="padding-left: calc(0.5rem + 1.5rem);" 5215 > 5216 <input 5217 type="checkbox" 5218 value="24" 5219 class="ecom-search-checkbox" 5220 wire:model.live="selectedCategories" 5221 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 24) || JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5222 :disabled="JSON.parse('[2,84]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5223 /> 5224 <span class="ecom-search-filter-item-text">Zoo-Med</span> 5225 </label> 5226 <label 5227 class="ecom-search-filter-item" 5228 style="padding-left: calc(0.5rem + 0.75rem);" 5229 > 5230 <input 5231 type="checkbox" 5232 value="80" 5233 class="ecom-search-checkbox" 5234 wire:model.live="selectedCategories" 5235 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 80) || JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5236 :disabled="JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5237 /> 5238 <span class="ecom-search-filter-item-text">Food & Water Bowls</span> 5239 </label> 5240 <label 5241 class="ecom-search-filter-item" 5242 style="padding-left: calc(0.5rem + 0.75rem);" 5243 > 5244 <input 5245 type="checkbox" 5246 value="137" 5247 class="ecom-search-checkbox" 5248 wire:model.live="selectedCategories" 5249 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 137) || JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5250 :disabled="JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5251 />
5252 <span class="ecom-search-filter-item-text">Ledges</span> 5253 </label> 5254 <label 5255 class="ecom-search-filter-item" 5256 style="padding-left: calc(0.5rem + 1.5rem);" 5257 > 5258 <input 5259 type="checkbox" 5260 value="98" 5261 class="ecom-search-checkbox" 5262 wire:model.live="selectedCategories" 5263 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 98) || JSON.parse('[2,137]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5264 :disabled="JSON.parse('[2,137]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5265 /> 5266 <span class="ecom-search-filter-item-text">DIY Ledges</span> 5267 </label> 5268 <label 5269 class="ecom-search-filter-item" 5270 style="padding-left: calc(0.5rem + 1.5rem);" 5271 > 5272 <input 5273 type="checkbox" 5274 value="99" 5275 class="ecom-search-checkbox" 5276 wire:model.live="selectedCategories" 5277 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 99) || JSON.parse('[2,137]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5278 :disabled="JSON.parse('[2,137]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5279 /> 5280 <span class="ecom-search-filter-item-text">REPTILE DIY LEDGE KITS</span> 5281 </label> 5282 <label 5283 class="ecom-search-filter-item" 5284 style="padding-left: calc(0.5rem + 0.75rem);" 5285 > 5286 <input 5287 type="checkbox" 5288 value="138" 5289 class="ecom-search-checkbox" 5290 wire:model.live="selectedCategories" 5291 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 138) || JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5292 :disabled="JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5293 />
5294 <span class="ecom-search-filter-item-text">Reptile Accessories</span> 5295 </label> 5296 <label 5297 class="ecom-search-filter-item" 5298 style="padding-left: calc(0.5rem + 0.75rem);" 5299 > 5300 <input 5301 type="checkbox" 5302 value="85" 5303 class="ecom-search-checkbox" 5304 wire:model.live="selectedCategories" 5305 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 85) || JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5306 :disabled="JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5307 /> 5308 <span class="ecom-search-filter-item-text">Rocks & Hides</span> 5309 </label> 5310 <label 5311 class="ecom-search-filter-item" 5312 style="padding-left: calc(0.5rem + 1.5rem);" 5313 > 5314 <input 5315 type="checkbox" 5316 value="167" 5317 class="ecom-search-checkbox" 5318 wire:model.live="selectedCategories" 5319 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 167) || JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5320 :disabled="JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5321 /> 5322 <span class="ecom-search-filter-item-text">Accent Rocks</span> 5323 </label> 5324 <label 5325 class="ecom-search-filter-item" 5326 style="padding-left: calc(0.5rem + 1.5rem);" 5327 > 5328 <input 5329 type="checkbox" 5330 value="86" 5331 class="ecom-search-checkbox" 5332 wire:model.live="selectedCategories" 5333 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 86) || JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5334 :disabled="JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5335 />
5336 <span class="ecom-search-filter-item-text">Decoration Rocks</span> 5337 </label> 5338 <label 5339 class="ecom-search-filter-item" 5340 style="padding-left: calc(0.5rem + 1.5rem);" 5341 > 5342 <input 5343 type="checkbox" 5344 value="174" 5345 class="ecom-search-checkbox" 5346 wire:model.live="selectedCategories" 5347 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 174) || JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5348 :disabled="JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5349 /> 5350 <span class="ecom-search-filter-item-text">Hides</span> 5351 </label> 5352 <label 5353 class="ecom-search-filter-item" 5354 style="padding-left: calc(0.5rem + 1.5rem);" 5355 > 5356 <input 5357 type="checkbox" 5358 value="88" 5359 class="ecom-search-checkbox" 5360 wire:model.live="selectedCategories" 5361 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 88) || JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5362 :disabled="JSON.parse('[2,85]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5363 /> 5364 <span class="ecom-search-filter-item-text">Stone Clusters</span> 5365 </label> 5366 <label 5367 class="ecom-search-filter-item" 5368 style="padding-left: calc(0.5rem + 0.75rem);" 5369 > 5370 <input 5371 type="checkbox" 5372 value="130" 5373 class="ecom-search-checkbox" 5374 wire:model.live="selectedCategories" 5375 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 130) || JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5376 :disabled="JSON.parse('[2]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5377 />
5378 <span class="ecom-search-filter-item-text">Tree Products</span> 5379 </label> 5380 <label 5381 class="ecom-search-filter-item" 5382 style="padding-left: calc(0.5rem + 1.5rem);" 5383 > 5384 <input 5385 type="checkbox" 5386 value="168" 5387 class="ecom-search-checkbox" 5388 wire:model.live="selectedCategories" 5389 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 168) || JSON.parse('[2,130]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5390 :disabled="JSON.parse('[2,130]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5391 /> 5392 <span class="ecom-search-filter-item-text">REPTILE CYPRESS KNEES</span> 5393 </label> 5394 <label 5395 class="ecom-search-filter-item" 5396 style="padding-left: calc(0.5rem + 0rem);" 5397 > 5398 <input 5399 type="checkbox" 5400 value="17" 5401 class="ecom-search-checkbox" 5402 wire:model.live="selectedCategories" 5403 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 17) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5404 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5405 /> 5406 <span class="ecom-search-filter-item-text">Request Sample</span> 5407 </label> 5408 <label 5409 class="ecom-search-filter-item" 5410 style="padding-left: calc(0.5rem + 0rem);" 5411 > 5412 <input 5413 type="checkbox" 5414 value="151" 5415 class="ecom-search-checkbox" 5416 wire:model.live="selectedCategories" 5417 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 151) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5418 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5419 />
5420 <span class="ecom-search-filter-item-text">Rock Wall Panels</span> 5421 </label> 5422 <label 5423 class="ecom-search-filter-item" 5424 style="padding-left: calc(0.5rem + 0rem);" 5425 > 5426 <input 5427 type="checkbox" 5428 value="161" 5429 class="ecom-search-checkbox" 5430 wire:model.live="selectedCategories" 5431 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 161) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5432 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5433 /> 5434 <span class="ecom-search-filter-item-text">Theming</span> 5435 </label> 5436 <label 5437 class="ecom-search-filter-item" 5438 style="padding-left: calc(0.5rem + 0.75rem);" 5439 > 5440 <input 5441 type="checkbox" 5442 value="175" 5443 class="ecom-search-checkbox" 5444 wire:model.live="selectedCategories" 5445 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 175) || JSON.parse('[161]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5446 :disabled="JSON.parse('[161]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5447 /> 5448 <span class="ecom-search-filter-item-text">Haunted Houses</span> 5449 </label> 5450 <label 5451 class="ecom-search-filter-item" 5452 style="padding-left: calc(0.5rem + 0rem);" 5453 > 5454 <input 5455 type="checkbox" 5456 value="104" 5457 class="ecom-search-checkbox" 5458 wire:model.live="selectedCategories" 5459 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 104) || [].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5460 :disabled="[].some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5461 />
5462 <span class="ecom-search-filter-item-text">Zoo Animals</span> 5463 </label> 5464 <label 5465 class="ecom-search-filter-item" 5466 style="padding-left: calc(0.5rem + 0.75rem);" 5467 > 5468 <input 5469 type="checkbox" 5470 value="173" 5471 class="ecom-search-checkbox" 5472 wire:model.live="selectedCategories" 5473 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 173) || JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5474 :disabled="JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5475 /> 5476 <span class="ecom-search-filter-item-text">Ponds</span> 5477 </label> 5478 <label 5479 class="ecom-search-filter-item" 5480 style="padding-left: calc(0.5rem + 0.75rem);" 5481 > 5482 <input 5483 type="checkbox" 5484 value="106" 5485 class="ecom-search-checkbox" 5486 wire:model.live="selectedCategories" 5487 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 106) || JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5488 :disabled="JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5489 /> 5490 <span class="ecom-search-filter-item-text">Rocks</span> 5491 </label> 5492 <label 5493 class="ecom-search-filter-item" 5494 style="padding-left: calc(0.5rem + 1.5rem);" 5495 > 5496 <input 5497 type="checkbox" 5498 value="172" 5499 class="ecom-search-checkbox" 5500 wire:model.live="selectedCategories" 5501 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 172) || JSON.parse('[104,106]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5502 :disabled="JSON.parse('[104,106]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5503 />
5504 <span class="ecom-search-filter-item-text">Accent Rocks</span> 5505 </label> 5506 <label 5507 class="ecom-search-filter-item" 5508 style="padding-left: calc(0.5rem + 1.5rem);" 5509 > 5510 <input 5511 type="checkbox" 5512 value="109" 5513 class="ecom-search-checkbox" 5514 wire:model.live="selectedCategories" 5515 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 109) || JSON.parse('[104,106]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5516 :disabled="JSON.parse('[104,106]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5517 /> 5518 <span class="ecom-search-filter-item-text">DIY Ledges</span> 5519 </label> 5520 <label 5521 class="ecom-search-filter-item" 5522 style="padding-left: calc(0.5rem + 0.75rem);" 5523 > 5524 <input 5525 type="checkbox" 5526 value="181" 5527 class="ecom-search-checkbox" 5528 wire:model.live="selectedCategories" 5529 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 181) || JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5530 :disabled="JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5531 /> 5532 <span class="ecom-search-filter-item-text">Vines</span> 5533 </label> 5534 <label 5535 class="ecom-search-filter-item" 5536 style="padding-left: calc(0.5rem + 0.75rem);" 5537 > 5538 <input 5539 type="checkbox" 5540 value="139" 5541 class="ecom-search-checkbox" 5542 wire:model.live="selectedCategories" 5543 :checked="(Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === 139) || JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5544 :disabled="JSON.parse('[104]').some(ancestorId => (Array.isArray($wire.selectedCategories) ? $wire.selectedCategories : []).some(selectedId => Number(selectedId) === ancestorId))" 5545 />
5546 <span class="ecom-search-filter-item-text">Zoo Accessories</span> 5547 </label> 5548 </div> 5549 </div> 5550 5551 5552 <div role="group" aria-label="Bubbler Option" wire:key="search-variant-253"> 5553 <span class="ecom-search-filter-section-label">Bubbler Option</span> 5554 <div class="ecom-search-filter-list"> 5555 <label class="ecom-search-filter-item" wire:key="search-variant-option-510"> 5556 <input 5557 type="checkbox" 5558 value="510" 5559 class="ecom-search-checkbox" 5560 wire:model.live="selectedVariantOptions" 5561 /> 5562 <span class="ecom-search-filter-item-text">None</span> 5563 <span class="ecom-search-filter-item-count">(55)</span> 5564 </label> 5565 <label class="ecom-search-filter-item" wire:key="search-variant-option-513"> 5566 <input 5567 type="checkbox" 5568 value="513" 5569 class="ecom-search-checkbox" 5570 wire:model.live="selectedVariantOptions" 5571 /> 5572 <span class="ecom-search-filter-item-text">Bubbling</span> 5573 <span class="ecom-search-filter-item-count">(55)</span> 5574 </label> 5575 </div> 5576 </div> 5577 <div role="group" aria-label="BUBBLING OPTION" wire:key="search-variant-698"> 5578 <span class="ecom-search-filter-section-label">BUBBLING OPTION</span> 5579 <div class="ecom-search-filter-list"> 5580 <label class="ecom-search-filter-item" wire:key="search-variant-option-1675"> 5581 <input 5582 type="checkbox" 5583 value="1675" 5584 class="ecom-search-checkbox" 5585 wire:model.live="selectedVariantOptions" 5586 /> 5587 <span class="ecom-search-filter-item-text">None</span> 5588 <span class="ecom-search-filter-item-count">(1)</span> 5589 </label> 5590 <label class="ecom-search-filter-item" wire:key="search-variant-option-1679"> 5591 <input 5592 type="checkbox" 5593 value="1679" 5594 class="ecom-search-checkbox" 5595 wire:model.live="selectedVariantOptions" 5596 /> 5597 <span class="ecom-search-filter-item-text">Bubbling</span>
5598 <span class="ecom-search-filter-item-count">(1)</span> 5599 </label> 5600 </div> 5601 </div> 5602 <div role="group" aria-label="Color" wire:key="search-variant-422"> 5603 <span class="ecom-search-filter-section-label">Color</span> 5604 <div class="ecom-search-filter-list"> 5605 <label class="ecom-search-filter-item" wire:key="search-variant-option-952"> 5606 <input 5607 type="checkbox" 5608 value="952" 5609 class="ecom-search-checkbox" 5610 wire:model.live="selectedVariantOptions" 5611 /> 5612 <span class="ecom-search-filter-item-text">BROWN</span> 5613 <span class="ecom-search-filter-item-count">(2)</span> 5614 </label> 5615 <label class="ecom-search-filter-item" wire:key="search-variant-option-953"> 5616 <input 5617 type="checkbox" 5618 value="953" 5619 class="ecom-search-checkbox" 5620 wire:model.live="selectedVariantOptions" 5621 /> 5622 <span class="ecom-search-filter-item-text">GREY</span> 5623 <span class="ecom-search-filter-item-count">(2)</span> 5624 </label> 5625 <label class="ecom-search-filter-item" wire:key="search-variant-option-954"> 5626 <input 5627 type="checkbox" 5628 value="954" 5629 class="ecom-search-checkbox" 5630 wire:model.live="selectedVariantOptions" 5631 /> 5632 <span class="ecom-search-filter-item-text">CASTLE ROCK</span> 5633 <span class="ecom-search-filter-item-count">(2)</span> 5634 </label> 5635 </div> 5636 </div> 5637 <div role="group" aria-label="COLOR" wire:key="search-variant-1"> 5638 <span class="ecom-search-filter-section-label">COLOR</span> 5639 <div class="ecom-search-filter-list"> 5640 <label class="ecom-search-filter-item" wire:key="search-variant-option-1"> 5641 <input 5642 type="checkbox" 5643 value="1" 5644 class="ecom-search-checkbox" 5645 wire:model.live="selectedVariantOptions" 5646 /> 5647 <span class="ecom-search-filter-item-text">BROWN</span> 5648 <span class="ecom-search-filter-item-count">(376)</span> 5649 </label> 5650 <label class="ecom-search-filter-item" wire:key="search-variant-option-2"> 5651 <input 5652 type="checkbox" 5653 value="2" 5654 class="ecom-search-checkbox" 5655 wire:model.live="selectedVariantOptions" 5656 />
5657 <span class="ecom-search-filter-item-text">GREY</span> 5658 <span class="ecom-search-filter-item-count">(327)</span> 5659 </label> 5660 <label class="ecom-search-filter-item" wire:key="search-variant-option-3"> 5661 <input 5662 type="checkbox" 5663 value="3" 5664 class="ecom-search-checkbox" 5665 wire:model.live="selectedVariantOptions" 5666 /> 5667 <span class="ecom-search-filter-item-text">CASTLE ROCK</span> 5668 <span class="ecom-search-filter-item-count">(308)</span> 5669 </label> 5670 <label class="ecom-search-filter-item" wire:key="search-variant-option-1852"> 5671 <input 5672 type="checkbox" 5673 value="1852" 5674 class="ecom-search-checkbox" 5675 wire:model.live="selectedVariantOptions" 5676 /> 5677 <span class="ecom-search-filter-item-text">BLACK</span> 5678 <span class="ecom-search-filter-item-count">(14)</span> 5679 </label> 5680 <label class="ecom-search-filter-item" wire:key="search-variant-option-1853"> 5681 <input 5682 type="checkbox" 5683 value="1853" 5684 class="ecom-search-checkbox" 5685 wire:model.live="selectedVariantOptions" 5686 /> 5687 <span class="ecom-search-filter-item-text">Castle</span> 5688 <span class="ecom-search-filter-item-count">(31)</span> 5689 </label> 5690 <label class="ecom-search-filter-item" wire:key="search-variant-option-1856"> 5691 <input 5692 type="checkbox" 5693 value="1856" 5694 class="ecom-search-checkbox" 5695 wire:model.live="selectedVariantOptions" 5696 /> 5697 <span class="ecom-search-filter-item-text">SPECIAL</span> 5698 <span class="ecom-search-filter-item-count">(6)</span> 5699 </label> 5700 <label class="ecom-search-filter-item" wire:key="search-variant-option-1859"> 5701 <input 5702 type="checkbox" 5703 value="1859" 5704 class="ecom-search-checkbox" 5705 wire:model.live="selectedVariantOptions" 5706 /> 5707 <span class="ecom-search-filter-item-text">WHITE</span>
5708 <span class="ecom-search-filter-item-count">(8)</span> 5709 </label> 5710 </div> 5711 </div> 5712 <div role="group" aria-label="COLOR OPTIONS" wire:key="search-variant-413"> 5713 <span class="ecom-search-filter-section-label">COLOR OPTIONS</span> 5714 <div class="ecom-search-filter-list"> 5715 <label class="ecom-search-filter-item" wire:key="search-variant-option-922"> 5716 <input 5717 type="checkbox" 5718 value="922" 5719 class="ecom-search-checkbox" 5720 wire:model.live="selectedVariantOptions" 5721 /> 5722 <span class="ecom-search-filter-item-text">BROWN</span> 5723 <span class="ecom-search-filter-item-count">(15)</span> 5724 </label> 5725 <label class="ecom-search-filter-item" wire:key="search-variant-option-933"> 5726 <input 5727 type="checkbox" 5728 value="933" 5729 class="ecom-search-checkbox" 5730 wire:model.live="selectedVariantOptions" 5731 /> 5732 <span class="ecom-search-filter-item-text">CASTLE ROCK</span> 5733 <span class="ecom-search-filter-item-count">(15)</span> 5734 </label> 5735 <label class="ecom-search-filter-item" wire:key="search-variant-option-1929"> 5736 <input 5737 type="checkbox" 5738 value="1929" 5739 class="ecom-search-checkbox" 5740 wire:model.live="selectedVariantOptions" 5741 /> 5742 <span class="ecom-search-filter-item-text">Black</span> 5743 <span class="ecom-search-filter-item-count">(11)</span> 5744 </label> 5745 <label class="ecom-search-filter-item" wire:key="search-variant-option-1930"> 5746 <input 5747 type="checkbox" 5748 value="1930" 5749 class="ecom-search-checkbox" 5750 wire:model.live="selectedVariantOptions" 5751 /> 5752 <span class="ecom-search-filter-item-text">Grey</span> 5753 <span class="ecom-search-filter-item-count">(3)</span> 5754 </label> 5755 <label class="ecom-search-filter-item" wire:key="search-variant-option-1945"> 5756 <input 5757 type="checkbox" 5758 value="1945" 5759 class="ecom-search-checkbox" 5760 wire:model.live="selectedVariantOptions" 5761 />
5762 <span class="ecom-search-filter-item-text">Red</span> 5763 <span class="ecom-search-filter-item-count">(11)</span> 5764 </label> 5765 </div> 5766 </div> 5767 <div role="group" aria-label="CONVEX CURVE" wire:key="search-variant-402"> 5768 <span class="ecom-search-filter-section-label">CONVEX CURVE</span> 5769 <div class="ecom-search-filter-list"> 5770 <label class="ecom-search-filter-item" wire:key="search-variant-option-891"> 5771 <input 5772 type="checkbox" 5773 value="891" 5774 class="ecom-search-checkbox" 5775 wire:model.live="selectedVariantOptions" 5776 /> 5777 <span class="ecom-search-filter-item-text">NONE</span> 5778 <span class="ecom-search-filter-item-count">(1)</span> 5779 </label> 5780 <label class="ecom-search-filter-item" wire:key="search-variant-option-894"> 5781 <input 5782 type="checkbox" 5783 value="894" 5784 class="ecom-search-checkbox" 5785 wire:model.live="selectedVariantOptions" 5786 /> 5787 <span class="ecom-search-filter-item-text">CONVEX CURVE</span> 5788 <span class="ecom-search-filter-item-count">(1)</span> 5789 </label> 5790 </div> 5791 </div> 5792 <div role="group" aria-label="Height Option" wire:key="search-variant-206"> 5793 <span class="ecom-search-filter-section-label">Height Option</span> 5794 <div class="ecom-search-filter-list"> 5795 <label class="ecom-search-filter-item" wire:key="search-variant-option-389"> 5796 <input 5797 type="checkbox" 5798 value="389" 5799 class="ecom-search-checkbox" 5800 wire:model.live="selectedVariantOptions" 5801 /> 5802 <span class="ecom-search-filter-item-text">TS-004-17</span> 5803 <span class="ecom-search-filter-item-count">(1)</span> 5804 </label> 5805 <label class="ecom-search-filter-item" wire:key="search-variant-option-390"> 5806 <input 5807 type="checkbox" 5808 value="390" 5809 class="ecom-search-checkbox" 5810 wire:model.live="selectedVariantOptions" 5811 /> 5812 <span class="ecom-search-filter-item-text">TS-004-23</span>
5813 <span class="ecom-search-filter-item-count">(1)</span> 5814 </label> 5815 </div> 5816 </div> 5817 <div role="group" aria-label="Length" wire:key="search-variant-575"> 5818 <span class="ecom-search-filter-section-label">Length</span> 5819 <div class="ecom-search-filter-list"> 5820 <label class="ecom-search-filter-item" wire:key="search-variant-option-1337"> 5821 <input 5822 type="checkbox" 5823 value="1337" 5824 class="ecom-search-checkbox" 5825 wire:model.live="selectedVariantOptions" 5826 /> 5827 <span class="ecom-search-filter-item-text">6ft</span> 5828 <span class="ecom-search-filter-item-count">(1)</span> 5829 </label> 5830 <label class="ecom-search-filter-item" wire:key="search-variant-option-1344"> 5831 <input 5832 type="checkbox" 5833 value="1344" 5834 class="ecom-search-checkbox" 5835 wire:model.live="selectedVariantOptions" 5836 /> 5837 <span class="ecom-search-filter-item-text">3ft</span> 5838 <span class="ecom-search-filter-item-count">(1)</span> 5839 </label> 5840 </div> 5841 </div> 5842 <div role="group" aria-label="Material" wire:key="search-variant-55"> 5843 <span class="ecom-search-filter-section-label">Material</span> 5844 <div class="ecom-search-filter-list"> 5845 <label class="ecom-search-filter-item" wire:key="search-variant-option-83"> 5846 <input 5847 type="checkbox" 5848 value="83" 5849 class="ecom-search-checkbox" 5850 wire:model.live="selectedVariantOptions" 5851 /> 5852 <span class="ecom-search-filter-item-text">AQUA</span> 5853 <span class="ecom-search-filter-item-count">(61)</span> 5854 </label> 5855 <label class="ecom-search-filter-item" wire:key="search-variant-option-1917"> 5856 <input 5857 type="checkbox" 5858 value="1917" 5859 class="ecom-search-checkbox" 5860 wire:model.live="selectedVariantOptions" 5861 /> 5862 <span class="ecom-search-filter-item-text">REPT</span> 5863 <span class="ecom-search-filter-item-count">(3)</span> 5864 </label> 5865 <label class="ecom-search-filter-item" wire:key="search-variant-option-1918"> 5866 <input 5867 type="checkbox" 5868 value="1918" 5869 class="ecom-search-checkbox" 5870 wire:model.live="selectedVariantOptions" 5871 />
5872 <span class="ecom-search-filter-item-text">REPTILE</span> 5873 <span class="ecom-search-filter-item-count">(47)</span> 5874 </label> 5875 <label class="ecom-search-filter-item" wire:key="search-variant-option-1920"> 5876 <input 5877 type="checkbox" 5878 value="1920" 5879 class="ecom-search-checkbox" 5880 wire:model.live="selectedVariantOptions" 5881 /> 5882 <span class="ecom-search-filter-item-text">STANDARD</span> 5883 <span class="ecom-search-filter-item-count">(1)</span> 5884 </label> 5885 <label class="ecom-search-filter-item" wire:key="search-variant-option-1921"> 5886 <input 5887 type="checkbox" 5888 value="1921" 5889 class="ecom-search-checkbox" 5890 wire:model.live="selectedVariantOptions" 5891 /> 5892 <span class="ecom-search-filter-item-text">With Bowl</span> 5893 <span class="ecom-search-filter-item-count">(6)</span> 5894 </label> 5895 </div> 5896 </div> 5897 <div role="group" aria-label="Metal Bowl" wire:key="search-variant-718"> 5898 <span class="ecom-search-filter-section-label">Metal Bowl</span> 5899 <div class="ecom-search-filter-list"> 5900 <label class="ecom-search-filter-item" wire:key="search-variant-option-1737"> 5901 <input 5902 type="checkbox" 5903 value="1737" 5904 class="ecom-search-checkbox" 5905 wire:model.live="selectedVariantOptions" 5906 /> 5907 <span class="ecom-search-filter-item-text">With Bowl</span> 5908 <span class="ecom-search-filter-item-count">(1)</span> 5909 </label> 5910 </div> 5911 </div> 5912 <div role="group" aria-label="OPTIONAL SLIDE PANELS" wire:key="search-variant-689"> 5913 <span class="ecom-search-filter-section-label">OPTIONAL SLIDE PANELS</span> 5914 <div class="ecom-search-filter-list"> 5915 <label class="ecom-search-filter-item" wire:key="search-variant-option-1654"> 5916 <input 5917 type="checkbox" 5918 value="1654" 5919 class="ecom-search-checkbox" 5920 wire:model.live="selectedVariantOptions" 5921 /> 5922 <span class="ecom-search-filter-item-text">NONE</span>
5923 <span class="ecom-search-filter-item-count">(1)</span> 5924 </label> 5925 <label class="ecom-search-filter-item" wire:key="search-variant-option-1658"> 5926 <input 5927 type="checkbox" 5928 value="1658" 5929 class="ecom-search-checkbox" 5930 wire:model.live="selectedVariantOptions" 5931 /> 5932 <span class="ecom-search-filter-item-text">SLIDE PANELS (slide NOT included)</span> 5933 <span class="ecom-search-filter-item-count">(1)</span> 5934 </label> 5935 </div> 5936 </div> 5937 <div role="group" aria-label="OPTIONAL STEPS" wire:key="search-variant-588"> 5938 <span class="ecom-search-filter-section-label">OPTIONAL STEPS</span> 5939 <div class="ecom-search-filter-list"> 5940 <label class="ecom-search-filter-item" wire:key="search-variant-option-1365"> 5941 <input 5942 type="checkbox" 5943 value="1365" 5944 class="ecom-search-checkbox" 5945 wire:model.live="selectedVariantOptions" 5946 /> 5947 <span class="ecom-search-filter-item-text">NONE</span> 5948 <span class="ecom-search-filter-item-count">(2)</span> 5949 </label> 5950 <label class="ecom-search-filter-item" wire:key="search-variant-option-1367"> 5951 <input 5952 type="checkbox" 5953 value="1367" 5954 class="ecom-search-checkbox" 5955 wire:model.live="selectedVariantOptions" 5956 /> 5957 <span class="ecom-search-filter-item-text">STEPS 2' HIGH</span> 5958 <span class="ecom-search-filter-item-count">(1)</span> 5959 </label> 5960 <label class="ecom-search-filter-item" wire:key="search-variant-option-1933"> 5961 <input 5962 type="checkbox" 5963 value="1933" 5964 class="ecom-search-checkbox" 5965 wire:model.live="selectedVariantOptions" 5966 /> 5967 <span class="ecom-search-filter-item-text">STEPS 2 HIGH</span> 5968 <span class="ecom-search-filter-item-count">(1)</span> 5969 </label> 5970 </div> 5971 </div> 5972 <div role="group" aria-label="PACK SIZE" wire:key="search-variant-503"> 5973 <span class="ecom-search-filter-section-label">PACK SIZE</span> 5974 <div class="ecom-search-filter-list"> 5975 <label class="ecom-search-filter-item" wire:key="search-variant-option-1143"> 5976 <input 5977 type="checkbox" 5978 value="1143" 5979 class="ecom-search-checkbox" 5980 wire:model.live="selectedVariantOptions" 5981 />
5982 <span class="ecom-search-filter-item-text">4 PACK</span> 5983 <span class="ecom-search-filter-item-count">(1)</span> 5984 </label> 5985 <label class="ecom-search-filter-item" wire:key="search-variant-option-1146"> 5986 <input 5987 type="checkbox" 5988 value="1146" 5989 class="ecom-search-checkbox" 5990 wire:model.live="selectedVariantOptions" 5991 /> 5992 <span class="ecom-search-filter-item-text">8 PACK</span> 5993 <span class="ecom-search-filter-item-count">(1)</span> 5994 </label> 5995 </div> 5996 </div> 5997 <div role="group" aria-label="Select Rock" wire:key="search-variant-465"> 5998 <span class="ecom-search-filter-section-label">Select Rock</span> 5999 <div class="ecom-search-filter-list"> 6000 <label class="ecom-search-filter-item" wire:key="search-variant-option-1058"> 6001 <input 6002 type="checkbox" 6003 value="1058" 6004 class="ecom-search-checkbox" 6005 wire:model.live="selectedVariantOptions" 6006 /> 6007 <span class="ecom-search-filter-item-text">Rock - A</span> 6008 <span class="ecom-search-filter-item-count">(1)</span> 6009 </label> 6010 <label class="ecom-search-filter-item" wire:key="search-variant-option-1060"> 6011 <input 6012 type="checkbox" 6013 value="1060" 6014 class="ecom-search-checkbox" 6015 wire:model.live="selectedVariantOptions" 6016 /> 6017 <span class="ecom-search-filter-item-text">Rock - B</span> 6018 <span class="ecom-search-filter-item-count">(1)</span> 6019 </label> 6020 <label class="ecom-search-filter-item" wire:key="search-variant-option-1069"> 6021 <input 6022 type="checkbox" 6023 value="1069" 6024 class="ecom-search-checkbox" 6025 wire:model.live="selectedVariantOptions" 6026 /> 6027 <span class="ecom-search-filter-item-text">Rock - C</span> 6028 <span class="ecom-search-filter-item-count">(1)</span> 6029 </label> 6030 <label class="ecom-search-filter-item" wire:key="search-variant-option-1072"> 6031 <input 6032 type="checkbox" 6033 value="1072" 6034 class="ecom-search-checkbox" 6035 wire:model.live="selectedVariantOptions" 6036 />
6037 <span class="ecom-search-filter-item-text">Rock - D</span> 6038 <span class="ecom-search-filter-item-count">(1)</span> 6039 </label> 6040 <label class="ecom-search-filter-item" wire:key="search-variant-option-1073"> 6041 <input 6042 type="checkbox" 6043 value="1073" 6044 class="ecom-search-checkbox" 6045 wire:model.live="selectedVariantOptions" 6046 /> 6047 <span class="ecom-search-filter-item-text">Rock - E</span> 6048 <span class="ecom-search-filter-item-count">(1)</span> 6049 </label> 6050 <label class="ecom-search-filter-item" wire:key="search-variant-option-1082"> 6051 <input 6052 type="checkbox" 6053 value="1082" 6054 class="ecom-search-checkbox" 6055 wire:model.live="selectedVariantOptions" 6056 /> 6057 <span class="ecom-search-filter-item-text">Rock - F</span> 6058 <span class="ecom-search-filter-item-count">(1)</span> 6059 </label> 6060 <label class="ecom-search-filter-item" wire:key="search-variant-option-1083"> 6061 <input 6062 type="checkbox" 6063 value="1083" 6064 class="ecom-search-checkbox" 6065 wire:model.live="selectedVariantOptions" 6066 /> 6067 <span class="ecom-search-filter-item-text">Rock - G</span> 6068 <span class="ecom-search-filter-item-count">(1)</span> 6069 </label> 6070 <label class="ecom-search-filter-item" wire:key="search-variant-option-1085"> 6071 <input 6072 type="checkbox" 6073 value="1085" 6074 class="ecom-search-checkbox" 6075 wire:model.live="selectedVariantOptions" 6076 /> 6077 <span class="ecom-search-filter-item-text">Rock - H</span> 6078 <span class="ecom-search-filter-item-count">(1)</span> 6079 </label> 6080 <label class="ecom-search-filter-item" wire:key="search-variant-option-1086"> 6081 <input 6082 type="checkbox" 6083 value="1086" 6084 class="ecom-search-checkbox" 6085 wire:model.live="selectedVariantOptions" 6086 /> 6087 <span class="ecom-search-filter-item-text">Rock - I</span>
6088 <span class="ecom-search-filter-item-count">(1)</span> 6089 </label> 6090 <label class="ecom-search-filter-item" wire:key="search-variant-option-1092"> 6091 <input 6092 type="checkbox" 6093 value="1092" 6094 class="ecom-search-checkbox" 6095 wire:model.live="selectedVariantOptions" 6096 /> 6097 <span class="ecom-search-filter-item-text">Rock - J</span> 6098 <span class="ecom-search-filter-item-count">(1)</span> 6099 </label> 6100 <label class="ecom-search-filter-item" wire:key="search-variant-option-1094"> 6101 <input 6102 type="checkbox" 6103 value="1094" 6104 class="ecom-search-checkbox" 6105 wire:model.live="selectedVariantOptions" 6106 /> 6107 <span class="ecom-search-filter-item-text">Rock - K</span> 6108 <span class="ecom-search-filter-item-count">(1)</span> 6109 </label> 6110 <label class="ecom-search-filter-item" wire:key="search-variant-option-1096"> 6111 <input 6112 type="checkbox" 6113 value="1096" 6114 class="ecom-search-checkbox" 6115 wire:model.live="selectedVariantOptions" 6116 /> 6117 <span class="ecom-search-filter-item-text">Rock - L</span> 6118 <span class="ecom-search-filter-item-count">(1)</span> 6119 </label> 6120 </div> 6121 </div> 6122 <div role="group" aria-label="Size" wire:key="search-variant-7"> 6123 <span class="ecom-search-filter-section-label">Size</span> 6124 <div class="ecom-search-filter-list"> 6125 <label class="ecom-search-filter-item" wire:key="search-variant-option-19"> 6126 <input 6127 type="checkbox" 6128 value="19" 6129 class="ecom-search-checkbox" 6130 wire:model.live="selectedVariantOptions" 6131 /> 6132 <span class="ecom-search-filter-item-text">24X16</span> 6133 <span class="ecom-search-filter-item-count">(2)</span> 6134 </label> 6135 <label class="ecom-search-filter-item" wire:key="search-variant-option-20"> 6136 <input 6137 type="checkbox" 6138 value="20" 6139 class="ecom-search-checkbox" 6140 wire:model.live="selectedVariantOptions" 6141 />
6142 <span class="ecom-search-filter-item-text">36X18</span> 6143 <span class="ecom-search-filter-item-count">(1)</span> 6144 </label> 6145 <label class="ecom-search-filter-item" wire:key="search-variant-option-21"> 6146 <input 6147 type="checkbox" 6148 value="21" 6149 class="ecom-search-checkbox" 6150 wire:model.live="selectedVariantOptions" 6151 /> 6152 <span class="ecom-search-filter-item-text">48X18</span> 6153 <span class="ecom-search-filter-item-count">(1)</span> 6154 </label> 6155 <label class="ecom-search-filter-item" wire:key="search-variant-option-22"> 6156 <input 6157 type="checkbox" 6158 value="22" 6159 class="ecom-search-checkbox" 6160 wire:model.live="selectedVariantOptions" 6161 /> 6162 <span class="ecom-search-filter-item-text">48X24</span> 6163 <span class="ecom-search-filter-item-count">(3)</span> 6164 </label> 6165 <label class="ecom-search-filter-item" wire:key="search-variant-option-23"> 6166 <input 6167 type="checkbox" 6168 value="23" 6169 class="ecom-search-checkbox" 6170 wire:model.live="selectedVariantOptions" 6171 /> 6172 <span class="ecom-search-filter-item-text">72X24</span> 6173 <span class="ecom-search-filter-item-count">(3)</span> 6174 </label> 6175 <label class="ecom-search-filter-item" wire:key="search-variant-option-1861"> 6176 <input 6177 type="checkbox" 6178 value="1861" 6179 class="ecom-search-checkbox" 6180 wire:model.live="selectedVariantOptions" 6181 /> 6182 <span class="ecom-search-filter-item-text">12x12</span> 6183 <span class="ecom-search-filter-item-count">(1)</span> 6184 </label> 6185 <label class="ecom-search-filter-item" wire:key="search-variant-option-1862"> 6186 <input 6187 type="checkbox" 6188 value="1862" 6189 class="ecom-search-checkbox" 6190 wire:model.live="selectedVariantOptions" 6191 /> 6192 <span class="ecom-search-filter-item-text">12x18</span> 6193 <span class="ecom-search-filter-item-count">(1)</span> 6194 </label> 6195 <label class="ecom-search-filter-item" wire:key="search-variant-option-1863"> 6196 <input 6197 type="checkbox" 6198 value="1863" 6199 class="ecom-search-checkbox" 6200 wire:model.live="selectedVariantOptions" 6201 />
6202 <span class="ecom-search-filter-item-text">18x18</span> 6203 <span class="ecom-search-filter-item-count">(1)</span> 6204 </label> 6205 <label class="ecom-search-filter-item" wire:key="search-variant-option-1864"> 6206 <input 6207 type="checkbox" 6208 value="1864" 6209 class="ecom-search-checkbox" 6210 wire:model.live="selectedVariantOptions" 6211 /> 6212 <span class="ecom-search-filter-item-text">18x24</span> 6213 <span class="ecom-search-filter-item-count">(1)</span> 6214 </label> 6215 <label class="ecom-search-filter-item" wire:key="search-variant-option-1866"> 6216 <input 6217 type="checkbox" 6218 value="1866" 6219 class="ecom-search-checkbox" 6220 wire:model.live="selectedVariantOptions" 6221 /> 6222 <span class="ecom-search-filter-item-text">20x12</span> 6223 <span class="ecom-search-filter-item-count">(1)</span> 6224 </label> 6225 <label class="ecom-search-filter-item" wire:key="search-variant-option-1867"> 6226 <input 6227 type="checkbox" 6228 value="1867" 6229 class="ecom-search-checkbox" 6230 wire:model.live="selectedVariantOptions" 6231 /> 6232 <span class="ecom-search-filter-item-text">24x12</span> 6233 <span class="ecom-search-filter-item-count">(1)</span> 6234 </label> 6235 <label class="ecom-search-filter-item" wire:key="search-variant-option-1868"> 6236 <input 6237 type="checkbox" 6238 value="1868" 6239 class="ecom-search-checkbox" 6240 wire:model.live="selectedVariantOptions" 6241 /> 6242 <span class="ecom-search-filter-item-text">24x24</span> 6243 <span class="ecom-search-filter-item-count">(1)</span> 6244 </label> 6245 <label class="ecom-search-filter-item" wire:key="search-variant-option-1869"> 6246 <input 6247 type="checkbox" 6248 value="1869" 6249 class="ecom-search-checkbox" 6250 wire:model.live="selectedVariantOptions" 6251 /> 6252 <span class="ecom-search-filter-item-text">30x12</span>
6253 <span class="ecom-search-filter-item-count">(1)</span> 6254 </label> 6255 <label class="ecom-search-filter-item" wire:key="search-variant-option-1870"> 6256 <input 6257 type="checkbox" 6258 value="1870" 6259 class="ecom-search-checkbox" 6260 wire:model.live="selectedVariantOptions" 6261 /> 6262 <span class="ecom-search-filter-item-text">30x18</span> 6263 <span class="ecom-search-filter-item-count">(1)</span> 6264 </label> 6265 <label class="ecom-search-filter-item" wire:key="search-variant-option-1871"> 6266 <input 6267 type="checkbox" 6268 value="1871" 6269 class="ecom-search-checkbox" 6270 wire:model.live="selectedVariantOptions" 6271 /> 6272 <span class="ecom-search-filter-item-text">30x24</span> 6273 <span class="ecom-search-filter-item-count">(1)</span> 6274 </label> 6275 <label class="ecom-search-filter-item" wire:key="search-variant-option-1872"> 6276 <input 6277 type="checkbox" 6278 value="1872" 6279 class="ecom-search-checkbox" 6280 wire:model.live="selectedVariantOptions" 6281 /> 6282 <span class="ecom-search-filter-item-text">36x12</span> 6283 <span class="ecom-search-filter-item-count">(1)</span> 6284 </label> 6285 <label class="ecom-search-filter-item" wire:key="search-variant-option-1873"> 6286 <input 6287 type="checkbox" 6288 value="1873" 6289 class="ecom-search-checkbox" 6290 wire:model.live="selectedVariantOptions" 6291 /> 6292 <span class="ecom-search-filter-item-text">36x16</span> 6293 <span class="ecom-search-filter-item-count">(1)</span> 6294 </label> 6295 <label class="ecom-search-filter-item" wire:key="search-variant-option-1874"> 6296 <input 6297 type="checkbox" 6298 value="1874" 6299 class="ecom-search-checkbox" 6300 wire:model.live="selectedVariantOptions" 6301 /> 6302 <span class="ecom-search-filter-item-text">36x20</span> 6303 <span class="ecom-search-filter-item-count">(1)</span> 6304 </label> 6305 <label class="ecom-search-filter-item" wire:key="search-variant-option-1875"> 6306 <input 6307 type="checkbox" 6308 value="1875" 6309 class="ecom-search-checkbox" 6310 wire:model.live="selectedVariantOptions" 6311 />
6312 <span class="ecom-search-filter-item-text">36x24</span> 6313 <span class="ecom-search-filter-item-count">(1)</span> 6314 </label> 6315 <label class="ecom-search-filter-item" wire:key="search-variant-option-1877"> 6316 <input 6317 type="checkbox" 6318 value="1877" 6319 class="ecom-search-checkbox" 6320 wire:model.live="selectedVariantOptions" 6321 /> 6322 <span class="ecom-search-filter-item-text">48x16</span> 6323 <span class="ecom-search-filter-item-count">(1)</span> 6324 </label> 6325 <label class="ecom-search-filter-item" wire:key="search-variant-option-1878"> 6326 <input 6327 type="checkbox" 6328 value="1878" 6329 class="ecom-search-checkbox" 6330 wire:model.live="selectedVariantOptions" 6331 /> 6332 <span class="ecom-search-filter-item-text">48x20</span> 6333 <span class="ecom-search-filter-item-count">(2)</span> 6334 </label> 6335 <label class="ecom-search-filter-item" wire:key="search-variant-option-1879"> 6336 <input 6337 type="checkbox" 6338 value="1879" 6339 class="ecom-search-checkbox" 6340 wire:model.live="selectedVariantOptions" 6341 /> 6342 <span class="ecom-search-filter-item-text">48x28</span> 6343 <span class="ecom-search-filter-item-count">(1)</span> 6344 </label> 6345 <label class="ecom-search-filter-item" wire:key="search-variant-option-1880"> 6346 <input 6347 type="checkbox" 6348 value="1880" 6349 class="ecom-search-checkbox" 6350 wire:model.live="selectedVariantOptions" 6351 /> 6352 <span class="ecom-search-filter-item-text">48x29</span> 6353 <span class="ecom-search-filter-item-count">(1)</span> 6354 </label> 6355 <label class="ecom-search-filter-item" wire:key="search-variant-option-1882"> 6356 <input 6357 type="checkbox" 6358 value="1882" 6359 class="ecom-search-checkbox" 6360 wire:model.live="selectedVariantOptions" 6361 /> 6362 <span class="ecom-search-filter-item-text">60x20</span>
6363 <span class="ecom-search-filter-item-count">(1)</span> 6364 </label> 6365 <label class="ecom-search-filter-item" wire:key="search-variant-option-1883"> 6366 <input 6367 type="checkbox" 6368 value="1883" 6369 class="ecom-search-checkbox" 6370 wire:model.live="selectedVariantOptions" 6371 /> 6372 <span class="ecom-search-filter-item-text">60x24</span> 6373 <span class="ecom-search-filter-item-count">(1)</span> 6374 </label> 6375 <label class="ecom-search-filter-item" wire:key="search-variant-option-1884"> 6376 <input 6377 type="checkbox" 6378 value="1884" 6379 class="ecom-search-checkbox" 6380 wire:model.live="selectedVariantOptions" 6381 /> 6382 <span class="ecom-search-filter-item-text">60x28</span> 6383 <span class="ecom-search-filter-item-count">(1)</span> 6384 </label> 6385 <label class="ecom-search-filter-item" wire:key="search-variant-option-1885"> 6386 <input 6387 type="checkbox" 6388 value="1885" 6389 class="ecom-search-checkbox" 6390 wire:model.live="selectedVariantOptions" 6391 /> 6392 <span class="ecom-search-filter-item-text">72x20</span> 6393 <span class="ecom-search-filter-item-count">(1)</span> 6394 </label> 6395 <label class="ecom-search-filter-item" wire:key="search-variant-option-1886"> 6396 <input 6397 type="checkbox" 6398 value="1886" 6399 class="ecom-search-checkbox" 6400 wire:model.live="selectedVariantOptions" 6401 /> 6402 <span class="ecom-search-filter-item-text">72x22</span> 6403 <span class="ecom-search-filter-item-count">(1)</span> 6404 </label> 6405 <label class="ecom-search-filter-item" wire:key="search-variant-option-1887"> 6406 <input 6407 type="checkbox" 6408 value="1887" 6409 class="ecom-search-checkbox" 6410 wire:model.live="selectedVariantOptions" 6411 /> 6412 <span class="ecom-search-filter-item-text">72x27</span> 6413 <span class="ecom-search-filter-item-count">(1)</span> 6414 </label> 6415 <label class="ecom-search-filter-item" wire:key="search-variant-option-1888"> 6416 <input 6417 type="checkbox" 6418 value="1888" 6419 class="ecom-search-checkbox" 6420 wire:model.live="selectedVariantOptions" 6421 />
6422 <span class="ecom-search-filter-item-text">72x28</span> 6423 <span class="ecom-search-filter-item-count">(1)</span> 6424 </label> 6425 <label class="ecom-search-filter-item" wire:key="search-variant-option-1889"> 6426 <input 6427 type="checkbox" 6428 value="1889" 6429 class="ecom-search-checkbox" 6430 wire:model.live="selectedVariantOptions" 6431 /> 6432 <span class="ecom-search-filter-item-text">72x29</span> 6433 <span class="ecom-search-filter-item-count">(1)</span> 6434 </label> 6435 <label class="ecom-search-filter-item" wire:key="search-variant-option-1908"> 6436 <input 6437 type="checkbox" 6438 value="1908" 6439 class="ecom-search-checkbox" 6440 wire:model.live="selectedVariantOptions" 6441 /> 6442 <span class="ecom-search-filter-item-text">Extra Large</span> 6443 <span class="ecom-search-filter-item-count">(2)</span> 6444 </label> 6445 <label class="ecom-search-filter-item" wire:key="search-variant-option-1909"> 6446 <input 6447 type="checkbox" 6448 value="1909" 6449 class="ecom-search-checkbox" 6450 wire:model.live="selectedVariantOptions" 6451 /> 6452 <span class="ecom-search-filter-item-text">Extra Small</span> 6453 <span class="ecom-search-filter-item-count">(1)</span> 6454 </label> 6455 <label class="ecom-search-filter-item" wire:key="search-variant-option-1910"> 6456 <input 6457 type="checkbox" 6458 value="1910" 6459 class="ecom-search-checkbox" 6460 wire:model.live="selectedVariantOptions" 6461 /> 6462 <span class="ecom-search-filter-item-text">Large</span> 6463 <span class="ecom-search-filter-item-count">(3)</span> 6464 </label> 6465 <label class="ecom-search-filter-item" wire:key="search-variant-option-1911"> 6466 <input 6467 type="checkbox" 6468 value="1911" 6469 class="ecom-search-checkbox" 6470 wire:model.live="selectedVariantOptions" 6471 /> 6472 <span class="ecom-search-filter-item-text">Medium</span>
6473 <span class="ecom-search-filter-item-count">(3)</span> 6474 </label> 6475 <label class="ecom-search-filter-item" wire:key="search-variant-option-1913"> 6476 <input 6477 type="checkbox" 6478 value="1913" 6479 class="ecom-search-checkbox" 6480 wire:model.live="selectedVariantOptions" 6481 /> 6482 <span class="ecom-search-filter-item-text">Small</span> 6483 <span class="ecom-search-filter-item-count">(3)</span> 6484 </label> 6485 <label class="ecom-search-filter-item" wire:key="search-variant-option-1914"> 6486 <input 6487 type="checkbox" 6488 value="1914" 6489 class="ecom-search-checkbox" 6490 wire:model.live="selectedVariantOptions" 6491 /> 6492 <span class="ecom-search-filter-item-text">SMALL PATIO POND</span> 6493 <span class="ecom-search-filter-item-count">(1)</span> 6494 </label> 6495 </div> 6496 </div> 6497 <div role="group" aria-label="Style" wire:key="search-variant-676"> 6498 <span class="ecom-search-filter-section-label">Style</span> 6499 <div class="ecom-search-filter-list"> 6500 <label class="ecom-search-filter-item" wire:key="search-variant-option-1602"> 6501 <input 6502 type="checkbox" 6503 value="1602" 6504 class="ecom-search-checkbox" 6505 wire:model.live="selectedVariantOptions" 6506 /> 6507 <span class="ecom-search-filter-item-text">Basalt Wall</span> 6508 <span class="ecom-search-filter-item-count">(1)</span> 6509 </label> 6510 <label class="ecom-search-filter-item" wire:key="search-variant-option-1603"> 6511 <input 6512 type="checkbox" 6513 value="1603" 6514 class="ecom-search-checkbox" 6515 wire:model.live="selectedVariantOptions" 6516 /> 6517 <span class="ecom-search-filter-item-text">Cavern Wall</span> 6518 <span class="ecom-search-filter-item-count">(1)</span> 6519 </label> 6520 <label class="ecom-search-filter-item" wire:key="search-variant-option-1609"> 6521 <input 6522 type="checkbox" 6523 value="1609" 6524 class="ecom-search-checkbox" 6525 wire:model.live="selectedVariantOptions" 6526 />
6527 <span class="ecom-search-filter-item-text">Crystal Wall</span> 6528 <span class="ecom-search-filter-item-count">(1)</span> 6529 </label> 6530 <label class="ecom-search-filter-item" wire:key="search-variant-option-1617"> 6531 <input 6532 type="checkbox" 6533 value="1617" 6534 class="ecom-search-checkbox" 6535 wire:model.live="selectedVariantOptions" 6536 /> 6537 <span class="ecom-search-filter-item-text">Grotto Wall</span> 6538 <span class="ecom-search-filter-item-count">(1)</span> 6539 </label> 6540 <label class="ecom-search-filter-item" wire:key="search-variant-option-1623"> 6541 <input 6542 type="checkbox" 6543 value="1623" 6544 class="ecom-search-checkbox" 6545 wire:model.live="selectedVariantOptions" 6546 /> 6547 <span class="ecom-search-filter-item-text">Cobblestone</span> 6548 <span class="ecom-search-filter-item-count">(1)</span> 6549 </label> 6550 <label class="ecom-search-filter-item" wire:key="search-variant-option-1628"> 6551 <input 6552 type="checkbox" 6553 value="1628" 6554 class="ecom-search-checkbox" 6555 wire:model.live="selectedVariantOptions" 6556 /> 6557 <span class="ecom-search-filter-item-text">Malawi Wall</span> 6558 <span class="ecom-search-filter-item-count">(1)</span> 6559 </label> 6560 <label class="ecom-search-filter-item" wire:key="search-variant-option-1632"> 6561 <input 6562 type="checkbox" 6563 value="1632" 6564 class="ecom-search-checkbox" 6565 wire:model.live="selectedVariantOptions" 6566 /> 6567 <span class="ecom-search-filter-item-text">Pecan Tree Bark</span> 6568 <span class="ecom-search-filter-item-count">(1)</span> 6569 </label> 6570 <label class="ecom-search-filter-item" wire:key="search-variant-option-1633"> 6571 <input 6572 type="checkbox" 6573 value="1633" 6574 class="ecom-search-checkbox" 6575 wire:model.live="selectedVariantOptions" 6576 /> 6577 <span class="ecom-search-filter-item-text">Dragonstone</span>
6578 <span class="ecom-search-filter-item-count">(1)</span> 6579 </label> 6580 <label class="ecom-search-filter-item" wire:key="search-variant-option-1634"> 6581 <input 6582 type="checkbox" 6583 value="1634" 6584 class="ecom-search-checkbox" 6585 wire:model.live="selectedVariantOptions" 6586 /> 6587 <span class="ecom-search-filter-item-text">Slate Wall</span> 6588 <span class="ecom-search-filter-item-count">(1)</span> 6589 </label> 6590 <label class="ecom-search-filter-item" wire:key="search-variant-option-1637"> 6591 <input 6592 type="checkbox" 6593 value="1637" 6594 class="ecom-search-checkbox" 6595 wire:model.live="selectedVariantOptions" 6596 /> 6597 <span class="ecom-search-filter-item-text">Crazy Stone</span> 6598 <span class="ecom-search-filter-item-count">(1)</span> 6599 </label> 6600 <label class="ecom-search-filter-item" wire:key="search-variant-option-1642"> 6601 <input 6602 type="checkbox" 6603 value="1642" 6604 class="ecom-search-checkbox" 6605 wire:model.live="selectedVariantOptions" 6606 /> 6607 <span class="ecom-search-filter-item-text">Riverfall</span> 6608 <span class="ecom-search-filter-item-count">(1)</span> 6609 </label> 6610 <label class="ecom-search-filter-item" wire:key="search-variant-option-1646"> 6611 <input 6612 type="checkbox" 6613 value="1646" 6614 class="ecom-search-checkbox" 6615 wire:model.live="selectedVariantOptions" 6616 /> 6617 <span class="ecom-search-filter-item-text">Rocky</span> 6618 <span class="ecom-search-filter-item-count">(1)</span> 6619 </label> 6620 <label class="ecom-search-filter-item" wire:key="search-variant-option-1651"> 6621 <input 6622 type="checkbox" 6623 value="1651" 6624 class="ecom-search-checkbox" 6625 wire:model.live="selectedVariantOptions" 6626 /> 6627 <span class="ecom-search-filter-item-text">Andes</span> 6628 <span class="ecom-search-filter-item-count">(1)</span> 6629 </label> 6630 <label class="ecom-search-filter-item" wire:key="search-variant-option-1936"> 6631 <input 6632 type="checkbox" 6633 value="1936" 6634 class="ecom-search-checkbox" 6635 wire:model.live="selectedVariantOptions" 6636 />
6637 <span class="ecom-search-filter-item-text">Woodland Wall</span> 6638 <span class="ecom-search-filter-item-count">(1)</span> 6639 </label> 6640 </div> 6641 </div> 6642 <div role="group" aria-label="Tube Length" wire:key="search-variant-207"> 6643 <span class="ecom-search-filter-section-label">Tube Length</span> 6644 <div class="ecom-search-filter-list"> 6645 <label class="ecom-search-filter-item" wire:key="search-variant-option-391"> 6646 <input 6647 type="checkbox" 6648 value="391" 6649 class="ecom-search-checkbox" 6650 wire:model.live="selectedVariantOptions" 6651 /> 6652 <span class="ecom-search-filter-item-text">5' Length</span> 6653 <span class="ecom-search-filter-item-count">(1)</span> 6654 </label> 6655 <label class="ecom-search-filter-item" wire:key="search-variant-option-392"> 6656 <input 6657 type="checkbox" 6658 value="392" 6659 class="ecom-search-checkbox" 6660 wire:model.live="selectedVariantOptions" 6661 /> 6662 <span class="ecom-search-filter-item-text">10' Length</span> 6663 <span class="ecom-search-filter-item-count">(1)</span> 6664 </label> 6665 <label class="ecom-search-filter-item" wire:key="search-variant-option-393"> 6666 <input 6667 type="checkbox" 6668 value="393" 6669 class="ecom-search-checkbox" 6670 wire:model.live="selectedVariantOptions" 6671 /> 6672 <span class="ecom-search-filter-item-text">15' Length</span> 6673 <span class="ecom-search-filter-item-count">(1)</span> 6674 </label> 6675 <label class="ecom-search-filter-item" wire:key="search-variant-option-394"> 6676 <input 6677 type="checkbox" 6678 value="394" 6679 class="ecom-search-checkbox" 6680 wire:model.live="selectedVariantOptions" 6681 /> 6682 <span class="ecom-search-filter-item-text">20' Length</span> 6683 <span class="ecom-search-filter-item-count">(1)</span> 6684 </label> 6685 <label class="ecom-search-filter-item" wire:key="search-variant-option-395"> 6686 <input 6687 type="checkbox" 6688 value="395" 6689 class="ecom-search-checkbox" 6690 wire:model.live="selectedVariantOptions" 6691 />
6692 <span class="ecom-search-filter-item-text">30' Length</span> 6693 <span class="ecom-search-filter-item-count">(1)</span> 6694 </label> 6695 <label class="ecom-search-filter-item" wire:key="search-variant-option-396"> 6696 <input 6697 type="checkbox" 6698 value="396" 6699 class="ecom-search-checkbox" 6700 wire:model.live="selectedVariantOptions" 6701 /> 6702 <span class="ecom-search-filter-item-text">50' Length</span> 6703 <span class="ecom-search-filter-item-count">(1)</span> 6704 </label> 6705 </div> 6706 </div> 6707 <div role="group" aria-label="WATERFALL HEIGHT" wire:key="search-variant-410"> 6708 <span class="ecom-search-filter-section-label">WATERFALL HEIGHT</span> 6709 <div class="ecom-search-filter-list"> 6710 <label class="ecom-search-filter-item" wire:key="search-variant-option-918"> 6711 <input 6712 type="checkbox" 6713 value="918" 6714 class="ecom-search-checkbox" 6715 wire:model.live="selectedVariantOptions" 6716 /> 6717 <span class="ecom-search-filter-item-text">2.5' tall</span> 6718 <span class="ecom-search-filter-item-count">(1)</span> 6719 </label> 6720 <label class="ecom-search-filter-item" wire:key="search-variant-option-926"> 6721 <input 6722 type="checkbox" 6723 value="926" 6724 class="ecom-search-checkbox" 6725 wire:model.live="selectedVariantOptions" 6726 /> 6727 <span class="ecom-search-filter-item-text">4' tall</span> 6728 <span class="ecom-search-filter-item-count">(1)</span> 6729 </label> 6730 <label class="ecom-search-filter-item" wire:key="search-variant-option-935"> 6731 <input 6732 type="checkbox" 6733 value="935" 6734 class="ecom-search-checkbox" 6735 wire:model.live="selectedVariantOptions" 6736 /> 6737 <span class="ecom-search-filter-item-text">5' tall</span> 6738 <span class="ecom-search-filter-item-count">(1)</span> 6739 </label> 6740 <label class="ecom-search-filter-item" wire:key="search-variant-option-939"> 6741 <input 6742 type="checkbox" 6743 value="939" 6744 class="ecom-search-checkbox" 6745 wire:model.live="selectedVariantOptions" 6746 />
6747 <span class="ecom-search-filter-item-text">6' tall</span> 6748 <span class="ecom-search-filter-item-count">(1)</span> 6749 </label> 6750 </div> 6751 </div> 6752 6753 </div> 6754 </div> 6755 </div> 6756 </div> 6757 6758 <!-- Right Side - Products --> 6759 <div class="ecom-search-results"> 6760 <div 6761 x-data="{ 6762 filterOpen: false, 6763 isDesktop: window.matchMedia('(min-width: 1024px)').matches, 6764 init() { 6765 const desktopQuery = window.matchMedia('(min-width: 1024px)'); 6766 desktopQuery.addEventListener('change', event => { 6767 this.isDesktop = event.matches; 6768 6769 if (event.matches) { 6770 this.filterOpen = false; 6771 } 6772 }); 6773 }, 6774 openFilters() { 6775 this.filterOpen = true; 6776 this.$nextTick(() => this.$refs.filterClose.focus()); 6777 }, 6778 closeFilters() { 6779 this.filterOpen = false; 6780 this.$nextTick(() => this.$refs.filterTrigger.focus()); 6781 }, 6782 }" 6783 class="not-prose"> 6784 <div class="ecom-product-list-grid"> 6785 6786 <div class="ecom-product-filter-layout"> 6787 6788 <!-- Products grid --> 6789 <div class="ecom-product-filter-main"> 6790 6791 <div class="ecom-sort-container"> 6792 </div> 6793 6794 <div wire:key="ecom-active-filters-container-0"> 6795 </div> 6796 <div class="ecom-grid-results ecom-grid-cols-3 6797"> 6798 <div wire:key="product-923" class="ecom-product-grid-card"> 6799 <a href="https://universalrocks.com/rc-crawler-course-ca" class="block" aria-label="RC Crawler Course - CA"> 6800 <!-- Product image --> 6801 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 6802 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/rc-car.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="RC Crawler Course - CA" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 6803 </div> 6804 </a> 6805 6806 <div class="ecom-card-body"> 6807 <!-- Product name --> 6808 <h3 class="ecom-card-title"> 6809 <a href="https://universalrocks.com/rc-crawler-course-ca"> 6810 RC Crawler Course - CA 6811 </a> 6812 </h3> 6813 6814 6815 <!-- Spacer that grows to push content down --> 6816 <div class="ecom-card-spacer"></div> 6817 6818 <!-- Price display - Always aligned --> 6819 6820 <div class="ecom-card-price"> 6821 <div class="ecom-product-price-display"> 6822 6823 <div class="ecom-price-regular"> 6824 $378.13 6825 </div> 6826 6827 </div> 6828 </div> 6829 6830 6831 6832 <!-- Stock/Availability Status --> 6833 6834 <!-- Add to Cart button or View Product button - Always at bottom --> 6835 <div> 6836 6837 </div> 6838 </div> 6839</div> 6840 <div wire:key="product-921" class="ecom-product-grid-card"> 6841 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-11" class="block" aria-label="Crawler Course Obstacle #11"> 6842 <!-- Product image --> 6843 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 6844 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,qual
6844ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-11-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #11" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 6845 </div> 6846 </a> 6847 6848 <div class="ecom-card-body"> 6849 <!-- Product name --> 6850 <h3 class="ecom-card-title"> 6851 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-11"> 6852 Crawler Course Obstacle #11 6853 </a> 6854 </h3> 6855 6856 6857 <!-- Spacer that grows to push content down --> 6858 <div class="ecom-card-spacer"></div> 6859 6860 <!-- Price display - Always aligned --> 6861 6862 <div class="ecom-card-price"> 6863 <div class="ecom-product-price-display"> 6864 6865 <div class="ecom-price-regular"> 6866 <span class="ecom-price-from-label">from</span> 6867 $153.00 6868 </div> 6869 6870 </div> 6871 </div> 6872 6873 6874 6875 <!-- Stock/Availability Status --> 6876 6877 <!-- Add to Cart button or View Product button - Always at bottom --> 6878 <div> 6879 6880 </div> 6881 </div> 6882</div> 6883 <div wire:key="product-920" class="ecom-product-grid-card"> 6884 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-10" class="block" aria-label="Crawler Course Obstacle #10"> 6885 <!-- Product image --> 6886 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 6887 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-10-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #10" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 6888 </div> 6889 </a> 6890 6891 <div class="ecom-card-body"> 6892 <!-- Product name --> 6893 <h3 class="ecom-card-title"> 6894 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-10"> 6895 Crawler Course Obstacle #10 6896 </a> 6897 </h3> 6898 6899 6900 <!-- Spacer that grows to push content down --> 6901 <div class="ecom-card-spacer"></div> 6902 6903 <!-- Price display - Always aligned --> 6904 6905 <div class="ecom-card-price"> 6906 <div class="ecom-product-price-display"> 6907 6908 <div class="ecom-price-regular">
6909 <span class="ecom-price-from-label">from</span> 6910 $96.00 6911 </div> 6912 6913 </div> 6914 </div> 6915 6916 6917 6918 <!-- Stock/Availability Status --> 6919 6920 <!-- Add to Cart button or View Product button - Always at bottom --> 6921 <div> 6922 6923 </div> 6924 </div> 6925</div> 6926 <div wire:key="product-919" class="ecom-product-grid-card"> 6927 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-9" class="block" aria-label="Crawler Course Obstacle #9"> 6928 <!-- Product image --> 6929 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 6930 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-9-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #9" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 6931 </div> 6932 </a> 6933 6934 <div class="ecom-card-body"> 6935 <!-- Product name --> 6936 <h3 class="ecom-card-title"> 6937 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-9"> 6938 Crawler Course Obstacle #9 6939 </a> 6940 </h3> 6941 6942 6943 <!-- Spacer that grows to push content down --> 6944 <div class="ecom-card-spacer"></div> 6945 6946 <!-- Price display - Always aligned --> 6947 6948 <div class="ecom-card-price"> 6949 <div class="ecom-product-price-display"> 6950 6951 <div class="ecom-price-regular"> 6952 <span class="ecom-price-from-label">from</span> 6953 $65.00 6954 </div> 6955 6956 </div> 6957 </div> 6958 6959 6960 6961 <!-- Stock/Availability Status --> 6962 6963 <!-- Add to Cart button or View Product button - Always at bottom --> 6964 <div> 6965 6966 </div> 6967 </div> 6968</div> 6969 <div wire:key="product-918" class="ecom-product-grid-card"> 6970 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-8" class="block" aria-label="Crawler Course Obstacle #8"> 6971 <!-- Product image --> 6972 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 6973 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,qual
6973ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-8-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #8" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 6974 </div> 6975 </a> 6976 6977 <div class="ecom-card-body"> 6978 <!-- Product name --> 6979 <h3 class="ecom-card-title"> 6980 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-8"> 6981 Crawler Course Obstacle #8 6982 </a> 6983 </h3> 6984 6985 6986 <!-- Spacer that grows to push content down --> 6987 <div class="ecom-card-spacer"></div> 6988 6989 <!-- Price display - Always aligned --> 6990 6991 <div class="ecom-card-price"> 6992 <div class="ecom-product-price-display"> 6993 6994 <div class="ecom-price-regular"> 6995 <span class="ecom-price-from-label">from</span> 6996 $96.00 6997 </div> 6998 6999 </div> 7000 </div> 7001 7002 7003 7004 <!-- Stock/Availability Status --> 7005 7006 <!-- Add to Cart button or View Product button - Always at bottom --> 7007 <div> 7008 7009 </div> 7010 </div> 7011</div> 7012 <div wire:key="product-917" class="ecom-product-grid-card"> 7013 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-7" class="block" aria-label="Crawler Course Obstacle #7"> 7014 <!-- Product image --> 7015 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7016 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-7-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #7" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7017 </div> 7018 </a> 7019 7020 <div class="ecom-card-body"> 7021 <!-- Product name --> 7022 <h3 class="ecom-card-title"> 7023 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-7"> 7024 Crawler Course Obstacle #7 7025 </a> 7026 </h3> 7027 7028 7029 <!-- Spacer that grows to push content down --> 7030 <div class="ecom-card-spacer"></div> 7031 7032 <!-- Price display - Always aligned --> 7033 7034 <div class="ecom-card-price"> 7035 <div class="ecom-product-price-display"> 7036 7037 <div class="ecom-price-regular">
7038 <span class="ecom-price-from-label">from</span> 7039 $38.00 7040 </div> 7041 7042 </div> 7043 </div> 7044 7045 7046 7047 <!-- Stock/Availability Status --> 7048 7049 <!-- Add to Cart button or View Product button - Always at bottom --> 7050 <div> 7051 7052 </div> 7053 </div> 7054</div> 7055 <div wire:key="product-916" class="ecom-product-grid-card"> 7056 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-6" class="block" aria-label="Crawler Course Obstacle #6"> 7057 <!-- Product image --> 7058 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7059 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-6-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #6" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7060 </div> 7061 </a> 7062 7063 <div class="ecom-card-body"> 7064 <!-- Product name --> 7065 <h3 class="ecom-card-title"> 7066 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-6"> 7067 Crawler Course Obstacle #6 7068 </a> 7069 </h3> 7070 7071 7072 <!-- Spacer that grows to push content down --> 7073 <div class="ecom-card-spacer"></div> 7074 7075 <!-- Price display - Always aligned --> 7076 7077 <div class="ecom-card-price"> 7078 <div class="ecom-product-price-display"> 7079 7080 <div class="ecom-price-regular"> 7081 <span class="ecom-price-from-label">from</span> 7082 $61.00 7083 </div> 7084 7085 </div> 7086 </div> 7087 7088 7089 7090 <!-- Stock/Availability Status --> 7091 7092 <!-- Add to Cart button or View Product button - Always at bottom --> 7093 <div> 7094 7095 </div> 7096 </div> 7097</div> 7098 <div wire:key="product-915" class="ecom-product-grid-card"> 7099 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-5" class="block" aria-label="Crawler Course Obstacle #5"> 7100 <!-- Product image --> 7101 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7102 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,qual
7102ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-5-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #5" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7103 </div> 7104 </a> 7105 7106 <div class="ecom-card-body"> 7107 <!-- Product name --> 7108 <h3 class="ecom-card-title"> 7109 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-5"> 7110 Crawler Course Obstacle #5 7111 </a> 7112 </h3> 7113 7114 7115 <!-- Spacer that grows to push content down --> 7116 <div class="ecom-card-spacer"></div> 7117 7118 <!-- Price display - Always aligned --> 7119 7120 <div class="ecom-card-price"> 7121 <div class="ecom-product-price-display"> 7122 7123 <div class="ecom-price-regular"> 7124 <span class="ecom-price-from-label">from</span> 7125 $76.00 7126 </div> 7127 7128 </div> 7129 </div> 7130 7131 7132 7133 <!-- Stock/Availability Status --> 7134 7135 <!-- Add to Cart button or View Product button - Always at bottom --> 7136 <div> 7137 7138 </div> 7139 </div> 7140</div> 7141 <div wire:key="product-914" class="ecom-product-grid-card"> 7142 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-4" class="block" aria-label="Crawler Course Obstacle #4"> 7143 <!-- Product image --> 7144 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7145 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-4-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #4" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7146 </div> 7147 </a> 7148 7149 <div class="ecom-card-body"> 7150 <!-- Product name --> 7151 <h3 class="ecom-card-title"> 7152 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-4"> 7153 Crawler Course Obstacle #4 7154 </a> 7155 </h3> 7156 7157 7158 <!-- Spacer that grows to push content down --> 7159 <div class="ecom-card-spacer"></div> 7160 7161 <!-- Price display - Always aligned --> 7162 7163 <div class="ecom-card-price"> 7164 <div class="ecom-product-price-display"> 7165 7166 <div class="ecom-price-regular">
7167 <span class="ecom-price-from-label">from</span> 7168 $153.00 7169 </div> 7170 7171 </div> 7172 </div> 7173 7174 7175 7176 <!-- Stock/Availability Status --> 7177 7178 <!-- Add to Cart button or View Product button - Always at bottom --> 7179 <div> 7180 7181 </div> 7182 </div> 7183</div> 7184 <div wire:key="product-913" class="ecom-product-grid-card"> 7185 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-3" class="block" aria-label="Crawler Course Obstacle #3"> 7186 <!-- Product image --> 7187 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7188 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-3-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #3" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7189 </div> 7190 </a> 7191 7192 <div class="ecom-card-body"> 7193 <!-- Product name --> 7194 <h3 class="ecom-card-title"> 7195 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-3"> 7196 Crawler Course Obstacle #3 7197 </a> 7198 </h3> 7199 7200 7201 <!-- Spacer that grows to push content down --> 7202 <div class="ecom-card-spacer"></div> 7203 7204 <!-- Price display - Always aligned --> 7205 7206 <div class="ecom-card-price"> 7207 <div class="ecom-product-price-display"> 7208 7209 <div class="ecom-price-regular"> 7210 <span class="ecom-price-from-label">from</span> 7211 $76.00 7212 </div> 7213 7214 </div> 7215 </div> 7216 7217 7218 7219 <!-- Stock/Availability Status --> 7220 7221 <!-- Add to Cart button or View Product button - Always at bottom --> 7222 <div> 7223 7224 </div> 7225 </div> 7226</div> 7227 <div wire:key="product-912" class="ecom-product-grid-card"> 7228 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-2" class="block" aria-label="Crawler Course Obstacle #2"> 7229 <!-- Product image --> 7230 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7231 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 400w, https://cdn.cmsmax.cloud/production/width=600,qual
7231ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-2-castle-all.jpg 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #2" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7232 </div> 7233 </a> 7234 7235 <div class="ecom-card-body"> 7236 <!-- Product name --> 7237 <h3 class="ecom-card-title"> 7238 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-2"> 7239 Crawler Course Obstacle #2 7240 </a> 7241 </h3> 7242 7243 7244 <!-- Spacer that grows to push content down --> 7245 <div class="ecom-card-spacer"></div> 7246 7247 <!-- Price display - Always aligned --> 7248 7249 <div class="ecom-card-price"> 7250 <div class="ecom-product-price-display"> 7251 7252 <div class="ecom-price-regular"> 7253 <span class="ecom-price-from-label">from</span> 7254 $229.00 7255 </div> 7256 7257 </div> 7258 </div> 7259 7260 7261 7262 <!-- Stock/Availability Status --> 7263 7264 <!-- Add to Cart button or View Product button - Always at bottom --> 7265 <div> 7266 7267 </div> 7268 </div> 7269</div> 7270 <div wire:key="product-911" class="ecom-product-grid-card"> 7271 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-1" class="block" aria-label="Crawler Course Obstacle #1"> 7272 <!-- Product image --> 7273 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7274 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/course-obstacle-1-castle-all.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Crawler Course Obstacle #1" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7275 </div> 7276 </a> 7277 7278 <div class="ecom-card-body"> 7279 <!-- Product name --> 7280 <h3 class="ecom-card-title"> 7281 <a href="https://universalrocks.com/crawler-course/crawler-course-obstacle-1"> 7282 Crawler Course Obstacle #1 7283 </a> 7284 </h3> 7285 7286 7287 <!-- Spacer that grows to push content down --> 7288 <div class="ecom-card-spacer"></div> 7289 7290 <!-- Price display - Always aligned --> 7291 7292 <div class="ecom-card-price"> 7293 <div class="ecom-product-price-display"> 7294 7295 <div class="ecom-price-regular">
7296 <span class="ecom-price-from-label">from</span> 7297 $130.00 7298 </div> 7299 7300 </div> 7301 </div> 7302 7303 7304 7305 <!-- Stock/Availability Status --> 7306 7307 <!-- Add to Cart button or View Product button - Always at bottom --> 7308 <div> 7309 7310 </div> 7311 </div> 7312</div> 7313 <div wire:key="product-910" class="ecom-product-grid-card"> 7314 <a href="https://universalrocks.com/crawler-course/sams-t-rex-fossil-crawler" class="block" aria-label="Samâs T-Rex Fossil Crawler"> 7315 <!-- Product image --> 7316 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7317 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/trex-head-course-with-car-for-scale.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Samâs T-Rex Fossil Crawler" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7318 </div> 7319 </a> 7320 7321 <div class="ecom-card-body"> 7322 <!-- Product name --> 7323 <h3 class="ecom-card-title"> 7324 <a href="https://universalrocks.com/crawler-course/sams-t-rex-fossil-crawler"> 7325 Samâs T-Rex Fossil Crawler 7326 </a> 7327 </h3> 7328 7329 7330 <!-- Spacer that grows to push content down --> 7331 <div class="ecom-card-spacer"></div> 7332 7333 <!-- Price display - Always aligned --> 7334 7335 <div class="ecom-card-price"> 7336 <div class="ecom-product-price-display"> 7337 7338 <div class="ecom-price-regular"> 7339 $999.00 7340 </div> 7341 7342 </div> 7343 </div> 7344 7345 7346 7347 <!-- Stock/Availability Status --> 7348 7349 <!-- Add to Cart button or View Product button - Always at bottom --> 7350 <div> 7351 7352 </div> 7353 </div> 7354</div> 7355 <div wire:key="product-908" class="ecom-product-grid-card"> 7356 <a href="https://universalrocks.com/fish/backgrounds/custom-backgrounds/cliff-custom" class="block" aria-label="Cliff - Custom"> 7357 <!-- Product image --> 7358 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7359 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 400w, https://cdn.cmsmax.cloud/production/width=600,qual
7359ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/large-custom-cliff-background-fish-room-new-tag.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="Cliff - Custom" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7360 </div> 7361 </a> 7362 7363 <div class="ecom-card-body"> 7364 <!-- Product name --> 7365 <h3 class="ecom-card-title"> 7366 <a href="https://universalrocks.com/fish/backgrounds/custom-backgrounds/cliff-custom"> 7367 Cliff - Custom 7368 </a> 7369 </h3> 7370 7371 7372 <!-- Spacer that grows to push content down --> 7373 <div class="ecom-card-spacer"></div> 7374 7375 <!-- Price display - Always aligned --> 7376 7377 7378 7379 <!-- Stock/Availability Status --> 7380 7381 <!-- Add to Cart button or View Product button - Always at bottom --> 7382 <div> 7383 7384 </div> 7385 </div> 7386</div> 7387 <div wire:key="product-907" class="ecom-product-grid-card"> 7388 <a href="https://universalrocks.com/fish/backgrounds/cliff/120x36-cliff" class="block" aria-label="120" x 36" Cliff"> 7389 <!-- Product image --> 7390 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7391 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/120x36-cliff-background-snake-enclosure.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="120" x 36" Cliff" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7392 </div> 7393 </a> 7394 7395 <div class="ecom-card-body"> 7396 <!-- Product name --> 7397 <h3 class="ecom-card-title"> 7398 <a href="https://universalrocks.com/fish/backgrounds/cliff/120x36-cliff"> 7399 120" x 36" Cliff 7400 </a> 7401 </h3> 7402 7403 7404 <!-- Spacer that grows to push content down --> 7405 <div class="ecom-card-spacer"></div> 7406 7407 <!-- Price display - Always aligned --> 7408 7409 <div class="ecom-card-price"> 7410 <div class="ecom-product-price-display"> 7411 7412 <div class="ecom-price-regular"> 7413 $1,300.00 7414 </div> 7415 7416 </div> 7417 </div> 7418 7419 7420 7421 <!-- Stock/Availability Status --> 7422 7423 <!-- Add to Cart button or View Product button - Always at bottom --> 7424 <div> 7425 7426 </div> 7427 </div> 7428</div> 7429 <div wire:key="product-906" class="ecom-product-grid-card"> 7430 <a href="https://universalrocks.com/fish/backgrounds/cliff/72x28-cliff" class="block" aria-label="72" x 28" Cliff"> 7431 <!-- Product image --> 7432 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7433 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 400w, https://cdn.cmsmax.cloud/production/width=600,qual
7433ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x28-cliff-background-vivarium.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="72" x 28" Cliff" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7434 </div> 7435 </a> 7436 7437 <div class="ecom-card-body"> 7438 <!-- Product name --> 7439 <h3 class="ecom-card-title"> 7440 <a href="https://universalrocks.com/fish/backgrounds/cliff/72x28-cliff"> 7441 72" x 28" Cliff 7442 </a> 7443 </h3> 7444 7445 7446 <!-- Spacer that grows to push content down --> 7447 <div class="ecom-card-spacer"></div> 7448 7449 <!-- Price display - Always aligned --> 7450 7451 <div class="ecom-card-price"> 7452 <div class="ecom-product-price-display"> 7453 7454 <div class="ecom-price-regular"> 7455 $790.00 7456 </div> 7457 7458 </div> 7459 </div> 7460 7461 7462 7463 <!-- Stock/Availability Status --> 7464 7465 <!-- Add to Cart button or View Product button - Always at bottom --> 7466 <div> 7467 7468 </div> 7469 </div> 7470</div> 7471 <div wire:key="product-905" class="ecom-product-grid-card"> 7472 <a href="https://universalrocks.com/fish/backgrounds/cliff/72x24-cliff" class="block" aria-label="72" x 24" Cliff"> 7473 <!-- Product image --> 7474 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7475 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/72x24-cliff-background-hero.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="72" x 24" Cliff" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7476 </div> 7477 </a> 7478 7479 <div class="ecom-card-body"> 7480 <!-- Product name --> 7481 <h3 class="ecom-card-title"> 7482 <a href="https://universalrocks.com/fish/backgrounds/cliff/72x24-cliff"> 7483 72" x 24" Cliff 7484 </a> 7485 </h3> 7486 7487 7488 <!-- Spacer that grows to push content down --> 7489 <div class="ecom-card-spacer"></div> 7490 7491 <!-- Price display - Always aligned --> 7492 7493 <div class="ecom-card-price"> 7494 <div class="ecom-product-price-display"> 7495 7496 <div class="ecom-price-regular"> 7497 $630.00 7498 </div> 7499 7500 </div> 7501 </div> 7502 7503 7504 7505 <!-- Stock/Availability Status --> 7506 7507 <!-- Add to Cart button or View Product button - Always at bottom --> 7508 <div> 7509 7510 </div> 7511 </div> 7512</div> 7513 <div wire:key="product-904" class="ecom-product-grid-card"> 7514 <a href="https://universalrocks.com/fish/backgrounds/cliff/48x24-cliff" class="block" aria-label="48" x 24" Cliff"> 7515 <!-- Product image --> 7516 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7517 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 400w, https://cdn.cmsmax.cloud/production/width=600,qual
7517ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/48x24-cliff-background-bearded-dragon-enclosure.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="48" x 24" Cliff" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7518 </div> 7519 </a> 7520 7521 <div class="ecom-card-body"> 7522 <!-- Product name --> 7523 <h3 class="ecom-card-title"> 7524 <a href="https://universalrocks.com/fish/backgrounds/cliff/48x24-cliff"> 7525 48" x 24" Cliff 7526 </a> 7527 </h3> 7528 7529 7530 <!-- Spacer that grows to push content down --> 7531 <div class="ecom-card-spacer"></div> 7532 7533 <!-- Price display - Always aligned --> 7534 7535 <div class="ecom-card-price"> 7536 <div class="ecom-product-price-display"> 7537 7538 <div class="ecom-price-regular"> 7539 $395.00 7540 </div> 7541 7542 </div> 7543 </div> 7544 7545 7546 7547 <!-- Stock/Availability Status --> 7548 7549 <!-- Add to Cart button or View Product button - Always at bottom --> 7550 <div> 7551 7552 </div> 7553 </div> 7554</div> 7555 <div wire:key="product-903" class="ecom-product-grid-card"> 7556 <a href="https://universalrocks.com/fish/backgrounds/cliff/36x24-cliff" class="block" aria-label="36" x 24" Cliff"> 7557 <!-- Product image --> 7558 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7559 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 400w, https://cdn.cmsmax.cloud/production/width=600,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/36x24-cliff-cichlid-tank.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1200" height="900" alt="36" x 24" Cliff" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7560 </div> 7561 </a> 7562 7563 <div class="ecom-card-body"> 7564 <!-- Product name --> 7565 <h3 class="ecom-card-title"> 7566 <a href="https://universalrocks.com/fish/backgrounds/cliff/36x24-cliff"> 7567 36" x 24" Cliff 7568 </a> 7569 </h3> 7570 7571 7572 <!-- Spacer that grows to push content down --> 7573 <div class="ecom-card-spacer"></div> 7574 7575 <!-- Price display - Always aligned --> 7576 7577 <div class="ecom-card-price"> 7578 <div class="ecom-product-price-display"> 7579 7580 <div class="ecom-price-regular"> 7581 $315.00 7582 </div> 7583 7584 </div> 7585 </div> 7586 7587 7588 7589 <!-- Stock/Availability Status --> 7590 7591 <!-- Add to Cart button or View Product button - Always at bottom --> 7592 <div> 7593 7594 </div> 7595 </div> 7596</div> 7597 <div wire:key="product-902" class="ecom-product-grid-card"> 7598 <a href="https://universalrocks.com/test-product-1" class="block" aria-label="TEST PRODUCT"> 7599 <!-- Product image --> 7600 <div class="ecom-product-grid-card-image-wrapper ecom-image-aspect-ratio-4-3"> 7601 <img src="https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png" srcset="https://cdn.cmsmax.cloud/production/width=200,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 200w, https://cdn.cmsmax.cloud/production/width=400,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 400w, https://cdn.cmsmax.cloud/production/width=600,qual
7601ity=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 600w, https://cdn.cmsmax.cloud/production/width=800,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 800w, https://cdn.cmsmax.cloud/production/width=1000,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 1000w, https://cdn.cmsmax.cloud/production/width=1280,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 1280w, https://cdn.cmsmax.cloud/production/width=1440,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 1440w, https://cdn.cmsmax.cloud/production/width=1920,quality=70,format=webp/pyg2bhwsdu01ky1odnkcg/ur-icon-black-1.png 1920w" sizes="(max-width: 767px) calc(50vw - 24px), (max-width: 1023px) calc(33vw - 24px), calc(25vw - 82px)" width="1650" height="1024" alt="TEST PRODUCT" class="ecom-product-grid-card-image ecom-image-object-fit-cover"> 7602 </div> 7603 </a> 7604 7605 <div class="ecom-card-body"> 7606 <!-- Product name --> 7607 <h3 class="ecom-card-title"> 7608 <a href="https://universalrocks.com/test-product-1"> 7609 TEST PRODUCT 7610 </a> 7611 </h3> 7612 7613 7614 <!-- Spacer that grows to push content down --> 7615 <div class="ecom-card-spacer"></div> 7616 7617 <!-- Price display - Always aligned --> 7618 7619 <div class="ecom-card-price"> 7620 <div class="ecom-product-price-display"> 7621 7622 <div class="ecom-price-regular"> 7623 $500.00 7624 </div> 7625 7626 </div> 7627 </div> 7628 7629 7630 7631 <!-- Stock/Availability Status --> 7632 7633 <!-- Add to Cart button or View Product button - Always at bottom --> 7634 <div> 7635 7636 </div> 7637 </div> 7638</div> 7639 </div> 7640 <div class="mt-6"> 7641 <div> 7642 <nav role="navigation" aria-label="Pagination Navigation" class="flex items-center justify-between"> 7643 <div class="flex justify-between flex-1 sm:hidden"> 7644 <span> 7645 <span class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300"> 7646 « Previous 7647 </span> 7648 </span> 7649 7650 <span> 7651 <button type="button" wire:click="nextPage('page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" wire:loading.attr="disabled" dusk="nextPage.before" class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-blue-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300 dark:focus:border-blue-700 dark:active:bg-gray-700 dark:active:text-gray-300"> 7652 Next » 7653 </button> 7654 </span> 7655 </div> 7656 7657 <div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between"> 7658 <div> 7659 <p class="text-sm text-gray-700 leading-5 dark:text-gray-400"> 7660 <span>Showing</span> 7661 <span class="font-medium">1</span> 7662 <span>to</span> 7663 <span class="font-medium">20</span> 7664 <span>of</span> 7665 <span class="font-medium">522</span> 7666 <span>results</span> 7667 </p> 7668 </div> 7669 7670 <div> 7671 <span class="relative z-0 inline-flex rtl:flex-row-reverse rounded-md shadow-sm">
7672 <span> 7673 7674 <span aria-disabled="true" aria-label="&laquo; Previous"> 7675 <span class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-l-md leading-5 dark:bg-gray-800 dark:border-gray-600" aria-hidden="true"> 7676 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 7677 <path fill-rule="evenodd" d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z" clip-rule="evenodd" /> 7678 </svg> 7679 </span> 7680 </span> 7681 </span> 7682 7683 7684 7685 7686 7687 <span wire:key="paginator-page-page1"> 7688 <span aria-current="page"> 7689 <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600">1</span> 7690 </span> 7691 </span> 7692 <span wire:key="paginator-page-page2"> 7693 <button type="button" wire:click="gotoPage(2, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 2"> 7694 2 7695 </button> 7696 </span> 7697 <span wire:key="paginator-page-page3"> 7698 <button type="button" wire:click="gotoPage(3, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 3"> 7699 3 7700 </button> 7701 </span> 7702 <span wire:key="paginator-page-page4"> 7703 <button type="button" wire:click="gotoPage(4, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 4"> 7704 4 7705 </button> 7706 </span> 7707 <sp
7707an wire:key="paginator-page-page5"> 7708 <button type="button" wire:click="gotoPage(5, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 5"> 7709 5 7710 </button> 7711 </span> 7712 <span wire:key="paginator-page-page6"> 7713 <button type="button" wire:click="gotoPage(6, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 6"> 7714 6 7715 </button> 7716 </span> 7717 <span wire:key="paginator-page-page7"> 7718 <button type="button" wire:click="gotoPage(7, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 7"> 7719 7 7720 </button> 7721 </span> 7722 <span wire:key="paginator-page-page8"> 7723 <button type="button" wire:click="gotoPage(8, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 8"> 7724 8 7725 </button> 7726 </span> 7727 <span wire:key="paginator-page-page9"> 7728 <button type="button" wire:click="gotoPage(9, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 9"> 7729 9 7730 </button> 7731 </span> 7732 <sp
7732an wire:key="paginator-page-page10"> 7733 <button type="button" wire:click="gotoPage(10, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 10"> 7734 10 7735 </button> 7736 </span> 7737 7738 <span aria-disabled="true"> 7739 <span class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-300">...</span> 7740 </span> 7741 7742 7743 7744 7745 7746 <span wire:key="paginator-page-page26"> 7747 <button type="button" wire:click="gotoPage(26, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 26"> 7748 26 7749 </button> 7750 </span> 7751 <span wire:key="paginator-page-page27"> 7752 <button type="button" wire:click="gotoPage(27, 'page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:text-gray-400 dark:hover:text-gray-300 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Go to page 27"> 7753 27 7754 </button> 7755 </span> 7756 7757 <span> 7758 7759 <button type="button" wire:click="nextPage('page')" x-on:click=" ($el.closest('body') || document.querySelector('body')).scrollIntoView()" dusk="nextPage.after" class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:border-blue-300 focus:ring ring-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150 dark:bg-gray-800 dark:border-gray-600 dark:active:bg-gray-700 dark:focus:border-blue-800" aria-label="Next &raquo;"> 7760 <svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20"> 7761 <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd" /> 7762 </svg> 7763 </button> 7764 </span> 7765 </span> 7766 </div> 7767 </div> 7768 </nav> 7769 </div> 7770 7771 </div> 7772 </div> 7773 </div> 7774 </div> 7775 7776
7776<script> 7777 function addToCart(productId) { 7778 // Add your cart functionality here 7779 console.log('Adding product to cart:', productId); 7780 // Example: You might want to make an AJAX call to add the product to cart 7781 } 7782 </script>
7782 7783</div> 7784 </div> 7785 </div> 7786</div> 7787 7788
7789<script> 7790 document.addEventListener('alpine:init', () => { 7791 Alpine.data('searchTracker', () => ({ 7792 lastSearchTerm: '', 7793 7794 init() { 7795 // Track initial search 7796 this.trackSearchTerm(this.$wire.search); 7797 7798 // Watch for changes 7799 this.$watch('$wire.search', (value) => { 7800 this.trackSearchTerm(value); 7801 }); 7802 }, 7803 7804 trackSearchTerm(value) { 7805 const trimmedValue = value ? value.trim() : ''; 7806 7807 if (trimmedValue && trimmedValue !== this.lastSearchTerm) { 7808 this.fireSearchEvent(trimmedValue); 7809 this.lastSearchTerm = trimmedValue; 7810 } 7811 }, 7812 7813 fireSearchEvent(searchTerm) { 7814 const eventData = { 7815 'event': 'search', 7816 'search_term': searchTerm.trim() 7817 }; 7818 7819 // Push to dataLayer for GTM users 7820 window.dataLayer = window.dataLayer || []; 7821 window.dataLayer.push(eventData); 7822 // Fire gtag event for non-GTM users 7823 if (typeof gtag !== 'undefined') { 7824 gtag('event', 'search', { 7825 'search_term': searchTerm.trim() 7826 }); 7827 } 7828 } 7829 })); 7830 }); 7831</script>
7831 7832</span></p></div> 7833 </div> 7834 <div class="below-content-wrapper"> 7835 <div class="w-full"> 7836<div class="bg-[#292929] text-white py-10 lg:py-20 text-center lg:text-left"> 7837<div class="max-w-7xl mx-auto px-4"> 7838<div class="flex flex-col lg:flex-row items-center gap-6"> 7839<div class="lg:w-3/4"> 7840<p class="text-xl font-['Playfair_Display',serif] italic">Trusted by industry experts, celebs, influencers, amusement parks, zoos, aquariums, and renowned landscape architects.</p> 7841<h2 class="text-[32px] mb-2 lg:mb-0 mt-2">WHAT CAN WE BUILD FOR YOU?</h2> 7842</div> 7843<div class="lg:w-1/4"><a class="inline-block px-6 py-3 text-lg font-bold bg-white text-[#292929] hover:bg-primary hover:text-white focus:bg-primary focus:text-white transition-colors duration-300 uppercase" href="/contact">Contact Us</a></div> 7844</div> 7845</div> 7846</div></div> 7847 </div> 7848 <div class="footer-wrapper"> 7849 <div class="w-full"> 7850<footer class="bg-[#dedcdc] text-[#444444] py-12 md:py-20"> 7851<div class="max-w-7xl mx-auto px-4"> 7852<div class="mx-auto mb-16 md:w-[350px]"><img alt="universal rocks logo" class="block max-w-full h-auto mx-auto" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/ur-logo-black.png"></div> 7853<div class="grid grid-cols-1 md:grid-cols-3 gap-8"> 7854<div> 7855<h2 class="text-lg mt-6 font-bold uppercase font-['Urbanist',sans-serif] mb-10">Our Office</h2> 7856<div class="space-y-6"> 7857<div class="flex gap-3"> 7858<div class="w-5 flex-shrink-0"><img alt="address icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-location-icon.png"></div> 7859<div class="font-['Urbanist',sans-serif] text-sm leading-relaxed"><a href="https://g.page/universal-rocks?share" target="_blank" rel="noopener" class="text-[#444444]">Universal Rocks<br>825 Shepherd Drive<br>Garland, Texas 75042</a></div> 7860</div> 7861<div class="flex gap-3"> 7862<div class="w-5 flex-shrink-0"><img alt="phone icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-phone-icon.png"></div> 7863<div class="font-['Urbanist',sans-serif] text-sm leading-relaxed">Toll Free: <a href="tel:888-807-7011" class="text-[#444444]">888-807-7011</a><br>Local: <a href="tel:972-412-7179" class="text-[#444444]">972-412-7179</a></div> 7864</div> 7865</div> 7866</div> 7867<div> 7868<h2 class="text-lg mt-6 font-bold uppercase font-['Urbanist',sans-serif] mb-10">Navigation</h2> 7869<span class="cms-widget"><div x-data="{ 7870 mobileMenuOpen: false, 7871 closeMenu() { 7872 this.mobileMenuOpen = false; 7873 } 7874}"> 7875 <div class="menu-vertical block"> 7876 7877 <div 7878 x-transition:enter="transition-all ease-out duration-300" 7879 x-transition:enter-start="transform scale-y-0 origin-top" 7880 x-transition:enter-end="transform scale-y-100 origin-top" 7881 x-transition:leave="transition-all ease-in duration-200" 7882 x-transition:leave-start="transform scale-y-100 origin-top" 7883 x-transition:leave-end="transform scale-y-0 origin-top" @keydown.escape.window="closeMenu()" 7884 @click.outside="closeMenu()" 7885 class="overflow-hidden !block"> 7886 7887 7888 <div> 7889 <ul class="menu-tree-list" 7890 x-data="{ 7891 openItems: {}, 7892 toggleItem(key) { 7893 this.openItems[key] = !this.openItems[key]; 7894 } 7895 }" 7896 > 7897 <li class="menu-tree-item"> 7898 7899 <a href="/" 7900 class="menu-tree-link-level1"> 7901 Home 7902 </a> 7903 </li> 7904 <li class="menu-tree-item"> 7905 7906 <a href="/faqs" 7907 class="menu-tree-link-level1"> 7908 FAQs 7909 </a> 7910 </li> 7911 <li class="menu-tree-item"> 7912 7913 <a href="/dealers" 7914 class="menu-tree-link-level1"> 7915 Find a Dealer 7916 </a> 7917 </li> 7918 <li class="menu-tree-item"> 7919 7920 <a href="/dealer" 7921 class="menu-tree-link-level1"> 7922 Become a Dealer 7923 </a> 7924 </li> 7925 <li class="menu-tree-item"> 7926 7927 <a href="/about-us" 7928 class="menu-tree-link-level1"> 7929 About Us 7930 </a> 7931 </li> 7932 <li class="menu-tree-item"> 7933 7934 <a href="/return-policy" 7935 class="menu-tree-link-level1"> 7936 Return Policy 7937 </a> 7938 </li> 7939 <li class="menu-tree-item"> 7940 7941 <a href="/pictures" 7942 class="menu-tree-link-level1"> 7943 Gallery 7944 </a> 7945 </li> 7946 <li class="menu-tree-item"> 7947 7948 <a href="/contact" 7949 class="menu-tree-link-level1"> 7950 Contact Us 7951 </a> 7952 </li> 7953 <li class="menu-tree-item"> 7954 7955 <a href="blog" 7956 class="menu-tree-link-level1"> 7957 Our Blog 7958 </a> 7959 </li> 7960 <li class="menu-tree-item"> 7961 7962 <a href="/sitemap" 7963 class="menu-tree-link-level1"> 7964 Sitemap 7965 </a> 7966 </li> 7967 <li class="menu-tree-item"> 7968 7969 <a href="/privacy" 7970 class="menu-tree-link-level1"> 7971 Privacy 7972 </a> 7973 </li> 7974 <li class="menu-tree-item"> 7975 7976 <a href="/careers" 7977 class="menu-tree-link-level1"> 7978 Careers 7979 </a> 7980 </li> 7981 </ul> 7982 </div> 7983 </div> 7984 </div> 7985</div> 7986</span></div> 7987<div> 7988<h2 class="text-lg mt-6 font-bold uppercase font-['Urbanist',sans-serif] mb-10">Social</h2> 7989<div class="flex gap-2 mb-12"><a href="https://www.facebook.com/UniversalRocksOfficial/" target="_blank" rel="noopener"><img alt="facebook icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-facebook-icon.png"></a> <a href="https://www.instagram.com/universal.rocks/" target="_blank" rel="noopener"><img alt="instagram icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-instagram-icon.png"></a> <a href="https://www.tiktok.com/@universalrocks" target="_blank" rel="noopener"><img alt="tiktok icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-tiktok-icon.png"></a> <a href="https://www.youtube.com/c/Universalrocksus/" target="_blank" rel="noopener"><img alt="youtube icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-youtube-icon.png"></a> <a href="https://www.pinterest.com/universalrocks/boards/" target="_blank" rel="noopener"><img alt="pinterest icon" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/footer-pinterest-icon.png"></a></div> 7990<h2 class="text-lg mt-6 font-bold uppercase font-['Urbanist',sans-serif] mb-10">Distributors</h2> 7991<div class="flex gap-2 mb-4"><img alt="Canadian flag" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/canada-icon.jpg"> <img alt="New Zealand flag" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/nzl-icon.jpg"> <img alt="United States flag" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/us-icon.jpg"> <img alt="Australia flag" src="https://media.cmsmax.cloud/pyg2bhwsdu01ky1odnkcg/aus-icon.jpg"></div> 7992<p class="mt-4">Affirm: For personal use. Terms apply.</p> 7993</div> 7994</div> 7995</div> 7996</footer><!-- Sub Footer --> 7997<div class="text-center uppercase bg-primary text-white text-sm py-3"> 7998<div class="max-w-7xl mx-auto px-4">Copyright © <span class="cms-widget inline">2026</span> Universal Rocks</div> 7999</div></div> 8000 </div> 8001 <div class="sticky bottom-0 left-0 right-0 z-50 block w-full translate-y-
8001px md:hidden"> 8002 <div class="w-full"> 8003<div class="sticky bottom-0 left-0 right-0 z-50 block w-full translate-y-px md:hidden"> 8004<div class="w-full"> 8005<div class="bottom-0 left-0 right-0 w-full min-h-[58px] bg-[#292929] z-[2147482998] grid grid-cols-4 items-center justify-center text-center px-[10px] pt-2 pb-[7px]" id="footer-contact-test"> 8006<div class="flex justify-center flex-col"><a href="/search" class="flex flex-col items-center"> <span class="bi bi-search mb-1.5 text-white text-[20px]"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"> 8007 <path stroke-linecap="round" stroke-linejoin="round" d="m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"></path> 8008</svg> </span> <span class="text-[10px] m-0 text-white">Search</span> </a></div> 8009<div class="flex justify-center flex-col"><a href="https://checkout.cmsmax.cloud/login" class="flex flex-col items-center"> <span class="bi bi-person-circle mb-1.5 text-white text-[20px]"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"> 8010 <path stroke-linecap="round" stroke-linejoin="round" d="M17.982 18.725A7.488 7.488 0 0 0 12 15.75a7.488 7.488 0 0 0-5.982 2.975m11.963 0a9 9 0 1 0-11.963 0m11.963 0A8.966 8.966 0 0 1 12 21a8.966 8.966 0 0 1-5.982-2.275M15 9.75a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"></path> 8011</svg> </span> <span class="text-[10px] m-0 text-white">User</span> </a></div> 8012<div class="flex justify-center flex-col"><a href="/shopping-cart" class="flex flex-col items-center"> <span class="bi bi-bag mb-1.5 text-white text-[20px]"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"> 8013 <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 10.5V6a3.75 3.75 0 1 0-7.5 0v4.5m11.356-1.993 1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 0 1-1.12-1.243l1.264-12A1.125 1.125 0 0 1 5.513 7.5h12.974c.576 0 1.059.435 1.119 1.007ZM8.625 10.5a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm7.5 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"></path> 8014</svg> </span> <span class="text-[10px] m-0 text-white">Cart</span> </a></div> 8015<div class="flex justify-center flex-col"><a href="tel:888-807-7011" class="flex flex-col items-center"> <span class="bi bi-telephone mb-1.5 text-white text-[20px]"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"> 8016 <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 0 0 2.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 0 1-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 0 0-1.091-.852H4.5A2.25 2.25 0 0 0 2.25 4.5v2.25Z"></path> 8017</svg> </span> <span class="text-[10px] m-0 text-white">Call</span> </a></div> 8018<!-- 8019 <div class="flex justify-center flex-col"><a @click="toggleMobileMenu()" type="button" :aria-expanded="mobileMenuOpen" aria-controls="mobile-nav-bar" aria-label="Toggle navigation" aria-expanded="false" class="hamburger-btn flex flex-col items-center"> <span class="navbar-toggler-icon"> <span class="bi bi-list mb-1.5 text-white text-[20px]"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"> 8020 <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5"></path> 8021</svg> </span> </span> </a> 8022 <p class="text-[10px] m-0 text-white">Menu</p> 8023 </div>--></div> 8024</div> 8025</div></div> 8026 </div> 8027 </main> 8028 8029
8029<script src="https://cdn.jsdelivr.net/npm/@glidejs/glide"></script>
8029 8030 8031 8032<link rel="modulepreload" as="script" href="https://assets.cmsmax.cloud/build/assets/theme-BuF4kL1c.js" /><link rel="modulepreload" as="script" href="https://assets.cmsmax.cloud/build/assets/datetime-DATciA-0.js" />
8032<script type="module" src="https://assets.cmsmax.cloud/build/assets/theme-BuF4kL1c.js"></script>
8032 8033
8034<script src="https://assets.cmsmax.cloud/vendor/livewire/livewire.min.js?id=8ea5922c" data-csrf="EOGmO5PK4jrvyWRFzgdnYRSJRkfmHNs7RJfNiIdK" data-module-url="https://universalrocks.com/livewire-7540cd72" data-update-uri="https://universalrocks.com/livewire/update" data-navigate-once="true"></script>
8034 8035 8036
8036<script defer src="https://cdn.n1ed.com/widgets.js?apiKey=EOFLqKbt" data-ts="1772466488000"></script>
8036
8036<script defer src="https://connect.podium.com/widget.js#ORG_TOKEN=6666ddfb-71aa-4674-be3a-9dc79a849de7" 8037 id="podium-widget" data-organization-api-token="6666ddfb-71aa-4674-be3a-9dc79a849de7"></script>
8037 8038
8039<script>const images = document.querySelectorAll('.ecom-product-grid-card-image-wrapper'); 8040const freeShipping = document.createElement('span'); 8041freeShipping.classList.add('free-shipping-badge'); 8042freeShipping.innerHTML = "Free Shipping"; 8043 8044images.forEach((image) => { 8045 const clone = freeShipping.cloneNode(true); 8046 image.appendChild(clone); 8047}); 8048</script>
8048 8049 8050<style> 8051 .free-shipping-badge { 8052 position: absolute; 8053 background: var(--color-primary); 8054 padding: 4px 12px; 8055 font-size: 12px; 8056 letter-spacing: 0.3px; 8057 color: white; 8058 border-radius: 30px; 8059 top: 12px; 8060 left: 12px; 8061 text-transform: uppercase; 8062 font-weight: 600; 8063 line-height: 16px; 8064 box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); 8065 } 8066</style> 8067 8068 <div x-data="{ 8069 notifications: [], 8070 add(notification) { 8071 const id = Date.now() + Math.random(); 8072 this.notifications.push({ 8073 id: id, 8074 show: true, 8075 ...notification 8076 }); 8077 8078 setTimeout(() => { 8079 this.dismiss(id); 8080 }, 5000); 8081 }, 8082 dismiss(id) { 8083 const notification = this.notifications.find(n => n.id === id); 8084 if (notification) { 8085 notification.show = false; 8086 setTimeout(() => { 8087 this.notifications = this.notifications.filter(n => n.id !== id); 8088 }, 200); 8089 } 8090 } 8091}" @notification.window="add($event.detail[0] ?? $event.detail)" 8092 class="toast-container" 8093 role="status"> 8094 <template x-for="notification in notifications" :key="notification.id"> 8095 <div x-show="notification.show" 8096 x-transition:enter="transform ease-out duration-300" 8097 x-transition:enter-start="translate-y-2 opacity-0" 8098 x-transition:enter-end="translate-y-0 opacity-100" 8099 x-transition:leave="transition ease-in duration-200" 8100 x-transition:leave-start="opacity-100" 8101 x-transition:leave-end="opacity-0" 8102 class="toast-notification" 8103 :class="{ 8104 'toast-notification--success': notification.type === 'success', 8105 'toast-notification--error': notification.type === 'error' 8106 }"> 8107 <div class="toast-notification__body"> 8108 <div class="toast-notification__content"> 8109 <div class="toast-notification__icon-wrapper"> 8110 <template x-if="notification.type === 'success'"> 8111 <div class="toast-notification__icon toast-notification__icon--success"> 8112 <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> 8113 <path stroke-linecap="round" stroke-linejoin="round" d="M5 13l4 4L19 7"></path> 8114 </svg> 8115 </div> 8116 </template> 8117 <template x-if="notification.type === 'error'"> 8118 <div class="toast-notification__icon toast-notification__icon--error"> 8119 <svg fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" aria-hidden="true"> 8120 <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"></path> 8121 </svg> 8122 </div> 8123 </template> 8124 </div> 8125 <div class="toast-notification__message" 8126 :class="{ 8127 'toast-notification__message--success': notification.type === 'success', 8128 'toast-notification__message--error': notification.type === 'error' 8129 }"> 8130 <p x-text="notification.message"></p> 8131 </div> 8132 <div class="toast-notification__dismiss"> 8133 <button @click="dismiss(notification.id)" 8134 class="toast-notification__dismiss-button" 8135 :class="{ 8136 'toast-notification__dismiss-button--success': notification.type === 'success', 8137 'toast-notification__dismiss-button--error': notification.type === 'error' 8138 }" 8139 aria-label="Dismiss notification"> 8140 <svg viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"> 8141 <path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path> 8142 </svg> 8143 </button> 8144 </div> 8145 </div> 8146 </div> 8147 </div> 8148 </template> 8149</div> 8150</body> 8151</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.