{"product_id":"pedestal-base-pittsburgh","title":"Pedestal Base (Pittsburgh)","description":"\u003cp\u003eThe Pittsburgh Collection is a pedestal table base that combines industrial with modern. Combining clean lines with industrial durability, these legs are handcrafted in the USA and are perfect for bars, restaurants, coffee shops or even your home.\u003c\/p\u003e\n\u003ch3\u003eSize Specifications — \u003cspan id=\"bhs-m-size-label\" style=\"color: #555; font-weight: normal; font-size: 0.9em;\"\u003e16\"\u003c\/span\u003e\n\u003c\/h3\u003e\n\u003cp style=\"margin: -4px 0 10px; font-size: 0.82em; color: #555; font-style: italic;\"\u003eTo see specifications for a different size, select a height above.\u003c\/p\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; height: auto;\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 19.5938px;\"\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px; background-color: rgb(242, 242, 242); font-weight: bold;\"\u003eUse Case\u003c\/td\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px;\" id=\"bhs-m-use\"\u003eCoffee \/ Bench\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.5938px;\"\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px; background-color: rgb(242, 242, 242); font-weight: bold;\"\u003eMounting Width\u003c\/td\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px;\" id=\"bhs-m-mnt\"\u003eN\/A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.5938px;\"\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px; background-color: rgb(242, 242, 242); font-weight: bold;\"\u003eFootprint (widest point)\u003c\/td\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px;\" id=\"bhs-m-ft\"\u003eN\/A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.5938px;\"\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px; background-color: rgb(242, 242, 242); font-weight: bold;\"\u003eWeight per Leg\u003c\/td\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px;\" id=\"bhs-m-wt\"\u003eN\/A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 19.5938px;\"\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px; background-color: rgb(242, 242, 242); font-weight: bold;\"\u003eWeight Capacity\u003c\/td\u003e\n\u003ctd style=\"border: 1px solid rgb(204, 204, 204); padding: 8px; height: 19.5938px;\" id=\"bhs-m-cap\"\u003eN\/A\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cscript\u003e\n(function () {\n  'use strict';\n\n  var SPECS = {\n    '18\"': { use: 'Coffee \/ Bench', mnt: '4.5\" x 7\"', ft: '7\" x 12\"', wt: 'N\/A', cap: '800 lbs' },\n    '22\"': { use: 'End Table', mnt: '5\" x 8\"', ft: '8\" x 14\"', wt: 'N\/A', cap: '800 lbs' },\n    '28\"': { use: 'Dining Table', mnt: '6.75\" x 10\"', ft: '11.5\" x 16\"', wt: 'N\/A', cap: '800 lbs' },\n    '34\"': { use: 'Counter Height', mnt: '7.25\" x 10.5\"', ft: '14\" x 17.5\"', wt: 'N\/A', cap: '800 lbs' },\n    '40\"': { use: 'Bar Height', mnt: '8\" x 12\"', ft: '16\" x 20\"', wt: 'N\/A', cap: '800 lbs' }\n  };\n\n  var CELLS = [\n    ['bhs-m-use', 'use'],\n    ['bhs-m-mnt', 'mnt'],\n    ['bhs-m-ft', 'ft'],\n    ['bhs-m-wt', 'wt'],\n    ['bhs-m-cap', 'cap']\n  ];\n\n  function isSizeVal(v) { return Object.prototype.hasOwnProperty.call(SPECS, v); }\n\n  function render(size) {\n    var d = SPECS[size];\n    if (!d) return;\n    CELLS.forEach(function (pair) {\n      var el = document.getElementById(pair[0]);\n      if (el) el.textContent = d[pair[1]];\n    });\n    var lbl = document.getElementById('bhs-m-size-label');\n    if (lbl) lbl.textContent = size;\n  }\n\n  function renderFromVariantId(vid) {\n    document.querySelectorAll('script[type=\"application\/json\"]').forEach(function (s) {\n      try {\n        var obj = JSON.parse(s.textContent);\n        var variants = obj.variants || (obj.product \u0026\u0026 obj.product.variants);\n        if (!variants) return;\n        var match = variants.find(function (v) { return String(v.id) === String(vid); });\n        if (match \u0026\u0026 isSizeVal(match.option1)) render(match.option1);\n      } catch (e) {}\n    });\n  }\n\n  function setup() {\n    var selects = document.querySelectorAll('select');\n    for (var i = 0; i \u003c selects.length; i++) {\n      var sel = selects[i];\n      var vals = Array.prototype.map.call(sel.options, function (o) { return o.value; });\n      if (vals.some(isSizeVal)) {\n        if (isSizeVal(sel.value)) render(sel.value);\n        sel.addEventListener('change', function () { if (isSizeVal(this.value)) render(this.value); });\n        break;\n      }\n    }\n\n    var radios = Array.prototype.slice.call(\n      document.querySelectorAll('input[type=\"radio\"]')\n    ).filter(function (r) { return isSizeVal(r.value); });\n\n    radios.forEach(function (r) {\n      r.addEventListener('change', function () { if (this.checked) render(this.value); });\n    });\n    var checked = radios.find(function (r) { return r.checked; });\n    if (checked) render(checked.value);\n\n    document.addEventListener('change', function (e) {\n      var val = e.target \u0026\u0026 e.target.value;\n      if (val \u0026\u0026 isSizeVal(val)) render(val);\n    });\n\n    ['variant:changed', 'variantchange', 'on:variant:change'].forEach(function (evtName) {\n      document.addEventListener(evtName, function (e) {\n        var d = e.detail;\n        if (!d) return;\n        var v = d.variant || d;\n        if (v \u0026\u0026 v.option1 \u0026\u0026 isSizeVal(v.option1)) render(v.option1);\n      });\n    });\n\n    \/\/ Gusto theme fix: watch input[name=\"id\"] for variant changes\n    var variantInput = document.querySelector('input[name=\"id\"]');\n    if (variantInput) {\n      \/\/ Initial render from current variant\n      if (variantInput.value) renderFromVariantId(variantInput.value);\n\n      \/\/ Backup: standard change listener\n      variantInput.addEventListener('change', function () {\n        if (this.value) renderFromVariantId(this.value);\n      });\n\n      \/\/ MutationObserver for themes that set value via attribute without firing events\n      var observer = new MutationObserver(function (mutations) {\n        mutations.forEach(function (m) {\n          if (m.type === 'attributes' \u0026\u0026 m.attributeName === 'value') {\n            var val = variantInput.getAttribute('value');\n            if (val) renderFromVariantId(val);\n          }\n        });\n      });\n      observer.observe(variantInput, { attributes: true, attributeFilter: ['value'] });\n\n      \/\/ Also watch for programmatic .value sets via property descriptor override\n      var descriptor = Object.getOwnPropertyDescriptor(HTMLInputElement.prototype, 'value');\n      if (descriptor \u0026\u0026 descriptor.set) {\n        var originalSet = descriptor.set;\n        Object.defineProperty(variantInput, 'value', {\n          set: function (val) {\n            originalSet.call(this, val);\n            if (val) renderFromVariantId(val);\n          },\n          get: descriptor.get\n        });\n      }\n    }\n\n    try {\n      var urlVid = new URL(location.href).searchParams.get('variant');\n      if (urlVid) renderFromVariantId(urlVid);\n    } catch (e) {}\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', setup);\n  } else {\n    setup();\n  }\n})();\n\u003c\/script\u003e\n","brand":"Bear Hollow Supply","offers":[{"title":"18\" \/ Single","offer_id":48533693038843,"sku":"PIT-18-BLK","price":225.0,"currency_code":"USD","in_stock":true},{"title":"18\" \/ Bulk Pack: 5 Pack (5 Legs)","offer_id":48533693071611,"sku":"PIT-18-BLK-5PK","price":956.25,"currency_code":"USD","in_stock":false},{"title":"22\" \/ Single","offer_id":48533693104379,"sku":"PIT-22-BLK","price":250.0,"currency_code":"USD","in_stock":true},{"title":"22\" \/ Bulk Pack: 5 Pack (5 Legs)","offer_id":48533693137147,"sku":"PIT-22-BLK-5PK","price":1062.5,"currency_code":"USD","in_stock":false},{"title":"28\" \/ Single","offer_id":48533693169915,"sku":"PIT-28-BLK","price":550.0,"currency_code":"USD","in_stock":true},{"title":"28\" \/ Bulk Pack: 5 Pack (5 Legs)","offer_id":48533693202683,"sku":"PIT-28-BLK-5PK","price":2337.5,"currency_code":"USD","in_stock":false},{"title":"34\" \/ Single","offer_id":48533693235451,"sku":"PIT-34-BLK","price":600.0,"currency_code":"USD","in_stock":true},{"title":"34\" \/ Bulk Pack: 5 Pack (5 Legs)","offer_id":48533693268219,"sku":"PIT-34-BLK-5PK","price":2550.0,"currency_code":"USD","in_stock":false},{"title":"40\" \/ Single","offer_id":48533693300987,"sku":"PIT-40-BLK","price":650.0,"currency_code":"USD","in_stock":true},{"title":"40\" \/ Bulk Pack: 5 Pack (5 Legs)","offer_id":48533693333755,"sku":"PIT-40-BLK-5PK","price":2762.5,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0118\/9160\/5604\/files\/Pittsburgh_2.png?v=1779380518","url":"https:\/\/bearhollowsupply.com\/products\/pedestal-base-pittsburgh","provider":"Bear Hollow Supply","version":"1.0","type":"link"}