{"product_id":"cotopaxi-allpa-30l-gear-hauler-tote","title":"Cotopaxi Allpa 30L Gear Hauler Tote","description":"\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Barlow+Condensed:wght@400;600;700;800\u0026family=Barlow:wght@300;400;500\u0026display=swap');\n:root {\n  --black: #0a0a0a;\n  --white: #ffffff;\n  --mid: #f5f5f5;\n  --border: #e0e0e0;\n  --text-muted: #777;\n  --text-body: #222;\n}\n* {\n  box-sizing: border-box;\n  margin: 0;\n  padding: 0;\n}\n.spur-wrap {\n  font-family: 'Barlow', sans-serif;\n  background: var(--white);\n  color: var(--black);\n  max-width: 1100px;\n  margin: 0 auto;\n  padding: 48px 24px;\n}\n.spur-header {\n  display: flex;\n  align-items: flex-end;\n  justify-content: space-between;\n  margin-bottom: 48px;\n  border-bottom: 1px solid var(--border);\n  padding-bottom: 24px;\n  flex-wrap: wrap;\n  gap: 12px;\n}\n.spur-title {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: clamp(28px, 5vw, 48px);\n  font-weight: 800;\n  letter-spacing: -0.02em;\n  line-height: 1;\n  text-transform: uppercase;\n}\n.spur-meta {\n  font-size: 12px;\n  font-weight: 500;\n  letter-spacing: 0.12em;\n  text-transform: uppercase;\n  color: var(--text-muted);\n}\n.spur-tabs {\n  display: flex;\n  gap: 4px;\n  margin-bottom: 32px;\n}\n.spur-tab {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 14px;\n  font-weight: 700;\n  letter-spacing: 0.1em;\n  text-transform: uppercase;\n  padding: 10px 24px;\n  background: var(--mid);\n  color: var(--text-muted);\n  border: 1px solid var(--border);\n  cursor: pointer;\n  transition: all 0.15s;\n  border-radius: 2px;\n}\n.spur-tab:hover {\n  color: var(--black);\n  border-color: #aaa;\n}\n.spur-tab.active {\n  background: var(--black);\n  color: var(--white);\n  border-color: var(--black);\n}\n.spur-panel {\n  display: none;\n}\n.spur-panel.active {\n  display: block;\n}\n.spec-category {\n  font-family: 'Barlow Condensed', sans-serif;\n  font-size: 11px;\n  font-weight: 700;\n  letter-spacing: 0.2em;\n  text-transform: uppercase;\n  color: var(--black);\n  padding: 20px 0 8px;\n  border-bottom: 2px solid var(--black);\n  margin-bottom: 0;\n}\n.spec-row {\n  display: grid;\n  grid-template-columns: 200px 1fr;\n  border-bottom: 1px solid var(--border);\n  transition: background 0.1s;\n}\n.spec-row:hover {\n  background: var(--mid);\n}\n.spec-key {\n  font-size: 12px;\n  font-weight: 500;\n  letter-spacing: 0.05em;\n  text-transform: uppercase;\n  color: var(--text-muted);\n  padding: 12px 16px 12px 0;\n  align-self: start;\n}\n.spec-val {\n  font-size: 14px;\n  font-weight: 300;\n  color: var(--text-body);\n  padding: 12px 0;\n  line-height: 1.5;\n}\n@media (max-width: 600px) {\n  .spec-row {\n    grid-template-columns: 1fr;\n  }\n  .spec-key {\n    padding-bottom: 2px;\n  }\n  .spec-val {\n    padding-top: 0;\n    padding-bottom: 12px;\n  }\n}\n\u003c\/style\u003e\n\u003cdiv class=\"spur-wrap\"\u003e\n\u003cdiv class=\"spur-header\"\u003e\n\u003cdiv class=\"spur-title\"\u003eAllpa 30L Gear Hauler Tote\u003c\/div\u003e\n\u003cdiv class=\"spur-meta\"\u003eA durable tote for hauling ski, climb, camp, or other gear from home to car to trailhead\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spur-tabs\"\u003e\n\u003cbutton class=\"spur-tab active\" onclick=\"showPanel('specs', this)\"\u003eSpecs\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv id=\"panel-specs\" class=\"spur-panel active\"\u003e\n\u003cdiv class=\"spec-category\"\u003eDescription\u003c\/div\u003e\n\u003cdiv style=\"padding: 16px 0;\"\u003e\n\u003cp style=\"font-size: 14px; font-weight: 300; color: var(--text-body); line-height: 1.6;\"\u003eMade with 100% recycled fabrics, the Allpa 30L Gear Hauler Tote makes getting your gear from point A to point B easy, whether you're hiking after work, hitting the climbing gym, or just grocery shopping. Two sets of handles let you carry over the shoulder or by hand, while tons of interior pockets organize your essentials.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-category\"\u003eShell\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eShell 1\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003e100% recycled 840D TPU-coated nylon\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eShell 2\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003e100% recycled 840D ballistic ripstop nylon\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eLining\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003e100% recycled ripstop polyester\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-category\"\u003eFeatures\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eStructure\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003eSemi-structured for easy loading\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eHandles\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003eDual tote handles  Side grab handles\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003ePockets\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003eInterior zippered pocket  Interior slip pockets for organization\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-category\"\u003eDetails\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eDimensions\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003e15 x 12 x 12in (37 x 30 x 30cm)\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"spec-row\"\u003e\n\u003cdiv class=\"spec-key\"\u003eWeight\u003c\/div\u003e\n\u003cdiv class=\"spec-val\"\u003e1lb 1 oz (480g)\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\nfunction showPanel(id, btn) {\n  document.querySelectorAll('.spur-panel').forEach(p =\u003e p.classList.remove('active'));\n  document.querySelectorAll('.spur-tab').forEach(t =\u003e t.classList.remove('active'));\n  document.getElementById('panel-' + id).classList.add('active');\n  btn.classList.add('active');\n}\n\u003c\/script\u003e","brand":"Cotopaxi","offers":[{"title":"Blue Spruce\/Abyss \/ OS","offer_id":51640271536448,"sku":"AG30-S24-SPABY","price":85.0,"currency_code":"USD","in_stock":true},{"title":"Cotopaxi Black \/ OS","offer_id":51640271569216,"sku":"AG30-S24-BLK","price":85.0,"currency_code":"USD","in_stock":true},{"title":"Del Dia \/ OS","offer_id":51640271601984,"sku":"AG30-S25-DD","price":85.0,"currency_code":"USD","in_stock":false},{"title":"Fatigue \/ OS","offer_id":51640271634752,"sku":"AG30-S25-FTG","price":85.0,"currency_code":"USD","in_stock":false},{"title":"Moonbeam \/ OS","offer_id":51640271667520,"sku":"AG30-S26-MB","price":85.0,"currency_code":"USD","in_stock":true},{"title":"Tide Pool \/ OS","offer_id":51640271700288,"sku":"AG30-S26-TIPL","price":85.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0446\/7487\/5549\/files\/AG30-S24-SPABY_9389ab15-055a-42df-a93c-456fd0a0c926.jpg?v=1776374262","url":"https:\/\/spokex.com\/products\/cotopaxi-allpa-30l-gear-hauler-tote","provider":"SX Collective","version":"1.0","type":"link"}