{"product_id":"metal-table-legs-golden-gate","title":"Metal Table Legs (Golden Gate)","description":"\u003cp\u003eThe Golden Gate metal table legs deliver industrial elegance with precision-crafted steel construction. Perfect for custom furniture projects including dining tables, coffee tables, and desks.\u003c\/p\u003e\n\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\u003cscript\u003e\n(function () {\n  'use strict';\n\n  var SPECS = {\n    '16\"': { use: 'Coffee \/ Bench', mnt: 'N\/A', ft: 'N\/A', wt: 'N\/A', cap: 'N\/A' },\n    '22\"': { use: 'End Table', mnt: 'N\/A', ft: 'N\/A', wt: 'N\/A', cap: 'N\/A' },\n    '28\"': { use: 'Dining Table', mnt: 'N\/A', ft: 'N\/A', wt: 'N\/A', cap: 'N\/A' }\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 heightFromTitle(s) {\n    var m = \/^(\\d{2}\")\/.exec(String(s == null ? '' : s).trim());\n    return m ? m[1] : null;\n  }\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) { var h = heightFromTitle(match.option1); if (h \u0026\u0026 isSizeVal(h)) render(h); }\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(function (v) { var h = heightFromTitle(v); return h \u0026\u0026 isSizeVal(h); })) {\n        var h0 = heightFromTitle(sel.value);\n        if (h0 \u0026\u0026 isSizeVal(h0)) render(h0);\n        sel.addEventListener('change', function () { var h = heightFromTitle(this.value); if (h \u0026\u0026 isSizeVal(h)) render(h); });\n        break;\n      }\n    }\n\n    var radios = Array.prototype.slice.call(\n      document.querySelectorAll('input[type=\"radio\"]')\n    ).filter(function (r) { var h = heightFromTitle(r.value); return h \u0026\u0026 isSizeVal(h); });\n\n    radios.forEach(function (r) {\n      r.addEventListener('change', function () { if (!this.checked) return; var h = heightFromTitle(this.value); if (h \u0026\u0026 isSizeVal(h)) render(h); });\n    });\n    var checked = radios.find(function (r) { return r.checked; });\n    if (checked) { var hc = heightFromTitle(checked.value); if (hc \u0026\u0026 isSizeVal(hc)) render(hc); }\n\n    document.addEventListener('change', function (e) {\n      var val = e.target \u0026\u0026 e.target.value;\n      var h = heightFromTitle(val);\n      if (h \u0026\u0026 isSizeVal(h)) render(h);\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) { var h = heightFromTitle(v.option1); if (h \u0026\u0026 isSizeVal(h)) render(h); }\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      if (variantInput.value) renderFromVariantId(variantInput.value);\n      variantInput.addEventListener('change', function () {\n        if (this.value) renderFromVariantId(this.value);\n      });\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      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    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":"16\" Tall x 15\" Wide \/ 1 Set (2 Legs)","offer_id":48552000487675,"sku":"1200-60","price":345.0,"currency_code":"USD","in_stock":true},{"title":"16\" Tall x 15\" Wide \/ Bulk Pack: 5 Sets (10 Legs)","offer_id":48552000520443,"sku":"1200-60-5PK","price":1466.25,"currency_code":"USD","in_stock":true},{"title":"16\" Tall x 21\" Wide \/ 1 Set (2 Legs)","offer_id":48552000553211,"sku":"1200-30","price":375.0,"currency_code":"USD","in_stock":true},{"title":"16\" Tall x 21\" Wide \/ Bulk Pack: 5 Sets (10 Legs)","offer_id":48552000585979,"sku":"1200-30-5PK","price":1593.75,"currency_code":"USD","in_stock":true},{"title":"22\" Tall x 17\" Wide \/ 1 Set (2 Legs)","offer_id":48552000618747,"sku":"1200-10","price":370.0,"currency_code":"USD","in_stock":true},{"title":"22\" Tall x 17\" Wide \/ Bulk Pack: 5 Sets (10 Legs)","offer_id":48552000651515,"sku":"1200-10-5PK","price":1572.5,"currency_code":"USD","in_stock":true},{"title":"22\" Tall x 21\" Wide \/ 1 Set (2 Legs)","offer_id":48552000684283,"sku":"1200-20","price":390.0,"currency_code":"USD","in_stock":true},{"title":"22\" Tall x 21\" Wide \/ Bulk Pack: 5 Sets (10 Legs)","offer_id":48552000717051,"sku":"1200-20-5PK","price":1657.5,"currency_code":"USD","in_stock":true},{"title":"28\" Tall x 17\" Wide \/ 1 Set (2 Legs)","offer_id":48552000749819,"sku":"1200-40","price":395.0,"currency_code":"USD","in_stock":true},{"title":"28\" Tall x 17\" Wide \/ Bulk Pack: 5 Sets (10 Legs)","offer_id":48552000782587,"sku":"1200-40-5PK","price":1678.75,"currency_code":"USD","in_stock":true},{"title":"28\" Tall x 32\" Wide \/ 1 Set (2 Legs)","offer_id":48552000815355,"sku":"1200-50","price":715.0,"currency_code":"USD","in_stock":true},{"title":"28\" Tall x 32\" Wide \/ Bulk Pack: 5 Sets (10 Legs)","offer_id":48552000848123,"sku":"1200-50-5PK","price":3038.75,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0118\/9160\/5604\/files\/Shownwitha18_NS22TOSHOWSCALE_4_39eff916-0075-46a8-9f68-80752af052b2.png?v=1774293109","url":"https:\/\/bearhollowsupply.com\/products\/metal-table-legs-golden-gate","provider":"Bear Hollow Supply","version":"1.0","type":"link"}