{
  "version": 3,
  "sources": ["/cdn/shop/t/96/assets/laneway-custom-builder.js?lg_build=20261025-grip-150"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  function text(el) { return (el && el.textContent || '').trim().replace(/\\s+/g, ' '); }\n  function normalise(value) {\n    return (value || '').toLowerCase().replace(/\\([^)]*\\)|\\+\\s*\\$?[\\d,.]+\\s*$|\\$[\\d,.]+\\s*$/g, '').replace(/\\+/g, ' plus ').replace(/[^a-z0-9]+/g, ' ').replace(/plus\\s*4/g, 'plus4').trim();\n  }\n  function addHeading(target, number, title) {\n    if (!target || target.previousElementSibling && target.previousElementSibling.classList.contains('lg-step-heading')) return;\n    var wrap = document.createElement('div');\n    wrap.className = 'lg-step-heading';\n    wrap.innerHTML = '<span class=\"lg-step-heading__number\">' + number + '</span><h2></h2>';\n    wrap.querySelector('h2').textContent = title;\n    target.parentNode.insertBefore(wrap, target);\n  }\n  function selectedValue(field) {\n    if (field.matches('select')) return text(field.options[field.selectedIndex]);\n    if (field.matches('textarea,input[type=text],input[type=number]')) return field.value.trim();\n    return '';\n  }\n  function groupLabel(group) {\n    return text(group && group.querySelector(':scope > label,:scope > .spb-label-tooltip,:scope > fieldset > legend,:scope legend'));\n  }\n  function dispatchChange(field) {\n    field.dispatchEvent(new Event('change', { bubbles: true }));\n    field.dispatchEvent(new Event('input', { bubbles: true }));\n  }\n  function enhanceRadioPills(group) {\n    if (!group || group.dataset.lgPills || !group.querySelectorAll('input[type=\"radio\"]').length) return;\n    group.dataset.lgPills = 'true';\n    group.classList.add('lg-option-pills');\n  }\n  function enhanceSelectPills(group, select) {\n    if (!group || !select || group.dataset.lgSelectPills) return;\n    group.dataset.lgSelectPills = 'true';\n    group.classList.add('lg-option-pills');\n    select.classList.add('lg-visually-hidden-select');\n    var pills = document.createElement('div');\n    pills.className = 'lg-select-pills';\n    select.parentNode.insertBefore(pills, select.nextSibling);\n    function render() {\n      pills.innerHTML = '';\n      Array.prototype.forEach.call(select.options, function (option) {\n        if (!option.value || /^select/i.test(option.text)) return;\n        var button = document.createElement('button');\n        button.type = 'button';\n        button.className = 'lg-select-pill' + (option.selected ? ' is-selected' : '');\n        button.textContent = option.text;\n        button.addEventListener('click', function () { select.value = option.value; dispatchChange(select); render(); });\n        pills.appendChild(button);\n      });\n    }\n    render();\n    select.addEventListener('change', render);\n    new MutationObserver(render).observe(select, { childList: true });\n  }\n  function productImage(product) {\n    if (!product) return '';\n    if (product.featured_image && product.featured_image.url) return product.featured_image.url;\n    if (typeof product.featured_image === 'string') return product.featured_image;\n    return product.image || '';\n  }\n  var verifiedBuilderArtwork = [{\"aliases\":[\"Dynamic Gold 105\",\"True Temper Dynamic Gold 105\",\"True Temper Dynamic Gold 105 Iron Steel Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TrueTemperDynamicGold105IronShaft.webp?v=1709158754\",\"angle\":-45},{\"aliases\":[\"FUJIKURA VENTUS RED\",\"FUJIKURA VENTUS RED Velocore\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_VENTUS_RED_WOOD_SHAFTS_1024x1024_aa45e04a-846c-4ed3-85e8-55d64515408a.png?v=1708233075\",\"angle\":-45},{\"aliases\":[\"FUJIKURA VENTUS BLUE\",\"FUJIKURA VENTUS BLUE Velocore\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/VENTUS_BLUE_WOOD_1024x1024_59c58095-f519-4f60-b1a9-0ba3f1740909.jpg?v=1708233927\",\"angle\":-45},{\"aliases\":[\"FUJIKURA VENTUS TR BLACK\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_VENTUS_TR_BLACK.jpg?v=1708235885\",\"angle\":-45},{\"aliases\":[\"FUJIKURA VENTUS TR BLUE\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_VENTUS_TR_BLUE.jpg?v=1708236628\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2024 VENTUS BLUE +\",\"Fujikura Ventus+ BLUE\",\"Fujikura Ventus BLUE+\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Fujikura2024Ventus.png?v=1708297295\",\"angle\":-45},{\"aliases\":[\"FUJIKURA VENTUS TR RED\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_VENTUS_TR_RED_a515ca6d-3eef-4e99-a1a4-7275e9e4f175.jpg?v=1708339245\",\"angle\":-45},{\"aliases\":[\"FUJIKURA PRO 2.0\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_PRO_2.0_DRIVER_SHAFTS.jpg?v=1708340318\",\"angle\":-45},{\"aliases\":[\"FUJIKURA SPEEDER NX BLACK\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_SPEEDER_NX_BLACK_WOOD_6d3b71ad-5862-4f02-a0bf-6bc5b00819c9.jpg?v=1708340659\",\"angle\":-45},{\"aliases\":[\"FUJIKURA SPEEDER NX BLUE\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_SPEEDER_NX_BLUE_DRIVER_SHAFTS.png?v=1708415905\",\"angle\":-45},{\"aliases\":[\"FUJIKURA SPEEDER NX GREEN\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURASPEEDERNXGREENDRIVERSHAFTS.png?v=1708416158\",\"angle\":-45},{\"aliases\":[\"FUJIKURA PRO 2.0 TOUR SPEC\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_PRO_2.0_TOUR_SPEC_DRIVER_SHAFTS.jpg?v=1709107186\",\"angle\":-45},{\"aliases\":[\"FUJIKURA SAKURA 40 -\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_SAKURA_40_IRON_SHAFTS_-_L.jpg?v=1720584193\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2024 VENTUS BLACK+\",\"Fujikura Ventus+ BLACK\",\"Fujikura Ventus BLACK+\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Fujikura2024VentusBLACK.png?v=1719733422\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2024 VENTUS RED +\",\"Fujikura Ventus+ RED\",\"Fujikura Ventus RED+\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Fujikura2024VentusRED_50cc9e20-8d49-45dd-88c9-381bfed3667d.png?v=1719734333\",\"angle\":-45},{\"aliases\":[\"Fujikura Pro Blue\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/ProBlueWoodShafts.jpg?v=1731647432\",\"angle\":-45},{\"aliases\":[\"Fujikura Pro Black\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FujikuraProBlackGraphiteWoodShaftsFujikuraProBlackGraphiteWoodShaftsFujikuraProBlackGraphiteWoodShafts_505528c9-e642-4106-a7c1-762a67bc9487.jpg?v=1731647890\",\"angle\":-45},{\"aliases\":[\"FUJIKURA SPEEDER NX VIOLET\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/fuji-speeder-nx-violet.webp?v=1787723820\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2025 VENTUS WHITE\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/SFJ25VENWT40-Main.jpg?v=1742105946\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2026 VENTUS TR BLUE\",\"FUJIKURA VENTUS TR BLUE 2026\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/SFJ26VTRBL50-R-fujikura-2026-ventus-tr-blue-wood-shaft.jpg?v=1768167406\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2026 VENTUS TR BLACK\",\"FUJIKURA VENTUS TR BLACK 2026\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Ventus_TR_Black.jpg?v=1778901778\",\"angle\":-45},{\"aliases\":[\"FUJIKURA 2026 VENTUS TR RED\",\"FUJIKURA VENTUS TR RED 2026\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Ventus_TR_Red.jpg?v=1778902179\",\"angle\":-45},{\"aliases\":[\"Fujikura Speeder NX Gold\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/speeder-nx-gold.webp?v=1787721269\",\"angle\":-45},{\"aliases\":[\"Golf Pride Tour Wrap 2G Black\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourWrap2GGolfGrips.jpg?v=1709844219\",\"angle\":-45},{\"aliases\":[\"Golf Pride Tour Velvet +4\",\"Golf Pride Tour Velvet Plus4\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvetPlus4GolfGrip.jpg?v=1709844422\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX JMX ULTRALITE BLACKOUT\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-45},{\"aliases\":[\"True Temper Icon\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-true-temper-icon-builder-original.png?v=1790729595\",\"angle\":-45},{\"aliases\":[\"Golf Pride MCC +4 Grey\",\"Golf Pride MCC Plus4 Grey\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Grey.jpg?v=1709846352\",\"angle\":-45},{\"aliases\":[\"Golf Pride MCC +4 Red\",\"Golf Pride MCC Plus4 Red\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Red.jpg?v=1709846352\",\"angle\":-45},{\"aliases\":[\"Golf Pride MCC +4 Blue\",\"Golf Pride MCC Plus4 Blue\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Blue.jpg?v=1709846352\",\"angle\":-45},{\"aliases\":[\"Golf Pride MCC +4 Orange\",\"Golf Pride MCC Plus4 Orange\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips_Orange_Black.jpg?v=1720825175\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX STR8 TECH ULTRALITE\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXSTR8TECHULTRALITESWINGGRIPS.jpg?v=1711148171\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX JMX ULTRALITE TAPERED BLACK - RED/WHITE/BLUE\",\"JUMBOMAX JMX ULTRALITE\",\"JUMBOMAX JMX ULTRALITE RED/WHITE/BLUE\",\"JUMBOMAX ULTRALITE TAPERED BLACK RED/WHITE/BLUE\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITETAPEREDBLACKSWINGGRIPS-RED_WHITE_BLUE.jpg?v=1711148433\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX TOUR SERIES BLACK/GREEN\",\"JUMBOMAX TOUR BLACK/GREEN\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TourSeries_Ecomm_BLKGRN_LG_0004_TourSeries_Ecomm_BLKGRN_ST_1800x1800_ebbd4c5a-3276-41d5-92ec-e19d1a9af52d.webp?v=1744271420\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX JMX ZEN LITE\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_JMX_ZEN_LITE_SWING_GRIP.png?v=1744621141\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX JMX ULTRALITE BLACKOUT\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX TOUR SERIES BLACK/BLACK\",\"JUMBOMAX TOUR BLACK/BLACK\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_TOUR_SERIES_BLACKOUT_SWING_GRIPS.jpg?v=1763168464\",\"angle\":-45},{\"aliases\":[\"JUMBOMAX COMFORT WRAP\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/originalwrapswinggrip.jpg?v=1763168801\",\"angle\":-45},{\"aliases\":[\"The Grip Master Roo Swinger\",\"Grip Master Roo Swinger\",\"The Grip Master Roo Sewn Swinger\",\"Grip Master Roo Sewn Swinger\",\"Roo Sewn Swinger\",\"THE ROO SEWN SWINGER GRIP. U/S Black\",\"THE ROO SEWN SWINGER GRIP. Standard Black\",\"THE ROO SEWN SWINGER GRIP. Std Black\",\"THE ROO SEWN SWINGER GRIP. S Black\",\"THE ROO SEWN SWINGER GRIP. Midsize Black\",\"THE ROO SEWN SWINGER GRIP. M/S Black\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-grip-master-roo-swinger-original.png?v=1790732807\",\"angle\":-45},{\"aliases\":[\"BGT BRAVA DRIVER SHAFT Wood Shaft\",\"BGT BRAVA\",\"BGT BRAVA DRIVER\",\"BGT BRAVA-A Flex +$629\",\"BGT BRAVA-R Flex +$629\",\"BGT BRAVA-S Flex +$629\",\"BGT BRAVA-X Flex +$629\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/BGTBRAVAmain1.jpg?v=1709106669\",\"angle\":-45},{\"aliases\":[\"BGT BRAVA SIERRA ECHO DRIVER Wood Shaft\",\"BGT SIERRA ECHO\",\"BGT BRAVA SIERRA ECHO\",\"BGT SIERRA ECHO- R Flex +$689\",\"BGT SIERRA ECHO -S Flex +$689\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/BGT_BRAVA_SIERRA_ECHO_DRIVER_SHAFT_b.jpg?v=1709106779\",\"angle\":-45},{\"aliases\":[\"TPT Nitro Range Wood Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TPT-Nitro-Range_640x640_crop_center_87e04a50-9171-4ae5-b76d-5d226759e780.webp?v=1709107742\",\"angle\":45},{\"aliases\":[\"TPT Power Range Driver Wood Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TPTPowerRangeWoodShaft.webp?v=1709107866\",\"angle\":45}];\n  // Exact 10-TEST labels keep size and colour matches independent of predictive search.\n  var exactBuilderArtwork = [{\"label\":\"ACCRA GX Blue 100 Series\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AccraGXBlue100SeriesWoodShaft.webp?v=1718423524\",\"angle\":45.31},{\"label\":\"ACCRA GX Green 200 Series\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AccraGXGreen200SeriesWoodShaft.webp?v=1718424230\",\"angle\":44.53},{\"label\":\"ACCRA GX Red 300 Series\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AccraGXRed300SeriesWoodShaft.webp?v=1718425699\",\"angle\":44.98},{\"label\":\"Aldila NV Green\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Aldila-NV-23-Green_640x640_crop_center_d333c7fb-5da9-40e2-8645-525f6bfb1722.webp?v=1722032460\",\"angle\":45.12},{\"label\":\"Aldila NVS Orange\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Aldila-NVS-Orange_640x640_crop_center_fa7dbb7c-94d6-468e-bc0e-f861773386be.webp?v=1722121524\",\"angle\":45.0},{\"label\":\"Aldila NVS Pink\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/aldila-nvs23-pink-wood_512x512_6d9fce35-497d-4f4b-a253-535eff6842d0.webp?v=1788235292\",\"angle\":-45.01},{\"label\":\"Fujikura 2026 Ventus TR Red\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Ventus_TR_Red.jpg?v=1778902179\",\"angle\":-45.16},{\"label\":\"Fujikura 2026 Ventus TR Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/SFJ26VTRBL50-R-fujikura-2026-ventus-tr-blue-wood-shaft.jpg?v=1768167406\",\"angle\":-45.14},{\"label\":\"Fujikura 2026 Ventus TR Black\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Ventus_TR_Black.jpg?v=1778901778\",\"angle\":-44.77},{\"label\":\"Fujikura Ventus+ Red\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Fujikura2024VentusRED_50cc9e20-8d49-45dd-88c9-381bfed3667d.png?v=1719734333\",\"angle\":-45.13},{\"label\":\"Fujikura Ventus+ Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Fujikura2024Ventus.png?v=1708297295\",\"angle\":-45.04},{\"label\":\"Fujikura  Ventus+ Black\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Fujikura2024VentusBLACK.png?v=1719733422\",\"angle\":-45.18},{\"label\":\"Fujikura  Ventus + White\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/SFJ25VENWT40-Main.jpg?v=1742105946\",\"angle\":-43.98},{\"label\":\"Fujikura Pro Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/ProBlueWoodShafts.jpg?v=1731647432\",\"angle\":-45.08},{\"label\":\"Fujikura Pro Black\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FujikuraProBlackGraphiteWoodShaftsFujikuraProBlackGraphiteWoodShaftsFujikuraProBlackGraphiteWoodShafts_505528c9-e642-4106-a7c1-762a67bc9487.jpg?v=1731647890\",\"angle\":-45.13},{\"label\":\"Fujikura SPEEDER NX VIOLET\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/fuji-speeder-nx-violet.webp?v=1787723820\",\"angle\":-44.96},{\"label\":\"Fujikura SPEEDER NX GREEN\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURASPEEDERNXGREENDRIVERSHAFTS.png?v=1708416158\",\"angle\":-45.21},{\"label\":\"Fujikura SPEEDER NX BLUE\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_SPEEDER_NX_BLUE_DRIVER_SHAFTS.png?v=1708415905\",\"angle\":-45.23},{\"label\":\"Fujikura SPEEDER NX GOLD\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/speeder-nx-gold.webp?v=1787721269\",\"angle\":-44.89},{\"label\":\"Fujikura SPEEDER NX BLACK\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_SPEEDER_NX_BLACK_WOOD_6d3b71ad-5862-4f02-a0bf-6bc5b00819c9.jpg?v=1708340659\",\"angle\":-44.7},{\"label\":\"Fujikura VISTA PRO\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-fujikura-vista-pro-wood-manufacturer-original.png?v=1790735564\",\"angle\":0.0},{\"label\":\"Fujikura SUKARA LADIES 40\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_SAKURA_40_IRON_SHAFTS_-_L.jpg?v=1720584193\",\"angle\":-44.76},{\"label\":\"GRAFALLOY Prolaunch Red\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/ProLaunchRED.jpg?v=1784077397\",\"angle\":-45.14},{\"label\":\"GRAFALLOY Prolaunch  Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/ProLaunch_BLUE.jpg?v=1784078021\",\"angle\":-45.26},{\"label\":\"GRAFALLOY Prolaunch Platinum\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Platinum_36a99fc7-1008-4ec5-8d2c-8e453da2d55f.jpg?v=1784076303\",\"angle\":-45.32},{\"label\":\"TOUR AD CQ\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Graphite-Design-Tour-AD-CQ_640x640_crop_center_7afef171-52e3-47bd-9f48-b33f00dbb268.webp?v=1709105472\",\"angle\":45.21},{\"label\":\"TOUR AD VF\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Graphite-Design-Tour-AD-VF_640x640_crop_center_caf76a8d-76ca-49ca-9a6c-81b2e9aaf9a2.webp?v=1709106297\",\"angle\":44.99},{\"label\":\"TOUR AD DI\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GraphiteDesignTourADDIHybridShaft.webp?v=1709105025\",\"angle\":45.02},{\"label\":\"TOUR AD UB\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Graphite-Design-Tour-AD-UB-Shaft_640x640_crop_center_dc349633-4099-4149-8767-458645b9099c.webp?v=1709105867\",\"angle\":45.24},{\"label\":\"TOUR AD GC\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GraphiteDesignTourADGCWoodShaft.webp?v=1728268001\",\"angle\":44.32},{\"label\":\"TOUR AD IZ\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GraphiteDesignTourADIZHybridShaft.webp?v=1709105277\",\"angle\":45.21},{\"label\":\"TOUR AD XC\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Graphite_Design_Tour_AD_XC_640x640_crop_center_cb280d12-dbb1-4257-9bb9-566acaffc1db.webp?v=1709106161\",\"angle\":44.96},{\"label\":\"MAX HL\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSMAXHLGRAPHITEWOODSHAFT.jpg?v=1715496573\",\"angle\":-45.05},{\"label\":\"TD 2.0\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSTourDriven2.0GraphiteWoodShafts.jpg?v=1786755149\",\"angle\":-44.87},{\"label\":\"TG BLACK\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSTGBlackWoodShaft.jpg?v=1773108997\",\"angle\":-44.87},{\"label\":\"PGW\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSPLAYERSGRAPHITEWOOD_PGW_SHAFTS.jpg?v=1746766103\",\"angle\":-44.94},{\"label\":\"Diamana RB\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/MitsubishiRBSeriesGraphiteWoodShafts.jpg?v=1749785216\",\"angle\":-44.9},{\"label\":\"Diamana BB\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/MitsubishiDiamanaBBSeriesGraphiteWoodShafts.jpg?v=1749788131\",\"angle\":-45.04},{\"label\":\"Diamana WB\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Mitsubishi_WB_Series_Graphite_Wood_Shafts.jpg?v=1749789051\",\"angle\":-44.73},{\"label\":\"TENSEI 1K Pro Red\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-tensei-1k-pro-red-manufacturer-original.png?v=1790735549\",\"angle\":-0.22},{\"label\":\"TENSEI 1K Pro Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Tensei1KProBlueWoodShaft.webp?v=1764125022\",\"angle\":-45.22},{\"label\":\"TENSEI 1K Pro Orange\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Tensei1KProOrangeWoodShaft.webp?v=1764125043\",\"angle\":-44.34},{\"label\":\"TENSEI 1K Pro White\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Tensei1KProWhiteWoodShaft.webp?v=1764125093\",\"angle\":-44.88},{\"label\":\"VANQUISH\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/MitsubishiVanquishGraphiteWoodShafts.jpg?v=1711405325\",\"angle\":-45.13},{\"label\":\"LINQ Power Core Red\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/LIN-Q-PC-Red.jpg?v=1767913221\",\"angle\":-14.86},{\"label\":\"LINQ Power Core Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/LIN-Q-PC-Blue.jpg?v=1767912922\",\"angle\":-14.84},{\"label\":\"LINQ Power Core White\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/LIN-Q-PC-White_0d44d435-2b43-46d8-9b6d-d246b3db19d7.jpg?v=1767912263\",\"angle\":-14.85},{\"label\":\"PROFORCE V2 (24)\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/USTProForceV2_24.jpg?v=1789450908\",\"angle\":-45.47},{\"label\":\"PROFORCE V2 HL\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/V2_HL_55_L.jpg?v=1789450057\",\"angle\":-44.69},{\"label\":\"Titan Black\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TITAN.jpg?v=1789521649\",\"angle\":-44.98},{\"label\":\"Denali Frost Red\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DenaliFrostRed.webp?v=1789535132\",\"angle\":-44.95},{\"label\":\"Denali Frost Blue\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DenaliFrostBlue.webp?v=1789526009\",\"angle\":-44.9},{\"label\":\"Denali Frost Black\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/denali_frost_black_web.webp?v=1789525107\",\"angle\":-44.87},{\"label\":\"Golf Pride CP Grey Standard (NEW 2026)\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/CPMID.jpg?v=1786684813\",\"angle\":-46.05},{\"label\":\"Golf Pride CP Grey Midsize (NEW 2026)\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/CPMID.jpg?v=1786684813\",\"angle\":-46.05},{\"label\":\"Golf Pride MCC ALIGN Red Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCALIGNGolfGrips-Red.jpg?v=1709845326\",\"angle\":-44.67},{\"label\":\"Golf Pride MCC ALIGN Red Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCALIGNGolfGrips-Red.jpg?v=1709845326\",\"angle\":-44.67},{\"label\":\"Golf Pride MCC ALIGN +4 Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCPlus4ALIGNGrips.jpg?v=1709843593\",\"angle\":-45.07},{\"label\":\"Golf Pride MCC ALIGN +4 Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCPlus4ALIGNGrips.jpg?v=1709843593\",\"angle\":-45.07},{\"label\":\"Golf Pride Tour Velvet ALIGN +4 Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-tour-velvet-align-standard-original.jpg?v=1790752641\",\"angle\":-45},{\"label\":\"Golf Pride Tour Velvet ALIGN +4 Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-tour-velvet-align-standard-original.jpg?v=1790752641\",\"angle\":-45},{\"label\":\"Golf Pride Z Grip ALIGN +4 Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-zgrip-align-original.png?v=1790752730\",\"angle\":-45},{\"label\":\"Golf Pride Z Grip ALIGN +4 Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-zgrip-align-original.png?v=1790752730\",\"angle\":-45},{\"label\":\"Golf Pride Z Grip Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideZ-GripCordGolfGrip.jpg?v=1709844976\",\"angle\":-45.02},{\"label\":\"Golf Pride Z Grip Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideZ-GripCordGolfGrip.jpg?v=1709844976\",\"angle\":-45.02},{\"label\":\"Golf Pride MCC Black Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCBlack2GPMCC-60R-M10-XA.jpg?v=1708466098\",\"angle\":-44.67},{\"label\":\"Golf Pride MCC Black Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCBlack2GPMCC-60R-M10-XA.jpg?v=1708466098\",\"angle\":-44.67},{\"label\":\"Golf Pride MCC Red Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCRed2GPMCC-60R-12-X4.jpg?v=1708466098\",\"angle\":-44.26},{\"label\":\"Golf Pride MCC Red Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCRed2GPMCC-60R-12-X4.jpg?v=1708466098\",\"angle\":-44.26},{\"label\":\"Golf Pride MCC Blue Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCBlue2GPMCC-60R-M22-10.jpg?v=1708466099\",\"angle\":-45.25},{\"label\":\"Golf Pride MCC Blue Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCBlue2GPMCC-60R-M22-10.jpg?v=1708466099\",\"angle\":-45.25},{\"label\":\"Golf Pride MCC White Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCWhite2GPMCC-60R-M07-X9.jpg?v=1708466098\",\"angle\":-45.15},{\"label\":\"Golf Pride MCC White Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCWhite2GPMCC-60R-M07-X9.jpg?v=1708466098\",\"angle\":-45.15},{\"label\":\"Golf Pride MCC +4 Red Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Red.jpg?v=1709846352\",\"angle\":-44.91},{\"label\":\"Golf Pride MCC + 4 Grey Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Grey.jpg?v=1709846352\",\"angle\":-44.96},{\"label\":\"Golf Pride MCC + 4 Grey Midisze\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Grey.jpg?v=1709846352\",\"angle\":-44.96},{\"label\":\"Golf Pride MCC +4 Grey Oversize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCPlus4GolfGrips-Grey.jpg?v=1709846427\",\"angle\":-44.96},{\"label\":\"Golf Pride MCC +4 Blue Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Blue.jpg?v=1709846352\",\"angle\":-44.74},{\"label\":\"Golf Pride MCC +4 Blue Midisize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips-Blue.jpg?v=1709846352\",\"angle\":-44.74},{\"label\":\"Golf Pride MCC +4 Orange Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Golf_Pride_MCC_Plus_4_Golf_Grips_Orange_Black.jpg?v=1720825175\",\"angle\":-44.91},{\"label\":\"Golf Pride MCC +4 Green Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-golf-pride-mcc-plus4-green-original.jpg?v=1790735770\",\"angle\":-90.01},{\"label\":\"Golf Pride Tour Velvet +4 Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-tour-velvet-plus4-standard-original.jpg?v=1790752716\",\"angle\":-45},{\"label\":\"Golf Pride Tour Velvet +4 Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-tour-velvet-plus4-standard-original.jpg?v=1790752716\",\"angle\":-45},{\"label\":\"Golf Pride Tour Velvet Ladies\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvetGolfGrips.jpg?v=1709842843\",\"angle\":-45.62},{\"label\":\"Golf Pride Tour Velvet Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvetGolfGrips.jpg?v=1709842843\",\"angle\":-45.62},{\"label\":\"Golf Pride Tour Velvet Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvetGolfGrips.jpg?v=1709842843\",\"angle\":-45.62},{\"label\":\"Golf Pride Tour Velvet Oversize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvetGolfGrips.jpg?v=1709842843\",\"angle\":-45.62},{\"label\":\"Golf Pride Tour Velvet Cord Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvetBCTCordGolfGrips_d9dffba8-a4b7-4caa-a8b6-87f7b1945f08.jpg?v=1722762709\",\"angle\":-45.26},{\"label\":\"Golf Pride Tour Velvet 360 White Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvet360White.png?v=1720826645\",\"angle\":-61.15},{\"label\":\"Golf Pride Tour Velvet 360 White Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvet360White.png?v=1720826645\",\"angle\":-61.15},{\"label\":\"Golf Pride Tour Velvet 360 Black Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourVelvet360Grips-Black.jpg?v=1709845986\",\"angle\":-45.04},{\"label\":\"Golf Pride Tour 25 Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-golf-pride-tour25-original.jpg?v=1790735756\",\"angle\":-90.05},{\"label\":\"Golf Pride Microsuede Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-golf-pride-microsuede-standard-original.jpg?v=1790735796\",\"angle\":-60.87},{\"label\":\"Golf Pride Microsuede Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-golf-pride-microsuede-midsize-original.jpg?v=1790735783\",\"angle\":-60.87},{\"label\":\"Golf Pride Tour Wrap 2G Black Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourWrap2GGolfGrips.jpg?v=1709844219\",\"angle\":-45.1},{\"label\":\"Golf Pride Tour Wrap 2G Black Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourWrap2GGolfGrips.jpg?v=1709844219\",\"angle\":-45.1},{\"label\":\"Golf Pride Tour Wrap 2G Black Oversize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideTourWrap2GGolfGrips.jpg?v=1709844219\",\"angle\":-45.1},{\"label\":\"Golf Pride CPX Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCPXGolfGrip.jpg?v=1709843096\",\"angle\":-45.39},{\"label\":\"Golf Pride CPX Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCPXGolfGrip.jpg?v=1709843096\",\"angle\":-45.39},{\"label\":\"Golf Pride CPX Oversize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCPXGolfGrip.jpg?v=1709843096\",\"angle\":-45.39},{\"label\":\"Golf Pride CP2 Pro Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCP2ProGrip.jpg?v=1709844596\",\"angle\":-44.95},{\"label\":\"Golf Pride CP2 Pro Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCP2ProGrip.jpg?v=1709844596\",\"angle\":-44.95},{\"label\":\"Golf Pride CP2 Pro Oversize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCP2ProGrip.jpg?v=1709844596\",\"angle\":-44.95},{\"label\":\"Golf Pride CP2 Wrap Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCP2WrapGripGolfPrideCP2WrapGrip.jpg?v=1709844760\",\"angle\":-44.98},{\"label\":\"Golf Pride CP2 Wrap Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCP2WrapGripGolfPrideCP2WrapGrip.jpg?v=1709844760\",\"angle\":-44.98},{\"label\":\"Golf Pride CP2 Wrap Oversize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideCP2WrapGripGolfPrideCP2WrapGrip.jpg?v=1709844760\",\"angle\":-44.98},{\"label\":\"Golf Pride MCC ALIGN MAX Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-golf-pride-mcc-align-max-original.jpg?v=1790736354\",\"angle\":-45},{\"label\":\"Golf Pride MCC ALIGN MAX Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-golf-pride-mcc-align-max-original.jpg?v=1790736354\",\"angle\":-45},{\"label\":\"Golf Pride MCC ALIGN +4  MAX Std\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCPlus4ALIGNMAXGrips.jpg?v=1755655393\",\"angle\":-44.91},{\"label\":\"Golf Pride MCC ALIGN +4 MAX Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/GolfPrideMCCPlus4ALIGNMAXGrips.jpg?v=1755655393\",\"angle\":-44.91},{\"label\":\"JUMBOMAX JMX ULTRALITE BLACKOUT- Std Jumbo + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-44.58},{\"label\":\"JUMBOMAX JMX ULTRALITE BLACKOUT- X Small + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-44.58},{\"label\":\"JUMBOMAX JMX ULTRALITE BLACKOUT- Small + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-44.58},{\"label\":\"JUMBOMAX JMX ULTRALITE BLACKOUT- Medium + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-44.58},{\"label\":\"JUMBOMAX JMX ULTRALITE BLACKOUT-Large  + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-44.58},{\"label\":\"JUMBOMAX JMX ULTRALITE BLACKOUT- X Large + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAXJMXULTRALITEBLACKOUTSWINGGRIPS.jpg?v=1763168464\",\"angle\":-44.58},{\"label\":\"JUMBOMAX JMX ZEN LITE SWING GRIP- EXTRA SMALL + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_JMX_ZEN_LITE_SWING_GRIP.png?v=1744621141\",\"angle\":-45.46},{\"label\":\"JUMBOMAX JMX ZEN LITE SWING GRIP- SMALL + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_JMX_ZEN_LITE_SWING_GRIP.png?v=1744621141\",\"angle\":-45.46},{\"label\":\"JUMBOMAX JMX ZEN LITE SWING GRIP-MEDIUM + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_JMX_ZEN_LITE_SWING_GRIP.png?v=1744621141\",\"angle\":-45.46},{\"label\":\"JUMBOMAX JMX ZEN LITE SWING GRIP-LARGE + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_JMX_ZEN_LITE_SWING_GRIP.png?v=1744621141\",\"angle\":-45.46},{\"label\":\"JUMBOMAX JMX ZEN LITE SWING GRIP-EXTRA LARGE + $39.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/JUMBOMAX_JMX_ZEN_LITE_SWING_GRIP.png?v=1744621141\",\"angle\":-45.46},{\"label\":\"True Temper Icon  Standard\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-true-temper-icon-builder-original.png?v=1790729595\",\"angle\":-45.15},{\"label\":\"True Temper Icon  Midsize\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-true-temper-icon-builder-original.png?v=1790729595\",\"angle\":-45.15},{\"label\":\"THE ROO SEWN SWINGER GRIP. U/S Black (BLACK CAP) +$47.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-grip-master-roo-swinger-original.png?v=1790732807\",\"angle\":-45.31},{\"label\":\"THE ROO SEWN SWINGER GRIP Std Black (BLACK CAP) +$47.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-grip-master-roo-swinger-original.png?v=1790732807\",\"angle\":-45.31},{\"label\":\"THE ROO SEWN SWINGER GRIP. Mid Black  (BLACK CAP) +$47.95\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/laneway-grip-master-roo-swinger-original.png?v=1790732807\",\"angle\":-45.31},{\"label\":\"BRAVA\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/BGTBRAVAmain1.jpg?v=1709106669\",\"angle\":-45,\"offsetY\":0.00025},{\"label\":\"SIERRA ECHO\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/BGT_BRAVA_SIERRA_ECHO_DRIVER_SHAFT_b.jpg?v=1709106779\",\"angle\":-43.3,\"offsetY\":0.02644},{\"label\":\"BRAVA TOUR SS\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/BGT_BRAVA_TOUR_SS_DRIVER_SHAFT.jpg?v=1790741297\",\"angle\":-43.35,\"offsetY\":0.00232},{\"label\":\"FORTA\",\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/BGTFORTADRIVERSHAFT.jpg?v=1790741499\",\"angle\":-45,\"offsetY\":-0.0}];\n  function artworkName(value) {\n    return normalise(value).replace(/\\b(?:swing grips?|golf grips?|grips?)\\b/g, '')\n      .replace(/\\b(?:extra small|extra large|x small|x large|standard oversize|standard jumbo|std jumbo|std|standard|midsize|midisze|midisize|mid size|undersize|oversize|jumbo|small|medium|meduim|large|580|600)\\b/g, '')\n      .replace(/\\s+/g, ' ').trim();\n  }\n  var ironBuilderArtwork = [{\"aliases\":[\"Accra Steel Green\"],\"src\":\"https://cdn.shopify.com/s/files/1/0731/4063/3771/files/ac_isteel_green_45.png?v=1773698153\",\"angle\":-45,\"offsetY\":-0.00116,\"contentWidth\":0.99505,\"contentHeight\":0.03533,\"offsetX\":-0.00046,\"asset\":\"lg-iron-accra-steel-green.png\",\"displayHeight\":32},{\"aliases\":[\"KBS V-X Lite Iron Shaft +$553\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBS_TOUR_V-X_LITE_IRON_SHAFTS_355.jpg?v=1784000290\",\"angle\":-46.23,\"offsetY\":-0.00496,\"contentWidth\":0.98889,\"contentHeight\":0.07344,\"offsetX\":-0.00308,\"displayHeight\":32},{\"aliases\":[\"KBS Tour Iron  Shaft  +$581\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBS-_TOUR_CHROME_TAPER_R_5844ce3e-4e57-4c3b-9529-6acef62287aa.jpg?v=1715411506\",\"angle\":-44.64,\"offsetY\":-0.0016,\"contentWidth\":0.98303,\"contentHeight\":0.11043,\"offsetX\":-0.00255,\"displayHeight\":32},{\"aliases\":[\"KBS Tour V Iron +$595\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSTourV.355SteelIronShafts.jpg?v=1708464307\",\"angle\":-45.03,\"offsetY\":0.00694,\"contentWidth\":0.98737,\"contentHeight\":0.0704,\"offsetX\":-0.00107,\"displayHeight\":32},{\"aliases\":[\"KBS $ Taper Chrome +693\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBS_TaperChrome120.webp?v=1708764535\",\"angle\":32,\"offsetY\":-0.00956,\"contentWidth\":0.96497,\"contentHeight\":0.94845,\"offsetX\":0.00427,\"displayHeight\":32},{\"aliases\":[\"KBS $ Taper PVD +$693\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBS_TaperBlack.jpg?v=1708764983\",\"angle\":-26,\"offsetY\":0.04113,\"contentWidth\":0.96129,\"contentHeight\":0.8455,\"offsetX\":-0.00748,\"displayHeight\":32},{\"aliases\":[\"KBS Tour Lite Iron  Shaft  +$595\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBS_TOUR_LITE_CHROME_SHAFTS_ab4850fd-ae97-49a1-8acb-dbeb515ec430.jpg?v=1708463054\",\"angle\":-45.1,\"offsetY\":-0.00025,\"contentWidth\":0.98923,\"contentHeight\":0.09238,\"offsetX\":-0.00014,\"displayHeight\":32},{\"aliases\":[\"KBS C Taper Iron  Shaft +$595\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/kbs_c-taper_d5c0f689-ac86-42a5-a47d-20778c9e9a40.jpg?v=1708766226\",\"angle\":-42.32,\"offsetY\":0.01853,\"contentWidth\":0.97985,\"contentHeight\":0.10445,\"offsetX\":0.00447,\"displayHeight\":32},{\"aliases\":[\"KBS C Taper Lite Iron Shaft +$630\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSC-TAPERLITESHAFTS_.355.jpg?v=1708802320\",\"angle\":-42.93,\"offsetY\":0.01928,\"contentWidth\":0.98252,\"contentHeight\":0.10806,\"offsetX\":0.00388,\"displayHeight\":32},{\"aliases\":[\"KBS MAX Graphite Shaft +$665\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBS_MAX_GRAPHITE_IRON_SHAFTS_1024x1024_11a4cc50-f26a-4b7a-8950-d44abb8564e8.jpg?v=1752819867\",\"angle\":-44.03,\"offsetY\":-0.011,\"contentWidth\":0.98416,\"contentHeight\":0.05024,\"offsetX\":-0.00002,\"displayHeight\":32},{\"aliases\":[\"KBS TGI Graphite Iron Shaft +$903\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSTGITourGraphiteIronShaft.webp?v=1709109836\",\"angle\":45.07,\"offsetY\":-0.00164,\"contentWidth\":0.96824,\"contentHeight\":0.04725,\"offsetX\":-0.00001,\"displayHeight\":32},{\"aliases\":[\"KBS PGi Graphite Iron Shaft  + $903\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/KBSPGI.jpg?v=1709110172\",\"angle\":-45.19,\"offsetY\":0.00103,\"contentWidth\":0.99237,\"contentHeight\":0.07711,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Project X LZ Chrome Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/ProjectXLZ.jpg?v=1709155230\",\"angle\":-45.12,\"offsetY\":0.00266,\"contentWidth\":0.99451,\"contentHeight\":0.07318,\"offsetX\":-0.00106,\"displayHeight\":32},{\"aliases\":[\"Project X LZ Blackout  Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/ProjectXBlackout.jpg?v=1709155692\",\"angle\":-44.95,\"offsetY\":-0.0021,\"contentWidth\":0.99236,\"contentHeight\":0.07611,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Project X Steel Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Project-X_1080x_a9aa5782-13ad-48ca-9729-8866bc3ed7f3.webp?v=1736399239\",\"angle\":-44.95,\"offsetY\":-0.00001,\"contentWidth\":0.9938,\"contentHeight\":0.0474,\"offsetX\":-0.00072,\"displayHeight\":32},{\"aliases\":[\"Project X Red Steel Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/PX_RedIronShaft.webp?v=1784080942\",\"angle\":-44.98,\"offsetY\":-0.00048,\"contentWidth\":0.99808,\"contentHeight\":0.03315,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Nippon Zelos 6\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NS_PRO_ZELOS_6_TAPER_SHAFTS.png?v=1757123864\",\"angle\":-44.01,\"offsetY\":0.00336,\"contentWidth\":1.00475,\"contentHeight\":0.09739,\"offsetX\":-0.00249,\"displayHeight\":32},{\"aliases\":[\"Nippon Zelos 7\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NS_PRO_ZELOS_7_TAPER_SHAFTS.jpg?v=1757123921\",\"angle\":-44.69,\"offsetY\":0.00119,\"contentWidth\":1.00662,\"contentHeight\":0.10284,\"offsetX\":-0.00293,\"displayHeight\":32},{\"aliases\":[\"Nippon Zelos 8\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NSPro_Zelos8_1600x240_6f1d7a70-60cf-45fa-bb99-53122cbe1732.jpg?v=1787704241\",\"angle\":0,\"offsetY\":-0.00071,\"contentWidth\":0.87482,\"contentHeight\":0.06857,\"offsetX\":-0.00312,\"displayHeight\":32},{\"aliases\":[\"Nippon 750GH Neo\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NS-PRO-750-NEO.jpg?v=1757123084\",\"angle\":-44.65,\"offsetY\":0.00101,\"contentWidth\":0.98837,\"contentHeight\":0.05241,\"offsetX\":0.00198,\"displayHeight\":32},{\"aliases\":[\"Nippon 850GH Neo\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NSPRO850GHNEO.png?v=1757125650\",\"angle\":-44.83,\"offsetY\":-0.00266,\"contentWidth\":0.99665,\"contentHeight\":0.04257,\"offsetX\":0,\"displayHeight\":32},{\"aliases\":[\"Nippon 950GH Neo\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NSPRO950GHNEO.png?v=1757123382\",\"angle\":-44.81,\"offsetY\":-0.00118,\"contentWidth\":1.01262,\"contentHeight\":0.08106,\"offsetX\":-0.00437,\"displayHeight\":32},{\"aliases\":[\"Nippon 950GH\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NSPRO950GH_c39cd5e0-9080-4a9f-99fb-42075d345a30.png?v=1757124056\",\"angle\":-43.85,\"offsetY\":0.00319,\"contentWidth\":0.99181,\"contentHeight\":0.0718,\"offsetX\":0.00028,\"displayHeight\":32},{\"aliases\":[\"Nippon 1050GH\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/N.S.PRO1050GHIronShaft.jpg?v=1709153366\",\"angle\":-34.81,\"offsetY\":-0.0031,\"contentWidth\":0.97132,\"contentHeight\":0.08771,\"offsetX\":-0.00499,\"displayHeight\":32},{\"aliases\":[\"Nippon Modus 3 Tour 105 Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NS_PRO_MODUS3_TOUR_105_TAPER_SHAFTS.jpg?v=1757124276\",\"angle\":-45.34,\"offsetY\":0.00039,\"contentWidth\":1.0169,\"contentHeight\":0.09345,\"offsetX\":-0.00232,\"displayHeight\":32},{\"aliases\":[\"Nippon Modus 3 Tour 110 Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NS_PRO_MODUS3_TOUR_110_TAPER_SHAFTS.png?v=1757124345\",\"angle\":-45.02,\"offsetY\":-0.00279,\"contentWidth\":1.01466,\"contentHeight\":0.09211,\"offsetX\":-0.00441,\"displayHeight\":32},{\"aliases\":[\"Nippon Modus 3 Tour 120 Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Modus_130_120_8a43a42e-c3ec-4591-83eb-9a10aebda682.jpg?v=1757125038\",\"angle\":-44.57,\"offsetY\":0.00029,\"contentWidth\":0.99312,\"contentHeight\":0.0757,\"offsetX\":-0.00108,\"displayHeight\":32},{\"aliases\":[\"Nippon Modus 3 Tour 125 Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/NSPROMODUS3TOUR125_TAPER_SHAFTS.png?v=1757126538\",\"angle\":-44.98,\"offsetY\":0.00131,\"contentWidth\":1.01344,\"contentHeight\":0.09504,\"offsetX\":-0.00147,\"displayHeight\":32},{\"aliases\":[\"Nippon Modus 3 Tour 130 Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/Modus_130_120_f78e275d-652d-45a4-8d6f-1a3c194d0af4.jpg?v=1757124983\",\"angle\":-44.57,\"offsetY\":0.00029,\"contentWidth\":0.99312,\"contentHeight\":0.0757,\"offsetX\":-0.00108,\"displayHeight\":32},{\"aliases\":[\"SteelFiber i70CW Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AerotechSteelfiber70CWIronShafts.355.jpg?v=1718176440\",\"angle\":-44.98,\"offsetY\":-0.00229,\"contentWidth\":0.99522,\"contentHeight\":0.06951,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"SteelFiber i80CW Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AerotechSteelFiber80CWIronShafts.355_4c18e5ac-25a3-4af9-ad36-6c76cd23bd2c.jpg?v=1718237018\",\"angle\":-44.92,\"offsetY\":0.00119,\"contentWidth\":0.99381,\"contentHeight\":0.07586,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"SteelFiber i95CW Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AerotechSteelFiber95CWIronShafts-.355_c24e6000-994c-41c0-bd74-1aa2dd53cb8d.jpg?v=1718237456\",\"angle\":-45.15,\"offsetY\":0.00149,\"contentWidth\":0.99665,\"contentHeight\":0.06733,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"SteelFiber i110CW Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AerotechSteelFiber110GraphiteIronShafts.jpg?v=1718237761\",\"angle\":-44.89,\"offsetY\":0.00419,\"contentWidth\":0.99521,\"contentHeight\":0.07231,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Sakura 40 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURASAKURA40IRONSHAFTS-L.jpg?v=1709161420\",\"angle\":-45.03,\"offsetY\":0.00012,\"contentWidth\":0.97595,\"contentHeight\":0.10238,\"offsetX\":-0.00179,\"displayHeight\":32},{\"aliases\":[\"Vista Pro Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURAVISTAPROIRONSSHAFTS.jpg?v=1709161119\",\"angle\":-45.03,\"offsetY\":0.00151,\"contentWidth\":0.99666,\"contentHeight\":0.04219,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AXIOM 75 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURAAXIOMIRONSHAFTS125.jpg?v=1709160496\",\"angle\":-44.14,\"offsetY\":0.03496,\"contentWidth\":0.99073,\"contentHeight\":0.10757,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AXIOM 95 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURAAXIOMIRONSHAFTS125.jpg?v=1709160496\",\"angle\":-44.14,\"offsetY\":0.03496,\"contentWidth\":0.99073,\"contentHeight\":0.10757,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AXIOM 105 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURAAXIOMIRONSHAFTS125.jpg?v=1709160496\",\"angle\":-44.14,\"offsetY\":0.03496,\"contentWidth\":0.99073,\"contentHeight\":0.10757,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AXIOM 125 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURAAXIOMIRONSHAFTS125.jpg?v=1709160496\",\"angle\":-44.14,\"offsetY\":0.03496,\"contentWidth\":0.99073,\"contentHeight\":0.10757,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"TRAVIL 75 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_TRAVIL_SHAFTS_81e2fbc8-2feb-4835-9f5f-768374a67021.jpg?v=1775546356\",\"angle\":-44.86,\"offsetY\":0.00189,\"contentWidth\":0.9963,\"contentHeight\":0.04826,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"TRAVIL 85 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_TRAVIL_SHAFTS_81e2fbc8-2feb-4835-9f5f-768374a67021.jpg?v=1775546356\",\"angle\":-44.86,\"offsetY\":0.00189,\"contentWidth\":0.9963,\"contentHeight\":0.04826,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"TRAVIL 95 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_TRAVIL_SHAFTS_81e2fbc8-2feb-4835-9f5f-768374a67021.jpg?v=1775546356\",\"angle\":-44.86,\"offsetY\":0.00189,\"contentWidth\":0.9963,\"contentHeight\":0.04826,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"TRAVIL 105 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_TRAVIL_SHAFTS_81e2fbc8-2feb-4835-9f5f-768374a67021.jpg?v=1775546356\",\"angle\":-44.86,\"offsetY\":0.00189,\"contentWidth\":0.9963,\"contentHeight\":0.04826,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"TRAVIL 115 Iron\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/FUJIKURA_TRAVIL_SHAFTS_81e2fbc8-2feb-4835-9f5f-768374a67021.jpg?v=1775546356\",\"angle\":-44.86,\"offsetY\":0.00189,\"contentWidth\":0.9963,\"contentHeight\":0.04826,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"UST Mamiya Recoil 95 Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/USTMamiyaRecoil95.355TaperIronShaft.jpg?v=1718239522\",\"angle\":-45.15,\"offsetY\":-0.00321,\"contentWidth\":0.99452,\"contentHeight\":0.07521,\"offsetX\":-0.00106,\"displayHeight\":32},{\"aliases\":[\"UST Mamiya Recoil 760/780 ES SmacWrap Iron Shaft\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/recoil-smacwrap-ip-webRecoil760_780ESSmacWrap.png?v=1709162000\",\"angle\":-21.11,\"offsetY\":-0.00139,\"contentWidth\":0.99502,\"contentHeight\":0.14535,\"offsetX\":0.00118,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold Mid 90\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DynamicGoldMid90.webp?v=1790907148\",\"angle\":-44.97,\"offsetY\":-0.00092,\"contentWidth\":0.99665,\"contentHeight\":0.04378,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold Mid 100\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DynamicGoldMid100.webp?v=1790908891\",\"angle\":-44.98,\"offsetY\":0.00057,\"contentWidth\":0.99665,\"contentHeight\":0.04238,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold Mid 115\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DynamicGoldMid115.webp?v=1790909680\",\"angle\":-44.98,\"offsetY\":0.00235,\"contentWidth\":0.99665,\"contentHeight\":0.04309,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold 95\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DynamicGold95IronShaft.webp?v=1709159108\",\"angle\":-44.1,\"offsetY\":0.00102,\"contentWidth\":0.99218,\"contentHeight\":0.07896,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold 105\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TrueTemperDynamicGold105IronShaft.webp?v=1709158754\",\"angle\":-45.22,\"offsetY\":-0.00096,\"contentWidth\":0.9549,\"contentHeight\":0.0504,\"offsetX\":0.00038,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold 120\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/TrueTemperDynamicGold120IronShaft.webp?v=1709158516\",\"angle\":-45.11,\"offsetY\":0.00081,\"contentWidth\":0.96274,\"contentHeight\":0.0479,\"offsetX\":-0.00038,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/DynamicGoldIronShaft.webp?v=1709156840\",\"angle\":-43.15,\"offsetY\":0.00052,\"contentWidth\":0.99352,\"contentHeight\":0.06747,\"offsetX\":-0.00106,\"displayHeight\":32},{\"aliases\":[\"Dynamic Gold Tour Issue\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/True_Temper_Dynamic_Gold_Tour_Issue_640x640_crop_center_e6770694-f0ea-4eb0-a076-6c07c6a47c3d.webp?v=1709156611\",\"angle\":-45.21,\"offsetY\":-0.00051,\"contentWidth\":0.95263,\"contentHeight\":0.05618,\"offsetX\":0.00001,\"displayHeight\":32},{\"aliases\":[\"AMT Red\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AMT_Red.webp?v=1790751715\",\"angle\":-45.12,\"offsetY\":0.00015,\"contentWidth\":0.99523,\"contentHeight\":0.05241,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AMT Black\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AMT_Black.webp?v=1790751688\",\"angle\":-45,\"offsetY\":-0.00107,\"contentWidth\":0.99522,\"contentHeight\":0.05451,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AMT White\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AMT_White.webp?v=1790751661\",\"angle\":-44.85,\"offsetY\":-0.00078,\"contentWidth\":0.99664,\"contentHeight\":0.04593,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"AMT Silver\"],\"src\":\"https://cdn.shopify.com/s/files/1/0855/7435/3188/files/AMTSilver.webp?v=1790906411\",\"angle\":-44.95,\"offsetY\":-0.00074,\"contentWidth\":0.99562,\"contentHeight\":0.04879,\"offsetX\":-0.00071,\"displayHeight\":32},{\"aliases\":[\"Accra Steel Blue\"],\"src\":\"https://cdn.shopify.com/s/files/1/0731/4063/3771/files/ac_isteel_blue_45_c1e8f353-0ca5-487a-8e73-e972f82b7ade.png?v=1774478892\",\"asset\":\"lg-iron-accra-steel-blue.png\",\"angle\":-45,\"contentWidth\":0.99413,\"contentHeight\":0.04042,\"offsetX\":-0.00046,\"offsetY\":-0.00231,\"displayHeight\":32},{\"aliases\":[\"AccrI Steel Red\"],\"src\":\"https://cdn.shopify.com/s/files/1/0731/4063/3771/files/ac_isteel_red_45.png?v=1773698090\",\"asset\":\"lg-iron-accri-steel-red.png\",\"angle\":-45,\"contentWidth\":0.99505,\"contentHeight\":0.03348,\"offsetX\":-0.00046,\"offsetY\":-0.00116,\"displayHeight\":32},{\"aliases\":[\"Nippon 850GH\"],\"src\":\"https://nipponshaft.com/assets/img/product/steel/850gh/items_pc.jpg\",\"asset\":\"lg-iron-nippon-850gh.jpg\",\"angle\":0,\"contentWidth\":1.01,\"contentHeight\":0.08429,\"offsetX\":-0.00071,\"offsetY\":0,\"displayHeight\":32},{\"aliases\":[\"Nippon 1150GH Tour\"],\"src\":\"https://nipponshaft.com/assets/img/product/steel/1150tour/items_pc.jpg\",\"asset\":\"lg-iron-nippon-1150gh-tour.jpg\",\"angle\":0,\"contentWidth\":1.01,\"contentHeight\":0.08143,\"offsetX\":-0.00071,\"offsetY\":0.00286,\"displayHeight\":32},{\"aliases\":[\"Nippon Modus 3 Tour 115 Iron Shaft\"],\"src\":\"https://nipponshaft.com/assets/img/product/steel/modus_115/items_pc.jpg\",\"asset\":\"lg-iron-nippon-modus-3-tour-115-iron-shaft.jpg\",\"angle\":0,\"contentWidth\":1.01,\"contentHeight\":0.04,\"offsetX\":-0.00071,\"offsetY\":0.00071,\"displayHeight\":32},{\"aliases\":[\"SteelFiber i125CW Iron Shaft\"],\"src\":\"https://www.truetemper.co.jp/wpcontent/wp-content/uploads/2023/07/1920-110_sf-i-125cw.jpg\",\"asset\":\"lg-iron-steelfiber-i125cw-iron-shaft.jpg\",\"angle\":0,\"contentWidth\":1.01,\"contentHeight\":0.06143,\"offsetX\":-0.00071,\"offsetY\":-0.00214,\"displayHeight\":32},{\"aliases\":[\"UST MAMIYA DART V TSPX 75 IRON SHAFTS\"],\"src\":\"https://cdn.shopify.com/s/files/1/0340/7092/1260/files/UST_MAMIYA_DART_V_TSPX_75_IRON.jpg?v=1755469195\",\"asset\":\"lg-iron-ust-mamiya-dart-v-tspx-75-iron-shafts.jpg\",\"angle\":-45.17,\"contentWidth\":0.99379,\"contentHeight\":0.06402,\"offsetX\":-0.00071,\"offsetY\":0.00107,\"displayHeight\":32},{\"aliases\":[\"UST MAMIYA DART V TSPX 90 IRON SHAFTS\"],\"src\":\"https://cdn.shopify.com/s/files/1/0340/7092/1260/files/UST_MAMIYA_DART_V_TSPX_90_IRON.jpg?v=1743292560\",\"asset\":\"lg-iron-ust-mamiya-dart-v-tspx-90-iron-shafts.jpg\",\"angle\":-45,\"contentWidth\":0.99522,\"contentHeight\":0.04951,\"offsetX\":-0.00071,\"offsetY\":0.00214,\"displayHeight\":32},{\"aliases\":[\"UST MAMIYA DART V TSPX 105 IRON SHAFTS\"],\"src\":\"https://cdn.shopify.com/s/files/1/0340/7092/1260/files/UST_MAMIYA_DART_V_TSPX_105_IRON.jpg?v=1743292484\",\"asset\":\"lg-iron-ust-mamiya-dart-v-tspx-105-iron-shafts.jpg\",\"angle\":-44.99,\"contentWidth\":0.99522,\"contentHeight\":0.05236,\"offsetX\":-0.00071,\"offsetY\":-0.00079,\"displayHeight\":32},{\"aliases\":[\"UST MAMIYA DART V TSPX 120 IRON SHAFTS\"],\"src\":\"https://cdn.shopify.com/s/files/1/0340/7092/1260/files/UST_MAMIYA_DART_V_TSPX_120_IRON.jpg?v=1743292502\",\"asset\":\"lg-iron-ust-mamiya-dart-v-tspx-120-iron-shafts.jpg\",\"angle\":-44.99,\"contentWidth\":0.99522,\"contentHeight\":0.05236,\"offsetX\":-0.00071,\"offsetY\":-0.00079,\"displayHeight\":32},{\"aliases\":[\"SteelFiber i55CW Iron Shaft\",\"SteelFiber i55CW\",\"Aerotech SteelFiber i55CW\"],\"src\":\"\",\"asset\":\"lg-iron-steelfiber-i55cw.jpg\",\"angle\":-45,\"offsetX\":-0.00085,\"offsetY\":-0.00465,\"contentWidth\":0.99604,\"contentHeight\":0.0569,\"displayHeight\":32}];\n  function isIronBuilder() { return !!document.querySelector('[data-lg-builder-kind=\"iron\"]'); }\n  function verifiedArtwork(value) {\n    if (isIronBuilder()) {\n      var iron = ironBuilderArtwork.find(function (entry) { return entry.aliases.some(function (alias) { return normalise(alias) === normalise(value); }); });\n      if (iron) return { artwork: iron, title: value };\n    }\n    var exact = exactBuilderArtwork.find(function (entry) { return normalise(entry.label) === normalise(value); });\n    if (exact) return { artwork: exact, title: value };\n    var wanted = artworkName(value);\n    if (/\\broo (?:sewn )?swinger\\b/.test(wanted) && /\\bblack\\b/.test(wanted) && !/\\b(?:red|blue|brown|tan|white)\\b/.test(wanted)) {\n      var roo = verifiedBuilderArtwork.find(function (entry) { return entry.aliases.indexOf('The Grip Master Roo Swinger') !== -1; });\n      if (roo) return { artwork: roo, title: value };\n    }\n    var item = verifiedBuilderArtwork.find(function (entry) {\n      return entry.aliases.some(function (alias) { return artworkName(alias) === wanted; });\n    });\n    return item ? { artwork: item, title: value } : null;\n  }\n  var builderProductCache = {};\n  function builderProductImage(product, selection) {\n    if (product && product.artwork) {\n      var artwork = product.artwork;\n      var source = artwork.src;\n      if (artwork.asset) {\n        var marker = document.querySelector('[data-lg-builder-kind=\"iron\"]');\n        var base = marker && marker.dataset.lgArtworkAssetBase;\n        if (base) source = base.split('?')[0].replace(/lg-iron-accra-steel-blue\\.png$/, artwork.asset);\n      }\n      return Promise.resolve({ src: source, dedicated: true, angle: artwork.angle, offsetY: artwork.offsetY, offsetX: artwork.offsetX, contentWidth: artwork.contentWidth, contentHeight: artwork.contentHeight, displayHeight: artwork.displayHeight });\n    }\n    var fallback = productImage(product);\n    var productUrl = product && (product.url || product.handle && ('/products/' + product.handle));\n    if (!productUrl) return Promise.resolve({ src: fallback, dedicated: false });\n    productUrl = productUrl.split('?')[0].replace(/\\.js$/, '');\n    if (!builderProductCache[productUrl]) {\n      builderProductCache[productUrl] = fetch(productUrl + '?view=builder-image-data', { credentials: 'same-origin' })\n        .then(function (response) { return response.ok ? response.json() : Promise.reject(); })\n        .catch(function () { return { builderImage: '', featuredImage: fallback, variants: [] }; });\n    }\n    return builderProductCache[productUrl].then(function (data) {\n      var wanted = normalise(selection);\n      var colour = wanted.match(/\\b(black|red|blue|white|grey|gray|orange|green|yellow|pink|purple|navy)\\b/);\n      var size = wanted.match(/\\b(midsize|standard|jumbo|undersize)\\b/);\n      var productTitle = normalise(data.title || product.title);\n      // A parent product photo must never stand in for a chosen colour variant.\n      var variantColour = colour && productTitle.indexOf(colour[1]) === -1;\n      if (variantColour) {\n        var match = (data.variants || []).find(function (variant) {\n          var title = normalise(variant.title);\n          return title.split(' ').indexOf(colour[1]) !== -1 &&\n            (!size || title.split(' ').indexOf(size[1]) !== -1);\n        });\n        return { src: match && match.image || '', dedicated: !!(match && match.image) };\n      }\n      return { src: data.builderImage || data.featuredImage || fallback, dedicated: !!data.builderImage };\n    });\n  }\n  function centerArtwork(image, media, width, height, angle, offsetY) {\n    media.style.setProperty('position', 'relative', 'important');\n    var properties = { position: 'absolute', left: '50%', top: 'calc(50% - ' + (offsetY || 0) + 'px)', width: width + 'px', height: height + 'px', 'max-width': 'none', 'max-height': 'none', 'object-fit': 'contain', 'object-position': 'center', 'transform-origin': 'center', transform: 'translate(-50%, -50%) rotate(' + angle + 'deg)', transition: 'none' };\n    Object.keys(properties).forEach(function (property) { image.style.setProperty(property, properties[property], 'important'); });\n  }\n  function fitSelectedImage(image, media, selection) {\n    if (!image.naturalWidth || !image.naturalHeight || !media.clientWidth) return;\n    if (image.dataset.lgArtworkAngle && Number.isFinite(Number(image.dataset.lgArtworkAngle))) {\n      image.classList.add('lg-verified-artwork');\n      image.classList.remove('lg-portrait-artwork', 'lg-square-mcc-artwork');\n      image.style.setProperty('--lg-artwork-angle', image.dataset.lgArtworkAngle + 'deg');\n      var angle = Number(image.dataset.lgArtworkAngle);\n      var radians = angle * Math.PI / 180;\n      var rotatedWidth = image.naturalWidth * Math.abs(Math.cos(radians)) + image.naturalHeight * Math.abs(Math.sin(radians));\n      var contentWidth = Number(image.dataset.lgArtworkContentWidth || 1);\n      var contentHeight = Number(image.dataset.lgArtworkContentHeight || 0);\n      var artworkScale = media.clientWidth * 0.96 / (rotatedWidth * contentWidth);\n      var ironShaft = isIronBuilder() && !!media.closest('[data-lg-panel=\"shaft\"]');\n      if (ironShaft) {\n        media.style.setProperty('height', '112px', 'important');\n        media.style.setProperty('aspect-ratio', 'auto', 'important');\n        media.style.setProperty('overflow', 'hidden', 'important');\n        var targetHeight = Number(image.dataset.lgArtworkDisplayHeight || 0);\n        if (targetHeight && contentHeight) artworkScale = targetHeight / (rotatedWidth * contentHeight);\n      } else if (contentHeight && media.clientHeight) {\n        artworkScale = Math.min(artworkScale, media.clientHeight * 0.88 / (rotatedWidth * contentHeight));\n      }\n      centerArtwork(image, media, Math.floor(image.naturalWidth * artworkScale), Math.floor(image.naturalHeight * artworkScale), angle, Number(image.dataset.lgArtworkOffsetY || 0) * rotatedWidth * artworkScale);\n      if (image.dataset.lgArtworkOffsetX) image.style.setProperty('left', 'calc(50% - ' + Number(image.dataset.lgArtworkOffsetX) * rotatedWidth * artworkScale + 'px)', 'important');\n      return;\n    }\n    var portrait = image.naturalHeight > image.naturalWidth * 1.15;\n    var squareMcc = !portrait && Math.abs(image.naturalWidth - image.naturalHeight) / image.naturalWidth < 0.08 &&\n      /golf pride mcc/.test(normalise(selection)) && !!media.closest('[data-lg-panel=\"grip\"]');\n    image.classList.toggle('lg-portrait-artwork', portrait);\n    image.classList.toggle('lg-square-mcc-artwork', squareMcc);\n    image.style.width = '';\n    image.style.height = '';\n    if (portrait) {\n      var scale = Math.min(media.clientWidth / image.naturalHeight, media.clientHeight / image.naturalWidth);\n      centerArtwork(image, media, Math.floor(image.naturalWidth * scale), Math.floor(image.naturalHeight * scale), 90);\n    } else if (squareMcc) {\n      var squareSize = Math.floor(media.clientWidth / Math.SQRT2);\n      centerArtwork(image, media, squareSize, squareSize, -45);\n    }\n  }\n  function money(value) {\n    if (value === null || typeof value === 'undefined' || value === '') return '';\n    if (typeof value === 'number' && window.Shopify && Shopify.formatMoney) return Shopify.formatMoney(value);\n    var formatted = String(value).replace(/\\.00$/, '');\n    return /^\\d/.test(formatted) ? '$' + formatted : formatted;\n  }\n  function hasNonZeroPrice(value) { return parseFloat(String(value || '').replace(/[^0-9.-]/g, '')) > 0; }\n  function gripSearchQuery(value) {\n    var clean = normalise(value);\n    var mappings = [\n      [/golf pride cp grey/, 'Golf Pride CP Grey'],\n      [/golf pride mcc align plus 4 max/, 'Golf Pride MCC Plus4 ALIGN MAX'],\n      [/golf pride mcc align max/, 'Golf Pride MCC ALIGN MAX'],\n      [/golf pride mcc align plus4/, 'Golf Pride MCC Plus4 ALIGN'],\n      [/golf pride mcc align red/, 'Golf Pride MCC ALIGN'],\n      [/golf pride tour velvet align plus4/, 'Golf Pride Tour Velvet Plus4 ALIGN'],\n      [/golf pride z grip align plus4/, 'Golf Pride Z Grip Cord ALIGN'],\n      [/golf pride z grip/, 'Golf Pride Z Grip Cord'],\n      [/golf pride mcc plus4/, 'Golf Pride MCC Plus4'],\n      [/golf pride mcc (black|red|blue|white)/, 'Golf Pride MCC'],\n      [/golf pride tour velvet plus4/, 'Golf Pride Tour Velvet Plus4'],\n      [/golf pride tour velvet cord/, 'Golf Pride Tour Velvet BCT Cord'],\n      [/golf pride tour velvet 360 white/, 'Golf Pride Tour Velvet 360 White'],\n      [/golf pride tour velvet 360 black/, 'Golf Pride Tour Velvet 360 Black'],\n      [/golf pride tour velvet/, 'Golf Pride Tour Velvet'],\n      [/golf pride tour 25/, 'Golf Pride Tour 25'],\n      [/golf pride microsuede/, 'Golf Pride Microsuede'],\n      [/golf pride tour wrap 2g white/, 'Golf Pride Tour Wrap 2G Golf Grips White'],\n      [/golf pride tour wrap 2g blue/, 'Golf Pride Tour Wrap 2G Golf Grips Blue'],\n      [/golf pride tour wrap 2g black/, 'Golf Pride Tour Wrap 2G Golf Grips'],\n      [/golf pride tour wrap 2g/, 'Golf Pride Tour Wrap 2G Golf Grips'],\n      [/golf pride cpx/, 'Golf Pride CPX'],\n      [/golf pride cp2 pro/, 'Golf Pride CP2 Pro'],\n      [/golf pride cp2 wrap/, 'Golf Pride CP2 Wrap'],\n      [/jumbomax jmx ultralite/, 'JUMBOMAX JMX UltraLite'],\n      [/jumbomax jmx zen lite/, 'JUMBOMAX JMX Zen Lite'],\n      [/true temper icon/, 'True Temper Icon Golf Grip'],\n      [/roo sewn swinger/, 'The Grip Master Roo Sewn Swinger Grip']\n    ];\n    for (var index = 0; index < mappings.length; index += 1) {\n      if (mappings[index][0].test(clean)) return mappings[index][1];\n    }\n    return value;\n  }\n  function candidateQueries(query) {\n    var clean = String(query || '').replace(/\\+\\s*\\$?[\\d,.]+\\s*$|\\$[\\d,.]+\\s*$/g, '').replace(/\\([^)]*\\)/g, ' ').replace(/\\s+/g, ' ').trim();\n    var candidates = [clean];\n    var withoutSpec = clean.replace(/\\s+(?:m\\d|r2|r|s|x|tx|a|l|sr|stiff|regular|midsize|std|standard|jumbo)\\s*$/i, '').trim();\n    if (withoutSpec && withoutSpec !== clean) candidates.push(withoutSpec);\n    var withoutSize = clean.replace(/\\s+(?:std|standard|midsize|jumbo|undersize)\\s*$/i, '').trim();\n    if (withoutSize && withoutSize !== clean) candidates.push(withoutSize);\n    return candidates.filter(function (item, index, list) { return item && list.indexOf(item) === index; });\n  }\n  function productScore(product, query) {\n    var generic = /^(golf|driver|wood|shaft|shafts|grip|grips|series|standard|std|graphite)$/;\n    var wanted = normalise(query).split(' ').filter(function (word) { return word && !generic.test(word); });\n    var title = normalise(product && product.title).split(' ').filter(function (word) { return word && !generic.test(word); });\n    if (!wanted.length || !title.length) return 0;\n    if (title.some(function (word) { return wanted.indexOf(word) === -1; })) return 0;\n    return title.length / wanted.length;\n  }\n  function searchProducts(query) {\n    var root = window.Shopify && Shopify.routes && Shopify.routes.root || '/';\n    var url = root + 'search/suggest.json?q=' + encodeURIComponent(query) + '&resources[type]=product&resources[limit]=8&resources[options][unavailable_products]=last';\n    return fetch(url, { credentials: 'same-origin' }).then(function (response) {\n      return response.ok ? response.json() : Promise.reject();\n    }).then(function (data) {\n      return data && data.resources && data.resources.results && data.resources.results.products || [];\n    });\n  }\n  function findProduct(query) {\n    var candidates = candidateQueries(query);\n    function attempt(index) {\n      if (index >= candidates.length) return Promise.resolve(null);\n      return searchProducts(candidates[index]).then(function (products) {\n        if (!products.length) return attempt(index + 1);\n        products.sort(function (a, b) { return productScore(b, candidates[index]) - productScore(a, candidates[index]); });\n        var best = products[0];\n        return productScore(best, candidates[index]) >= 0.9 ? best : attempt(index + 1);\n      });\n    }\n    return attempt(0);\n  }\n  function enhanceModelSelect(group, select, settings) {\n    if (!group || !select) return;\n    var fieldKey = select.id || select.getAttribute('name') || 'product-option';\n    var parent = group.parentNode;\n    var oldCard = Array.prototype.find.call(parent.children, function (item) { return item.classList.contains('lg-model-card') && item.dataset.lgCardFor === fieldKey; });\n    var oldTools = Array.prototype.find.call(parent.children, function (item) { return item.classList.contains('lg-model-tools') && item.dataset.lgCardFor === fieldKey; });\n    if (select.dataset.lgModelBound === 'true' && oldCard) return;\n    if (oldCard) oldCard.remove();\n    if (oldTools) oldTools.remove();\n    select.dataset.lgModelBound = 'true';\n    group.dataset.lgModel = 'true';\n    group.classList.add('lg-model-picker');\n    var controls = document.createElement('div');\n    controls.className = 'lg-model-tools';\n    controls.dataset.lgCardFor = fieldKey;\n    controls.dataset.lgPanel = group.dataset.lgPanel || 'shaft';\n    var searchButton = document.createElement('button');\n    searchButton.type = 'button';\n    searchButton.className = 'lg-model-search-toggle';\n    searchButton.textContent = settings.searchLabel;\n    controls.appendChild(searchButton);\n    var searchWrap = document.createElement('div');\n    searchWrap.className = 'lg-model-search';\n    searchWrap.hidden = true;\n    var search = document.createElement('input');\n    search.type = 'search';\n    search.placeholder = settings.searchPlaceholder;\n    search.setAttribute('aria-label', settings.searchLabel);\n    var results = document.createElement('div');\n    results.className = 'lg-model-search__results';\n    searchWrap.appendChild(search);\n    searchWrap.appendChild(results);\n    controls.appendChild(searchWrap);\n    parent.insertBefore(controls, group.nextSibling);\n    var card = document.createElement('div');\n    card.className = 'lg-model-card';\n    card.dataset.lgCardFor = fieldKey;\n    card.dataset.lgPanel = group.dataset.lgPanel || 'shaft';\n    card.innerHTML = '<div class=\"lg-model-card__media\" hidden><img alt=\"\" loading=\"lazy\"></div><div class=\"lg-model-card__copy\"><strong></strong><span class=\"lg-model-card__price\"></span><span class=\"lg-model-card__image-status\" role=\"status\" hidden></span></div>';\n    parent.insertBefore(card, controls.nextSibling);\n    if (typeof ResizeObserver !== 'undefined') {\n      new ResizeObserver(function () {\n        var media = card.querySelector('.lg-model-card__media');\n        if (!media.hidden) fitSelectedImage(media.querySelector('img'), media, card.querySelector('strong').textContent);\n      }).observe(card.querySelector('.lg-model-card__media'));\n    }\n    var requestId = 0;\n    function updateCard() {\n      var currentRequest = ++requestId;\n      var option = select.options[select.selectedIndex];\n      var value = option ? option.text.trim() : '';\n      var gripValue = normalise(value);\n      card.classList.toggle('lg-grip-jumbomax', /jumbomax/.test(gripValue));\n      card.classList.toggle('lg-grip-master', /grip master|grips master|roo sewn|roo tour/.test(gripValue));\n      card.classList.toggle('lg-grip-golf-pride', /golf pride/.test(gripValue));\n      card.classList.toggle('lg-grip-align', /golf pride/.test(gripValue) && /align/.test(gripValue));\n      card.classList.toggle('lg-grip-diagonal-source', /z grip|z-grip|align red (midsize|mid size)/.test(gripValue));\n      var copy = card.querySelector('strong');\n      var photoStatus = card.querySelector('.lg-model-card__image-status');\n      photoStatus.hidden = true;\n      photoStatus.textContent = '';\n      var price = card.querySelector('.lg-model-card__price');\n      var media = card.querySelector('.lg-model-card__media');\n      var image = media.querySelector('img');\n      copy.textContent = value && !/^select/i.test(value) ? value : settings.emptyModel;\n      copy.hidden = isIronBuilder();\n      price.textContent = '';\n      media.hidden = true;\n      image.removeAttribute('src');\n      image.alt = '';\n      image.removeAttribute('style');\n      media.classList.remove('has-builder-image', 'lg-image-reveal');\n      image.classList.remove('lg-portrait-artwork', 'lg-square-mcc-artwork');\n      image.style.width = '';\n      image.style.height = '';\n      image.dataset.lgArtworkAngle = '';\n      image.dataset.lgArtworkOffsetY = '';\n      image.dataset.lgArtworkOffsetX = '';\n      image.dataset.lgArtworkContentWidth = '';\n      image.dataset.lgArtworkContentHeight = '';\n      image.dataset.lgArtworkDisplayHeight = '';\n      image.classList.remove('lg-verified-artwork');\n      if (!value || /^select/i.test(value)) return;\n      var productQuery = group.dataset.lgPanel === 'grip' ? gripSearchQuery(value) : value;\n      (verifiedArtwork(value) ? Promise.resolve(verifiedArtwork(value)) : findProduct(productQuery)).then(function (product) {\n        if (!product || currentRequest !== requestId) return;\n        builderProductImage(product, value).then(function (builderImage) {\n          if (currentRequest !== requestId) return;\n          if (!builderImage.src) { photoStatus.textContent = 'Photo unavailable'; photoStatus.hidden = false; return; }\n          media.classList.toggle('has-builder-image', builderImage.dedicated);\n          image.dataset.lgArtworkAngle = typeof builderImage.angle === 'number' ? String(builderImage.angle) : '';\n          image.dataset.lgArtworkOffsetY = String(builderImage.offsetY || 0);\n          image.dataset.lgArtworkOffsetX = String(builderImage.offsetX || 0);\n          image.dataset.lgArtworkContentWidth = String(builderImage.contentWidth || 1);\n          image.dataset.lgArtworkContentHeight = String(builderImage.contentHeight || 0);\n          image.dataset.lgArtworkDisplayHeight = String(builderImage.displayHeight || 0);\n          image.onload = function () { fitSelectedImage(image, media, value); media.classList.add('lg-image-reveal'); };\n          image.onerror = function () { if (currentRequest === requestId) { media.hidden = true; photoStatus.textContent = 'Photo unavailable'; photoStatus.hidden = false; } };\n          image.src = builderImage.src;\n          image.alt = value;\n          media.hidden = false;\n          if (image.complete && image.naturalWidth) { fitSelectedImage(image, media, value); media.classList.add('lg-image-reveal'); }\n        });\n        var currentPrice = money(product.price);\n        var comparePrice = money(product.compare_at_price_max || product.compare_at_price);\n        price.innerHTML = '';\n        if (currentPrice) { var current = document.createElement('span'); current.textContent = currentPrice; price.appendChild(current); }\n        if (hasNonZeroPrice(comparePrice) && comparePrice !== currentPrice) { var compare = document.createElement('s'); compare.textContent = comparePrice; price.appendChild(compare); }\n      }).catch(function () {});\n    }\n    function selectOnlyModel() {\n      if (select.value) return;\n      var choices = Array.prototype.filter.call(select.options, function (option) {\n        return option.value && !/^select|^choose/i.test(option.text.trim());\n      });\n      if (choices.length !== 1) return;\n      select.value = choices[0].value;\n      dispatchChange(select);\n    }\n    function renderResults() {\n      var query = normalise(search.value);\n      results.innerHTML = '';\n      if (!query) return;\n      Array.prototype.forEach.call(select.options, function (option) {\n        if (!option.value || normalise(option.text).indexOf(query) === -1) return;\n        var button = document.createElement('button');\n        button.type = 'button';\n        button.textContent = option.text;\n        button.addEventListener('click', function () {\n          select.value = option.value; dispatchChange(select); searchWrap.hidden = true; search.value = ''; results.innerHTML = '';\n        });\n        results.appendChild(button);\n      });\n      if (!results.children.length) { var empty = document.createElement('p'); empty.textContent = settings.noResults; results.appendChild(empty); }\n    }\n    searchButton.addEventListener('click', function () { searchWrap.hidden = !searchWrap.hidden; if (!searchWrap.hidden) search.focus(); });\n    search.addEventListener('input', renderResults);\n    select.addEventListener('change', updateCard);\n    new MutationObserver(updateCard).observe(select, { childList: true });\n    selectOnlyModel();\n    updateCard();\n  }\n  function removeModelSelectEnhancement(group, select) {\n    if (!group || !select || !group.parentNode) return;\n    var fieldKeys = [select.id, select.getAttribute('name'), select.getAttribute('name-disabled')].filter(Boolean);\n    Array.prototype.forEach.call(group.parentNode.querySelectorAll('.lg-model-card,.lg-model-tools'), function (item) {\n      if (fieldKeys.indexOf(item.dataset.lgCardFor) !== -1) item.remove();\n    });\n    delete select.dataset.lgModelBound;\n    delete group.dataset.lgModel;\n    group.classList.remove('lg-model-picker');\n  }\n  function automaticCatalogConfig() {\n    var node = document.querySelector('[data-lg-builder-catalog-config]');\n    if (!node) return null;\n    try {\n      var config = JSON.parse(node.textContent || '{}');\n      return config && config.enabled && config.shaftCollection ? config : null;\n    } catch (error) { return null; }\n  }\n  function nativeOptionGroup(field) {\n    return field && (field.closest('[data-infinite-options],.spb-select,.spb-productoption') || field.parentNode);\n  }\n  function hideNativeComponentFields(options, component) {\n    Array.prototype.forEach.call(options.querySelectorAll('select'), function (field) {\n      if (field.closest('.lg-auto-catalog')) return;\n      var group = nativeOptionGroup(field);\n      var label = groupLabel(group) || field.getAttribute('name') || field.getAttribute('name-disabled') || '';\n      var matches = component === 'grip'\n        ? /(?:select\\s*grip|grip\\s*(?:brand|model|selection))/i.test(label)\n        : /shaft\\s*(brand|model|selection|weight.*flex|flex.*weight)/i.test(label);\n      if (!matches) return;\n      group.dataset.lgAutoNative = 'true';\n      group.hidden = true;\n      group.style.setProperty('display', 'none', 'important');\n      field.disabled = true;\n      field.removeAttribute('required');\n      if (field.getAttribute('name') && !field.getAttribute('name-disabled')) {\n        field.setAttribute('name-disabled', field.getAttribute('name'));\n        field.removeAttribute('name');\n      }\n    });\n  }\n  function catalogUrl(path, page) {\n    return path + (path.indexOf('?') === -1 ? '?' : '&') + 'view=builder-data&page=' + page;\n  }\n  function fetchComponentCatalog(path) {\n    var products = [];\n    function fetchPage(page) {\n      return fetch(catalogUrl(path, page), { credentials: 'same-origin' }).then(function (response) {\n        if (!response.ok) throw new Error('The component collection could not be loaded.');\n        return response.json();\n      }).then(function (data) {\n        products = products.concat(data.products || []);\n        return page < (data.pages || 1) ? fetchPage(page + 1) : products;\n      });\n    }\n    return fetchPage(1);\n  }\n  function componentPrice(cents) {\n    var amount = Number(cents || 0);\n    if (amount <= 0) return 'No upcharge';\n    return '+$' + (amount / 100).toLocaleString('en-AU', {\n      minimumFractionDigits: 2,\n      maximumFractionDigits: 2\n    });\n  }\n  function setPropertyInput(form, label, value) {\n    var selector = 'input[data-lg-property=\"' + label.replace(/\"/g, '&quot;') + '\"]';\n    var input = form.querySelector(selector);\n    if (!input) {\n      input = document.createElement('input');\n      input.type = 'hidden';\n      input.dataset.lgProperty = label;\n      input.name = 'properties[' + label + ']';\n      form.appendChild(input);\n    }\n    input.value = value || '';\n  }\n  function componentCartState(form, config) {\n    if (form._lgComponentCartState) return form._lgComponentCartState;\n    var state = { components: [], pending: 0, adding: false, bypass: false };\n    form._lgComponentCartState = state;\n    form.addEventListener('submit', function (event) {\n      if (state.bypass) { state.bypass = false; return; }\n      if (state.adding) { event.preventDefault(); event.stopImmediatePropagation(); return; }\n      var missing = state.components.find(function (component) { return !component.getSelection(); });\n      if (state.pending || missing) {\n        event.preventDefault();\n        event.stopImmediatePropagation();\n        var message = missing ? missing.message : state.components[0] && state.components[0].message;\n        if (message) message.textContent = state.pending\n          ? 'Please wait while the component catalogue finishes loading.'\n          : 'Please choose a ' + missing.label.toLowerCase() + ' before adding this club to the cart.';\n        var focusTarget = missing && missing.getFocus();\n        if (focusTarget) focusTarget.focus();\n        if (missing && missing.group) missing.group.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        return;\n      }\n      if (!state.components.length) return;\n      event.preventDefault();\n      event.stopImmediatePropagation();\n      state.adding = true;\n      var originalSubmitter = event.submitter || null;\n      var quantityField = form.querySelector('[name=\"quantity\"]');\n      var quantity = Math.max(1, parseInt(quantityField && quantityField.value || '1', 10) || 1);\n      var buildReference = 'LG-' + Date.now().toString(36).toUpperCase() + '-' + Math.random().toString(36).slice(2, 7).toUpperCase();\n      setPropertyInput(form, '_Build reference', buildReference);\n      var items = state.components.map(function (component) {\n        var selection = component.getSelection();\n        var properties = {\n          '_Build reference': buildReference,\n          'Built for': config.productTitle || 'Custom golf club',\n          'Builder component': component.componentLabel\n        };\n        properties[component.brandProperty] = selection.brand;\n        properties[component.modelProperty] = selection.product.title;\n        properties[component.variantProperty] = selection.variantTitle;\n        if (component.message) component.message.textContent = 'Adding your selected ' + component.componentLabel.toLowerCase() + '\u2026';\n        return { id: Number(selection.variant.id), quantity: quantity, properties: properties };\n      });\n      var root = window.Shopify && Shopify.routes && Shopify.routes.root || '/';\n      fetch(root + 'cart/add.js', {\n        method: 'POST', credentials: 'same-origin',\n        headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n        body: JSON.stringify({ items: items })\n      }).then(function (response) {\n        if (!response.ok) return response.json().catch(function () { return {}; }).then(function (data) {\n          throw new Error(data.description || 'The selected builder components could not be added.');\n        });\n        return response.json();\n      }).then(function () {\n        state.adding = false;\n        state.components.forEach(function (component) { component.message.textContent = ''; });\n        state.bypass = true;\n        if (typeof form.requestSubmit === 'function') form.requestSubmit(originalSubmitter || undefined);\n        else form.submit();\n      }).catch(function (error) {\n        state.adding = false;\n        var target = state.components[0] && state.components[0].message;\n        if (target) target.textContent = error.message || 'The selected builder components could not be added. Please try again.';\n      });\n    }, true);\n    return state;\n  }\n  function setupAutomaticComponentCatalog(options, tabs, settings, config, definition) {\n    if (!definition.collection || options.querySelector('.lg-auto-catalog--' + definition.key)) return;\n    var form = options.closest('form') || document.querySelector('product-form form[action*=\"/cart/add\"],form[data-type=\"add-to-cart\"],form[action*=\"/cart/add\"]');\n    if (!form) return;\n    var cartState = componentCartState(form, config);\n    cartState.pending++;\n\n    var loading = document.createElement('div');\n    loading.className = 'lg-auto-catalog lg-auto-catalog--loading lg-auto-catalog--' + definition.key;\n    loading.dataset.lgPanel = definition.panel;\n    loading.innerHTML = '<p>Loading ' + definition.componentLabel.toLowerCase() + ' catalogue\u2026</p>';\n    options.insertBefore(loading, tabs.nextSibling);\n\n    fetchComponentCatalog(definition.collection).then(function (products) {\n      products = products.filter(function (product) { return product && product.vendor && product.variants && product.variants.length; });\n      if (definition.filter) products = products.filter(definition.filter);\n      if (!products.length) throw new Error('No ' + definition.componentLabel.toLowerCase() + ' products were found in the selected collection.');\n      products.sort(function (a, b) { return a.title.localeCompare(b.title); });\n\n      var brands = products.reduce(function (list, product) {\n        if (list.indexOf(product.vendor) === -1) list.push(product.vendor);\n        return list;\n      }, []).sort(function (a, b) { return a.localeCompare(b); });\n\n      var group = document.createElement('div');\n      group.className = 'lg-auto-catalog lg-auto-catalog--' + definition.key;\n      group.dataset.lgPanel = definition.panel;\n      group.innerHTML =\n        '<div class=\"lg-auto-field\"><label>' + definition.brandLabel + '</label><select class=\"lg-auto-brand\" required><option value=\"\">Select ' + definition.brandLabel.toLowerCase() + '</option></select></div>' +\n        '<div class=\"lg-auto-field\"><label>' + definition.modelLabel + '</label><select class=\"lg-auto-model\" required disabled><option value=\"\">Select ' + definition.modelLabel.toLowerCase() + '</option></select></div>' +\n        '<div class=\"lg-auto-model-card\" hidden><div class=\"lg-auto-model-card__copy\"><strong></strong><span></span></div><div class=\"lg-auto-model-card__media\" hidden><img alt=\"\" loading=\"lazy\"></div></div>' +\n        '<fieldset class=\"lg-auto-variants\" disabled><legend>' + definition.variantLabel + '</legend><div class=\"lg-auto-variant-pills\"></div></fieldset>' +\n        '<p class=\"lg-auto-catalog__message\" aria-live=\"polite\"></p>';\n      loading.replaceWith(group);\n\n      var brandSelect = group.querySelector('.lg-auto-brand');\n      var modelSelect = group.querySelector('.lg-auto-model');\n      var card = group.querySelector('.lg-auto-model-card');\n      var cardTitle = card.querySelector('strong');\n      var cardPrice = card.querySelector('span');\n      var cardMedia = card.querySelector('.lg-auto-model-card__media');\n      var cardImage = card.querySelector('img');\n      var variantFieldset = group.querySelector('.lg-auto-variants');\n      var pills = group.querySelector('.lg-auto-variant-pills');\n      var message = group.querySelector('.lg-auto-catalog__message');\n      var selectedVariant = null;\n\n      brands.forEach(function (brand) {\n        var option = document.createElement('option');\n        option.value = brand; option.textContent = brand; brandSelect.appendChild(option);\n      });\n\n      function clearSelection() {\n        selectedVariant = null;\n        variantFieldset.disabled = true;\n        pills.innerHTML = '';\n        card.hidden = true;\n        setPropertyInput(form, definition.modelProperty, '');\n        setPropertyInput(form, definition.variantProperty, '');\n      }\n      function renderModels() {\n        var brand = brandSelect.value;\n        setPropertyInput(form, definition.brandProperty, brand);\n        modelSelect.innerHTML = '<option value=\"\">Select ' + definition.modelLabel.toLowerCase() + '</option>';\n        clearSelection();\n        products.filter(function (product) { return product.vendor === brand; }).forEach(function (product) {\n          var option = document.createElement('option');\n          option.value = String(product.id); option.textContent = product.title; modelSelect.appendChild(option);\n        });\n        modelSelect.disabled = !brand;\n        message.textContent = '';\n      }\n      function renderVariants() {\n        var product = products.find(function (item) { return String(item.id) === modelSelect.value; });\n        clearSelection();\n        if (!product) return;\n        setPropertyInput(form, definition.modelProperty, product.title);\n        cardTitle.textContent = product.title;\n        cardPrice.textContent = '';\n        cardImage.src = product.image || '';\n        cardImage.alt = product.title;\n        card.classList.toggle('has-image', !!product.image);\n        cardMedia.hidden = !product.image;\n        card.hidden = false;\n        variantFieldset.disabled = false;\n        product.variants.forEach(function (variant) {\n          var button = document.createElement('button');\n          button.type = 'button';\n          button.className = 'lg-auto-variant';\n          button.disabled = !variant.available;\n          button.textContent = variant.title && variant.title !== 'Default Title' ? variant.title : 'Standard';\n          button.addEventListener('click', function () {\n            selectedVariant = variant;\n            Array.prototype.forEach.call(pills.children, function (item) { item.classList.toggle('is-selected', item === button); });\n            setPropertyInput(form, definition.variantProperty, button.textContent);\n            cardPrice.textContent = componentPrice(variant.price);\n            if (variant.image) cardImage.src = variant.image;\n            message.textContent = '';\n          });\n          pills.appendChild(button);\n        });\n        var available = Array.prototype.filter.call(pills.children, function (button) { return !button.disabled; });\n        if (available.length === 1) available[0].click();\n      }\n\n      brandSelect.addEventListener('change', renderModels);\n      modelSelect.addEventListener('change', renderVariants);\n      hideNativeComponentFields(options, definition.key);\n      cartState.components.push({\n        label: definition.componentLabel,\n        componentLabel: definition.componentLabel,\n        brandProperty: definition.brandProperty,\n        modelProperty: definition.modelProperty,\n        variantProperty: definition.variantProperty,\n        group: group,\n        message: message,\n        getFocus: function () { return !brandSelect.value ? brandSelect : !modelSelect.value ? modelSelect : pills.querySelector('button:not(:disabled)'); },\n        getSelection: function () {\n          var product = products.find(function (item) { return String(item.id) === modelSelect.value; });\n          if (!brandSelect.value || !product || !selectedVariant) return null;\n          return {\n            brand: brandSelect.value,\n            product: product,\n            variant: selectedVariant,\n            variantTitle: selectedVariant.title && selectedVariant.title !== 'Default Title' ? selectedVariant.title : 'Standard'\n          };\n        }\n      });\n      cartState.pending--;\n    }).catch(function (error) {\n      cartState.pending--;\n      loading.classList.add('has-error');\n      loading.innerHTML = '<p></p>';\n      loading.querySelector('p').textContent = error.message || 'The component catalogue could not be loaded. Please refresh the page.';\n    });\n  }\n  function setupAutomaticCatalogs(options, tabs, settings) {\n    var config = automaticCatalogConfig();\n    if (!config) return;\n    setupAutomaticComponentCatalog(options, tabs, settings, config, {\n      key: 'shaft', panel: 'shaft', collection: config.shaftCollection,\n      componentLabel: 'Shaft', brandLabel: 'Shaft brand', modelLabel: 'Shaft model', variantLabel: 'Shaft weight & flex',\n      brandProperty: 'Shaft Brand', modelProperty: 'Shaft Model', variantProperty: 'Shaft Weight & Flex'\n    });\n    if (config.gripEnabled && config.gripCollection) {\n      setupAutomaticComponentCatalog(options, tabs, settings, config, {\n        key: 'grip', panel: 'grip', collection: config.gripCollection,\n        componentLabel: 'Grip', brandLabel: 'Grip brand', modelLabel: 'Grip model', variantLabel: 'Grip option',\n        brandProperty: 'Grip Brand', modelProperty: 'Grip Model', variantProperty: 'Grip Option',\n        filter: function (product) {\n          var tags = (product.tags || []).join(' ');\n          return /grip/i.test(product.type || '') || /grip/i.test(tags);\n        }\n      });\n    }\n  }\n  function setupShaftBrowserDirect(options) {\n    if (!options || options.querySelector('.lg-shaft-browser-launcher')) return;\n    var source = document.querySelector('[data-lg-shaft-browser-source]');\n    var launcher = source && source.querySelector('.lg-shaft-browser-launcher');\n    var dialog = source && source.querySelector('[data-lg-shaft-browser]');\n    if (!launcher || !dialog) return;\n    options.insertBefore(launcher, options.firstChild);\n    document.body.appendChild(dialog);\n    source.remove();\n    var root = document.querySelector('#infiniteoptions-container') || options;\n    var brandFilter = dialog.querySelector('[data-lg-shaft-brand]');\n    var search = dialog.querySelector('[data-lg-shaft-search]');\n    var results = dialog.querySelector('[data-lg-shaft-results]');\n    var status = dialog.querySelector('[data-lg-shaft-status]');\n    var currentText = launcher.querySelector('[data-lg-current-shaft]');\n    var returnFocus;\n\n    function fieldGroup(field) {\n      return field && (field.closest('[data-infinite-options],.spb-select,.spb-productoption') || field.parentElement);\n    }\n    function fieldLabel(field) {\n      var group = fieldGroup(field);\n      return text(group && group.querySelector('label,legend,.spb-label-tooltip') || group).toLowerCase();\n    }\n    function validOption(option) {\n      return option && option.value && !/^(select|choose)/i.test(text(option));\n    }\n    function brandSelect() {\n      var matches = Array.prototype.filter.call(root.querySelectorAll('select'), function (field) {\n        return /shaft brand/.test(fieldLabel(field));\n      });\n      return matches.find(function (field) { return fieldLabel(field) === 'shaft brand'; }) ||\n        matches.find(function (field) { return field.options.length < 100; }) || matches[0];\n    }\n    function modelSelect() {\n      var fields = Array.prototype.filter.call(root.querySelectorAll('select'), function (field) {\n        var group = fieldGroup(field);\n        var label = fieldLabel(field);\n        return /shaft/.test(label) && /(?:model|selection)/.test(label) &&\n          !/\\b(?:flex|weight|brand)\\b/.test(label) && group && field.options.length < 100;\n      });\n      var nativeBrand = brandSelect();\n      var selectedBrand = normalise(nativeBrand && nativeBrand.options[nativeBrand.selectedIndex] ? text(nativeBrand.options[nativeBrand.selectedIndex]) : brandFilter.value);\n      var brandMatchers = {\n        accra: /\\baccra\\b/,\n        aldila: /\\baldila\\b/,\n        aretera: /\\baretera\\b/,\n        bgt: /\\b(?:bgt|brava|sierra echo|forta)\\b/,\n        fujikura: /\\b(?:fujikura|ventus|speeder|vista pro|sakura)\\b/,\n        grafalloy: /\\b(?:grafalloy|prolaunch)\\b/,\n        'graphite design': /\\b(?:graphite design|tour ad)\\b/,\n        kbs: /\\b(?:kbs|max hl|td 2|tg black|pgw)\\b/,\n        mitsubishi: /\\b(?:mitsubishi|diamana|tensei|vanquish)\\b/,\n        nippon: /\\b(?:nippon|regio)\\b/,\n        ust: /\\b(?:ust|linq|proforce)\\b/,\n        tpt: /\\b(?:tpt|power range|nitro)\\b/,\n        'project x': /\\b(?:project x|hzrdus|denali)\\b/\n      };\n      var matcher = brandMatchers[selectedBrand];\n      if (matcher) {\n        var matched = fields.map(function (field) {\n          var score = Array.prototype.reduce.call(field.options, function (total, option) {\n            return total + (matcher.test(normalise(text(option))) ? 1 : 0);\n          }, 0);\n          return { field: field, score: score };\n        }).sort(function (a, b) { return b.score - a.score; })[0];\n        matched = matched && matched.score ? matched.field : null;\n        if (matched) return matched;\n      }\n      return fields.find(function (field) {\n        var group = fieldGroup(field);\n        return group && !group.hidden && window.getComputedStyle(group).display !== 'none';\n      }) || fields[0];\n    }\n    function syncBrands() {\n      var nativeBrand = brandSelect();\n      if (!nativeBrand) return;\n      brandFilter.innerHTML = '';\n      Array.prototype.forEach.call(nativeBrand.options, function (option) {\n        if (!validOption(option)) return;\n        var copy = document.createElement('option');\n        copy.value = option.value;\n        copy.textContent = text(option);\n        copy.selected = option.selected;\n        brandFilter.appendChild(copy);\n      });\n    }\n    function updateCurrent() {\n      var model = modelSelect();\n      var brand = brandSelect();\n      var modelOption = model && model.options[model.selectedIndex];\n      var brandOption = brand && brand.options[brand.selectedIndex];\n      currentText.textContent = validOption(modelOption) ? text(modelOption) : validOption(brandOption) ? text(brandOption) : 'Browse by brand and model';\n    }\n    function renderResults() {\n      var model = modelSelect();\n      var query = normalise(search.value);\n      results.innerHTML = '';\n      var brandName = normalise(brandFilter.options[brandFilter.selectedIndex] ? text(brandFilter.options[brandFilter.selectedIndex]) : '');\n      var brandMatchers = {\n        accra: /\\baccra\\b/, aldila: /\\baldila\\b/, aretera: /\\baretera\\b/,\n        bgt: /\\b(?:bgt|brava|sierra echo|forta)\\b/,\n        fujikura: /\\b(?:fujikura|ventus|speeder|vista pro|sakura)\\b/,\n        grafalloy: /\\b(?:grafalloy|prolaunch)\\b/,\n        'graphite design': /\\b(?:graphite design|tour ad)\\b/,\n        kbs: /\\b(?:kbs|max hl|td 2|tg black|pgw)\\b/,\n        mitsubishi: /\\b(?:mitsubishi|diamana|tensei|vanquish)\\b/,\n        nippon: /\\b(?:nippon|regio)\\b/, ust: /\\b(?:ust|linq|proforce)\\b/,\n        tpt: /\\b(?:tpt|power range|nitro)\\b/,\n        'project x': /\\b(?:project x|hzrdus|denali)\\b/\n      };\n      var matcher = brandMatchers[brandName];\n      var catalog = matcher ? exactBuilderArtwork.filter(function (entry) { return matcher.test(normalise(entry.label)); }) : [];\n      var seen = {};\n      var choices = catalog.filter(function (entry) {\n        var key = normalise(entry.label);\n        if (seen[key] || query && key.indexOf(query) === -1) return false;\n        seen[key] = true; return true;\n      }).map(function (entry) { return { label: entry.label, artwork: entry }; });\n      if (!choices.length && model) {\n        choices = Array.prototype.filter.call(model.options, function (option) {\n          return validOption(option) && (!query || normalise(text(option)).indexOf(query) !== -1);\n        }).map(function (option) { return { label: text(option), option: option, field: model }; });\n      }\n      if (!choices.length && !model) {\n        status.textContent = 'Choose a shaft brand to see its models.';\n        results.innerHTML = '<p class=\"lg-shaft-browser__empty\">Select a brand to view its available shafts.</p>';\n        return;\n      }\n      status.textContent = choices.length + (choices.length === 1 ? ' shaft option' : ' shaft options');\n      choices.forEach(function (choice) {\n        var label = choice.label;\n        if (!choice.option) {\n          Array.prototype.some.call(root.querySelectorAll('select'), function (field) {\n            return Array.prototype.some.call(field.options, function (option) {\n              if (normalise(text(option)) !== normalise(label)) return false;\n              choice.option = option; choice.field = field; return true;\n            });\n          });\n        }\n        var button = document.createElement('button');\n        button.type = 'button';\n        button.className = 'lg-shaft-browser__result' + (choice.option && choice.option.selected ? ' is-selected' : '');\n        var media = document.createElement('span');\n        media.className = 'lg-shaft-browser__result-media';\n        var image = document.createElement('img');\n        image.loading = 'eager';\n        image.alt = '';\n        media.appendChild(image);\n        var artworkMatch = choice.artwork ? { artwork: choice.artwork, title: label } : verifiedArtwork(label);\n        if (!artworkMatch) {\n          var wanted = normalise(label);\n          var exactMatch = exactBuilderArtwork.filter(function (entry) {\n            return wanted.indexOf(normalise(entry.label)) !== -1;\n          }).sort(function (a, b) { return normalise(b.label).length - normalise(a.label).length; })[0];\n          if (exactMatch) artworkMatch = { artwork: exactMatch, title: text(option) };\n        }\n        if (artworkMatch && artworkMatch.artwork && artworkMatch.artwork.src) {\n          image.src = artworkMatch.artwork.src;\n          image.alt = label;\n        } else {\n          media.classList.add('is-placeholder');\n          media.textContent = 'SHAFT';\n        }\n        var title = document.createElement('strong');\n        title.textContent = label;\n        var brand = document.createElement('span');\n        brand.textContent = brandFilter.options[brandFilter.selectedIndex] ? text(brandFilter.options[brandFilter.selectedIndex]) : 'Shaft';\n        var arrow = document.createElement('em');\n        arrow.textContent = choice.option && choice.option.selected ? '\u2713' : '\u2192';\n        button.appendChild(media);\n        button.appendChild(title);\n        button.appendChild(brand);\n        button.appendChild(arrow);\n        button.addEventListener('click', function () {\n          if (!choice.option || !choice.field) return;\n          choice.field.value = choice.option.value;\n          dispatchChange(choice.field);\n          updateCurrent();\n          dialog.close();\n          var card = options.querySelector('.lg-model-card[data-lg-panel=\"shaft\"]');\n          if (card) card.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        });\n        results.appendChild(button);\n      });\n      if (!choices.length) results.innerHTML = '<p class=\"lg-shaft-browser__empty\">No shafts match that search.</p>';\n    }\n\n    launcher.querySelector('[data-lg-open-shaft-browser]').addEventListener('click', function (event) {\n      returnFocus = event.currentTarget;\n      syncBrands();\n      dialog.showModal();\n      window.requestAnimationFrame(function () { search.focus(); });\n      var nativeBrand = brandSelect();\n      if (nativeBrand && brandFilter.value && nativeBrand.value !== brandFilter.value) {\n        nativeBrand.value = brandFilter.value;\n        dispatchChange(nativeBrand);\n        status.textContent = 'Loading shaft models\u2026';\n        window.setTimeout(function () { syncBrands(); renderResults(); updateCurrent(); }, 400);\n      } else {\n        renderResults();\n      }\n    });\n    dialog.querySelector('[data-lg-close-shaft-browser]').addEventListener('click', function () { dialog.close(); });\n    dialog.addEventListener('close', function () {\n      search.value = '';\n      if (returnFocus) returnFocus.focus();\n    });\n    search.addEventListener('input', renderResults);\n    brandFilter.addEventListener('change', function () {\n      var nativeBrand = brandSelect();\n      if (!nativeBrand) return;\n      nativeBrand.value = brandFilter.value;\n      dispatchChange(nativeBrand);\n      status.textContent = 'Loading shaft models\u2026';\n      window.setTimeout(function () { syncBrands(); renderResults(); updateCurrent(); }, 350);\n    });\n    root.addEventListener('change', function () {\n      window.setTimeout(function () { syncBrands(); updateCurrent(); if (dialog.open) renderResults(); }, 80);\n    });\n    syncBrands();\n    updateCurrent();\n  }\n\n  function setupVisualConfigurator(options, header) {\n    if (!options || options.dataset.lgVisualReady === 'true') return;\n    options.dataset.lgVisualReady = 'true';\n    options.classList.add('lg-visual-options');\n    setupShaftBrowserDirect(options);\n    var settings = {\n      shaftLabel: header.dataset.shaftTab || 'Shaft', gripLabel: header.dataset.gripTab || 'Grip',\n      nextLabel: header.dataset.nextLabel || 'Next \u2014 Choose grip', searchLabel: header.dataset.searchLabel || 'Search shafts',\n      searchPlaceholder: header.dataset.searchPlaceholder || 'Type a shaft model', emptyModel: header.dataset.emptyModel || 'Choose a model',\n      noResults: header.dataset.noResults || 'No matching options'\n    };\n    var tabs = document.createElement('div');\n    tabs.className = 'lg-config-tabs';\n    tabs.setAttribute('role', 'tablist');\n    tabs.innerHTML = '<button type=\"button\" class=\"is-active\" data-lg-tab=\"shaft\" role=\"tab\"></button><button type=\"button\" data-lg-tab=\"grip\" role=\"tab\"></button>';\n    tabs.children[0].textContent = settings.shaftLabel;\n    tabs.children[1].textContent = settings.gripLabel;\n    options.insertBefore(tabs, options.firstChild);\n    var next = document.createElement('button');\n    next.type = 'button';\n    next.className = 'lg-config-next';\n    next.textContent = settings.nextLabel;\n    options.appendChild(next);\n    setupAutomaticCatalogs(options, tabs, settings);\n    function hideDuplicateOptionGroups() {\n      Array.prototype.forEach.call(options.querySelectorAll('[id*=\"io_duplicate\"],[name*=\"io_duplicate\"]'), function (field) {\n        var group = field.closest('[data-infinite-options],.spb-select,.spb-productoption') || field.parentElement;\n        if (!group || group.dataset.lgDuplicateHidden === 'true') return;\n        group.dataset.lgDuplicateHidden = 'true';\n        group.hidden = true;\n        group.style.setProperty('display', 'none', 'important');\n        Array.prototype.forEach.call(group.querySelectorAll('select,input,textarea'), function (control) {\n          control.disabled = true;\n          control.removeAttribute('required');\n        });\n      });\n    }\n    function showPanel(panel) {\n      Array.prototype.forEach.call(options.querySelectorAll('[data-lg-panel]'), function (group) {\n        if (group.dataset.lgLegacyShaft === 'true') { group.hidden = true; group.style.setProperty('display', 'none', 'important'); return; }\n        group.hidden = group.dataset.lgPanel !== panel;\n      });\n      Array.prototype.forEach.call(tabs.querySelectorAll('button'), function (button) {\n        var active = button.dataset.lgTab === panel;\n        button.classList.toggle('is-active', active);\n        button.setAttribute('aria-selected', active ? 'true' : 'false');\n      });\n      next.hidden = panel !== 'shaft' || tabs.children[1].disabled;\n      requestAnimationFrame(function () {\n        Array.prototype.forEach.call(options.querySelectorAll('.lg-model-card[data-lg-panel=\"' + panel + '\"] .lg-model-card__media img'), function (image) {\n          var card = image.closest('.lg-model-card');\n          var label = card && card.querySelector('strong');\n          if (label) fitSelectedImage(image, image.parentNode, text(label));\n        });\n      });\n    }\n    function classifyAndEnhance() {\n      if (!tabs.isConnected) options.insertBefore(tabs, options.firstChild);\n      if (!next.isConnected) options.appendChild(next);\n      hideDuplicateOptionGroups();\n      var automaticCatalog = options.querySelector('.lg-auto-catalog:not(.lg-auto-catalog--loading)');\n      if (automaticCatalog) {\n        hideNativeComponentFields(options, 'shaft');\n        if (options.querySelector('.lg-auto-catalog--grip')) hideNativeComponentFields(options, 'grip');\n      }\n      var hasShaftHierarchy = Array.prototype.some.call(options.querySelectorAll('select'), function (candidate) {\n        if (candidate.closest('.lg-auto-catalog')) return false;\n        var candidateGroup = candidate.closest('[data-infinite-options],.spb-select,.spb-productoption,div');\n        var candidateLabel = groupLabel(candidateGroup) || candidate.getAttribute('name') || '';\n        return /shaft\\s*brand/i.test(candidateLabel);\n      });\n      Array.prototype.forEach.call(options.children, function (group) {\n        if (group === tabs || group === next || group.classList.contains('lg-step-heading') || group.classList.contains('lg-auto-catalog') || group.dataset.lgAutoNative === 'true') return;\n        var select = group.querySelector('select');\n        var label = groupLabel(group) || (select && select.getAttribute('name')) || '';\n        if (!label) return;\n        var conditionallyHidden = group.hasAttribute('disabled') || (select && select.disabled) || group.style.display === 'none';\n        group.dataset.lgPanel = /grip/i.test(label) ? 'grip' : 'shaft';\n        if (/shaft\\s*brand/i.test(label) && select) removeModelSelectEnhancement(group, select);\n        else if (/flex/i.test(label)) { if (select) { removeModelSelectEnhancement(group, select); enhanceSelectPills(group, select); } else enhanceRadioPills(group); }\n        else if (/shaft\\s*model/i.test(label) && select && conditionallyHidden) removeModelSelectEnhancement(group, select);\n        else if (/shaft\\s*model/i.test(label) && select) enhanceModelSelect(group, select, settings);\n        else if (/shaft\\s*selection/i.test(label) && select && hasShaftHierarchy) {\n          removeModelSelectEnhancement(group, select);\n          select.value = '';\n          select.disabled = true;\n          select.removeAttribute('required');\n          select.removeAttribute('name');\n          select.removeAttribute('name-disabled');\n          group.dataset.lgLegacyShaft = 'true';\n          group.hidden = true;\n          group.style.setProperty('display', 'none', 'important');\n        }\n        else if (/(shaft\\s*selection|model\\s*selection)/i.test(label) && select) enhanceModelSelect(group, select, settings);\n        else if (/(select\\s*grip|grip\\s*selection|grip\\s*model)/i.test(label) && select) enhanceModelSelect(group, select, {\n          searchLabel: 'Search grips',\n          searchPlaceholder: 'Type a grip model',\n          emptyModel: 'Choose a grip',\n          noResults: settings.noResults\n        });\n        else enhanceRadioPills(group);\n      });\n      var hasGrip = !!options.querySelector('[data-lg-panel=\"grip\"]');\n      tabs.children[1].disabled = !hasGrip;\n      next.hidden = !hasGrip;\n      showPanel(tabs.querySelector('.is-active').dataset.lgTab);\n    }\n    tabs.addEventListener('click', function (event) {\n      var button = event.target.closest('button[data-lg-tab]');\n      if (button && !button.disabled) showPanel(button.dataset.lgTab);\n    });\n    next.addEventListener('click', function () { showPanel('grip'); tabs.scrollIntoView({ behavior: 'smooth', block: 'center' }); });\n    options.addEventListener('change', function () { setTimeout(classifyAndEnhance, 0); });\n    var productForm = options.closest('form') || document.querySelector('product-form form[action*=\"/cart/add\"],form[data-type=\"add-to-cart\"],form[action*=\"/cart/add\"]');\n    if (productForm) {\n      productForm.addEventListener('submit', classifyAndEnhance, true);\n      productForm.addEventListener('formdata', function (event) {\n        if (options.querySelector('[data-lg-legacy-shaft=\"true\"]')) event.formData.delete('properties[Shaft Selection]');\n      });\n    }\n    classifyAndEnhance();\n    [1000, 2500, 5000, 8000].forEach(function (delay) { setTimeout(classifyAndEnhance, delay); });\n    var observerQueued = false;\n    new MutationObserver(function () {\n      if (observerQueued) return;\n      observerQueued = true;\n      requestAnimationFrame(function () { observerQueued = false; classifyAndEnhance(); });\n    }).observe(options, { childList: true, subtree: true });\n  }\n  function initDefaultProductVisuals() {\n    var fallbackHeader = {\n      dataset: {\n        visualSelector: 'true',\n        shaftTab: 'Shaft',\n        gripTab: 'Grip',\n        nextLabel: 'Next \u2014 Choose grip',\n        searchLabel: 'Search shafts',\n        searchPlaceholder: 'Type a shaft model',\n        emptyModel: 'Choose a shaft model',\n        noResults: 'No matching shaft options'\n      }\n    };\n    var attempts = 0;\n    var timer = setInterval(function () {\n      attempts++;\n      var options = document.getElementById('infiniteoptions-container');\n      if (!options || !options.children.length) {\n        if (attempts > 80) clearInterval(timer);\n        return;\n      }\n      var hasShaftSelection = Array.prototype.some.call(options.querySelectorAll('select'), function (select) {\n        var group = select.closest('[data-infinite-options],.spb-select,.spb-productoption,div');\n        var label = groupLabel(group) || select.getAttribute('name') || '';\n        return /shaft\\s*(selection|model)/i.test(label);\n      });\n      if (automaticCatalogConfig()) hasShaftSelection = true;\n      if (!hasShaftSelection) {\n        if (attempts > 80) clearInterval(timer);\n        return;\n      }\n      clearInterval(timer);\n      document.body.classList.add('lg-builder-page');\n      setupVisualConfigurator(options, fallbackHeader);\n    }, 250);\n  }\n  function init() {\n    var section = document.querySelector('.section-laneway-builder-header');\n    if (!section) { initDefaultProductVisuals(); return; }\n    document.body.classList.add('lg-builder-page');\n    var header = section.querySelector('.lg-builder-hero');\n    var stepOne = header && header.dataset.stepOne || 'Choose your options';\n    var stepTwo = header && header.dataset.stepTwo || 'Choose your build specifications';\n    var summaryTitle = header && header.dataset.summaryTitle || 'Your Custom Build';\n    var visualEnabled = header && header.dataset.visualSelector === 'true';\n    var info = document.querySelector('.product__info-container');\n    var variant = document.querySelector('variant-selects,variant-radios,.product-form__input');\n    var options = document.getElementById('infiniteoptions-container');\n    var buy = document.querySelector('.product-form__buttons');\n    if (!info || !buy) return;\n    addHeading(variant, 1, stepOne);\n    function enhanceOptions() {\n      options = document.getElementById('infiniteoptions-container');\n      if (!options || !options.children.length) return false;\n      addHeading(options, 2, stepTwo);\n      if (visualEnabled || automaticCatalogConfig()) setupVisualConfigurator(options, header);\n      if (!document.querySelector('.lg-build-summary')) {\n        var box = document.createElement('div');\n        box.className = 'lg-build-summary';\n        box.setAttribute('aria-live', 'polite');\n        box.innerHTML = '<p class=\"lg-build-summary__eyebrow\">YOUR BUILD</p><h3></h3><div class=\"lg-build-summary__rows\"></div>';\n        box.querySelector('h3').textContent = summaryTitle;\n        buy.parentNode.insertBefore(box, buy);\n      }\n      update(); return true;\n    }\n    function update() {\n      var rows = [];\n      document.querySelectorAll('variant-selects select,variant-radios input:checked').forEach(function (field) {\n        var label = field.closest('fieldset,.product-form__input');\n        var name = text(label && label.querySelector('legend,.form__label,label')) || 'Club specification';\n        var value = field.matches('select') ? selectedValue(field) : field.value || '';\n        if (value) rows.push([name, value]);\n      });\n      if (options) options.querySelectorAll('select,textarea,input[type=text],input[type=number],input[type=radio]:checked,input[type=checkbox]:checked').forEach(function (field) {\n        if (field.disabled || field.closest('[style*=\"display: none\"]')) return;\n        var parent = field.closest('[data-infinite-options],div,fieldset');\n        var label = text(parent && parent.querySelector(':scope > label,:scope > .spb-label-tooltip,legend')) || field.name.replace(/^properties\\[|\\]$/g, '');\n        var value = field.matches('input[type=radio],input[type=checkbox]') ? field.value || 'Selected' : selectedValue(field);\n        if (label && value && value.toLowerCase().indexOf('select') !== 0) rows.push([label, value]);\n      });\n      if (options) options.querySelectorAll('.lg-auto-variants').forEach(function (fieldset) {\n        var selected = fieldset.querySelector('.lg-auto-variant.is-selected');\n        var label = text(fieldset.querySelector('legend'));\n        if (label && selected) rows.push([label, text(selected)]);\n      });\n      var out = document.querySelector('.lg-build-summary__rows');\n      if (!out) return;\n      var seen = {};\n      var filtered = rows.filter(function (row) { var key = row[0] + '|' + row[1]; if (seen[key]) return false; seen[key] = true; return true; });\n      out.innerHTML = '';\n      if (!filtered.length) { var empty = document.createElement('p'); empty.textContent = 'Start making your selections.'; out.appendChild(empty); return; }\n      filtered.forEach(function (row) {\n        var item = document.createElement('div'); item.className = 'lg-build-summary__row';\n        var label = document.createElement('span'); var value = document.createElement('strong');\n        label.textContent = row[0]; value.textContent = row[1]; item.appendChild(label); item.appendChild(value); out.appendChild(item);\n      });\n    }\n    if (!enhanceOptions()) {\n      var attempts = 0; var timer = setInterval(function () { attempts++; if (enhanceOptions() || attempts > 60) clearInterval(timer); }, 250);\n    }\n    document.addEventListener('change', function (event) { if (event.target.closest('.product__info-container')) setTimeout(update, 30); });\n    document.addEventListener('input', function (event) { if (event.target.closest('.product__info-container')) setTimeout(update, 30); });\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init();\n})();\n"],
  "mappings": "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",
  "names": ["option"]
}
