{
  "version": 3,
  "sources": ["/cdn/shop/t/10/assets/obr-pdp-content.js?x=1789539270956"],
  "sourcesContent": ["/* PDP Phase 3: organize legacy product-description HTML without changing its source data. */\n(() => {\n  const MODULE_ORDER = ['overview', 'features', 'applications', 'compatibility', 'how-to', 'specifications', 'box', 'notes', 'faq'];\n  const MODULES = {\n    overview: { title: 'Product Overview', id: 'overview' },\n    features: { title: 'Key Features', id: 'features' },\n    applications: { title: 'Applications', id: 'applications' },\n    compatibility: { title: 'Compatibility', id: 'compatibility' },\n    'how-to': { title: 'How to Use', id: 'how-to-use' },\n    specifications: { title: 'Technical Specifications', id: 'specifications' },\n    box: { title: \"What's in the Box\", id: 'whats-in-the-box' },\n    notes: { title: 'Important Notes', id: 'important-notes' },\n    faq: { title: 'FAQ', id: 'faq' },\n  };\n\n  const rules = [\n    ['features', /^(key features(?:\\s*(?:&|and)\\s*seo selling points)?|features|product features|core diagnostic capabilities|diagnostic capabilities|key functional highlights)$/i],\n    ['applications', /^(applications|typical applications|typical diagnostic applications|diagnostic applications|use cases|who should use(?: this tool)?\\??|suitable for)$/i],\n    ['compatibility', /^(compatibility|vehicle compatibility|compatible vehicle types|supported vehicles|vehicle coverage|broad vehicle compatibility)$/i],\n    ['how-to', /^(how to use|how it works|operating steps|operation instructions|operating instructions|instructions|setup steps|simple three-step operation)$/i],\n    ['specifications', /^(specifications|specs|technical specifications|product specifications|technical specs|technical data|technical overview)$/i],\n    ['box', /^(what(?:'|\u2019)s in the box|package includes|package contents|packing list|what(?:'|\u2019)s included|included in the box)$/i],\n    ['notes', /^(important notes?|please note|warnings?|notes?)$/i],\n    ['faq', /^(faqs?|frequently asked questions)$/i],\n    ['overview', /^(product overview|overview|summary|product positioning|why choose(?: the)? .+|built for real .+|designed for professional diagnostics)$/i],\n  ];\n  const seoOnlyHeading = /^(seo keywords?|search terms?|marketing keywords?)$/i;\n  const emojiPattern = /[\\p{Extended_Pictographic}\\uFE0F\\u200D]/gu;\n  const headingSelector = 'h1, h2, h3, h4, h5, h6';\n\n  const cleanText = (value = '') => value.replace(emojiPattern, '').replace(/\\s+/g, ' ').trim();\n  const normalized = (value = '') => cleanText(value).replace(/[\uFF1A:]+$/, '').trim();\n  const contentExists = (node) => Boolean(\n    node.textContent.trim()\n    || node.querySelector?.('img, video, iframe, table, model-viewer, [data-obr-how-to-video-marker]')\n  );\n  const headingType = (heading) => {\n    const text = normalized(heading.textContent);\n    const match = rules.find(([, pattern]) => pattern.test(text));\n    return match?.[0] || '';\n  };\n\n  const stripLegacyPresentation = (root) => {\n    root.querySelectorAll('div, section, article, h1, h2, h3, h4, h5, h6, p, ul, ol, li, strong, b, table, thead, tbody, tr, th, td').forEach((element) => {\n      element.removeAttribute('style');\n    });\n    root.querySelectorAll(`${headingSelector}, li`).forEach((element) => {\n      const walker = document.createTreeWalker(element, NodeFilter.SHOW_TEXT);\n      const firstText = walker.nextNode();\n      if (firstText) firstText.textContent = firstText.textContent.replace(emojiPattern, '').replace(/^\\s+/, '');\n    });\n  };\n\n  const unwrapLegacyContainers = (root) => {\n    let changed = true;\n    while (changed) {\n      changed = false;\n      const elementChildren = [...root.children];\n      if (elementChildren.length === 1 && /^(DIV|SECTION|ARTICLE)$/.test(elementChildren[0].tagName) && elementChildren[0].querySelector(headingSelector)) {\n        elementChildren[0].replaceWith(...elementChildren[0].childNodes);\n        changed = true;\n        continue;\n      }\n      [...root.children].forEach((element) => {\n        if (!/^(DIV|SECTION|ARTICLE)$/.test(element.tagName)) return;\n        const firstElement = element.firstElementChild;\n        if (firstElement?.matches(headingSelector) && headingType(firstElement)) {\n          element.replaceWith(...element.childNodes);\n          changed = true;\n        }\n      });\n    }\n  };\n\n  const makeSection = (key, title, id) => {\n    const section = document.createElement('section');\n    section.className = `obr-pdp-content__section obr-pdp-content__section--${key}`;\n    section.id = id;\n    section.dataset.pdpModule = key;\n    const heading = document.createElement('h2');\n    heading.className = 'obr-pdp-content__heading';\n    heading.textContent = title;\n    const body = document.createElement('div');\n    body.className = 'obr-pdp-content__body';\n    section.append(heading, body);\n    return { key, section, body };\n  };\n\n  const enhanceFeatures = (section) => {\n    if (!section) return;\n    const body = section.querySelector('.obr-pdp-content__body');\n    body.querySelectorAll(':scope > ul').forEach((list) => list.classList.add('obr-pdp-feature-list'));\n    body.querySelectorAll('.obr-pdp-feature-list > li').forEach((item) => item.classList.add('obr-pdp-feature'));\n\n    const children = [...body.children];\n    let current = null;\n    children.forEach((element) => {\n      if (/^H[3-6]$/.test(element.tagName)) {\n        current = document.createElement('article');\n        current.className = 'obr-pdp-feature';\n        body.insertBefore(current, element);\n        current.append(element);\n      } else if (current) {\n        current.append(element);\n      } else if (element.tagName === 'P' && element.querySelector(':scope > strong:first-child, :scope > b:first-child')) {\n        const item = document.createElement('article');\n        item.className = 'obr-pdp-feature';\n        body.insertBefore(item, element);\n        item.append(element);\n      }\n    });\n  };\n\n  const stepActionTitle = (value = '') => {\n    const text = cleanText(value);\n    const rules = [\n      [/^(?:put|place|enter).+\\b(?:relearn|learning) mode\\b/i, 'Enter Relearn Mode'],\n      [/^start.+\\b(?:tire|wheel)\\b/i, 'Start at the Correct Tire'],\n      [/^hold.+\\b(?:valve stem|tire sidewall)\\b/i, 'Position the Tool'],\n      [/^press.+\\b(?:learn button|button|key)\\b/i, 'Activate the Sensor'],\n      [/^(?:activate|trigger).+\\bsensor\\b/i, 'Activate the Sensor'],\n      [/^(?:follow|listen|wait).+\\b(?:horn|confirmation|chirp|response)\\b/i, 'Confirm the Result'],\n      [/^connect.+\\bclamps?\\b/i, 'Connect the Clamps'],\n      [/^connect/i, 'Connect the Tool'],\n      [/^insert.+\\brelay\\b/i, 'Insert the Relay'],\n      [/^install.+\\bspark plug\\b/i, 'Install the Spark Plug'],\n      [/^(?:select|choose).+\\btest\\b/i, 'Select the Test'],\n      [/^(?:input|enter).+\\b(?:cca|battery standard|battery type)\\b/i, 'Enter Battery Details'],\n      [/^(?:run|start).+\\btest\\b/i, 'Run the Test'],\n      [/^green led/i, 'Green LED Result'],\n      [/^red led/i, 'Red LED Result'],\n      [/^(?:read|review|observe|check).+\\b(?:result|display|indicator)\\b/i, 'Read the Result'],\n      [/^turn.+\\bignition\\b/i, 'Turn On the Ignition'],\n      [/^locate.+\\bobd2?\\b/i, 'Locate the OBD2 Port'],\n      [/^plug.+\\bobd2?\\b/i, 'Connect the Tool'],\n      [/^wait.+\\b(?:code|clear)/i, 'Wait for Code Clearing'],\n      [/^remove.+\\b(?:device|tool)/i, 'Remove the Tool'],\n      [/^adjust/i, 'Adjust the Test'],\n    ];\n    return rules.find(([pattern]) => pattern.test(text))?.[1] || '';\n  };\n\n  const makeStepItem = (sourceItem, index) => {\n    const text = cleanText(sourceItem.textContent);\n    if (!text) return null;\n    const copy = sourceItem.cloneNode(true);\n    copy.querySelectorAll('br').forEach((lineBreak) => lineBreak.replaceWith(' '));\n    const explicitTitle = copy.querySelector(':scope > strong:first-child, :scope > b:first-child');\n    let title = cleanText(explicitTitle?.textContent || '');\n    explicitTitle?.remove();\n    let description = cleanText(copy.textContent).replace(/^[:\uFF1A\\s\u2013\u2014-]+/, '');\n\n    if (!title) {\n      const colon = text.search(/[:\uFF1A]/);\n      if (colon > 2 && colon < 72) {\n        title = text.slice(0, colon).trim();\n        description = text.slice(colon + 1).trim();\n      } else {\n        title = stepActionTitle(text);\n        description = title ? description : '';\n      }\n    }\n    if (!title) {\n      if (text.length <= 90) {\n        title = text.replace(/[.!?]+$/, '');\n      } else {\n        title = `Step ${index + 1}`;\n        description = text;\n      }\n    }\n    if (title === text.replace(/[.!?]+$/, '')) description = '';\n\n    const item = document.createElement('li');\n    item.className = 'obr-pdp-step';\n    const copyWrap = document.createElement('div');\n    copyWrap.className = 'obr-pdp-step__copy';\n    const heading = document.createElement('h3');\n    heading.className = 'obr-pdp-step__title';\n    heading.textContent = title;\n    copyWrap.append(heading);\n    if (description) {\n      const paragraph = document.createElement('p');\n      paragraph.className = 'obr-pdp-step__text';\n      paragraph.textContent = description;\n      copyWrap.append(paragraph);\n    }\n    item.append(copyWrap);\n    sourceItem.querySelectorAll('img, picture').forEach((media) => {\n      const clone = media.cloneNode(true);\n      clone.querySelector?.('img')?.setAttribute('loading', 'lazy');\n      if (clone.tagName === 'IMG') clone.loading = 'lazy';\n      const mediaWrap = document.createElement('div');\n      mediaWrap.className = 'obr-pdp-step__media';\n      mediaWrap.append(clone);\n      item.append(mediaWrap);\n    });\n    return item;\n  };\n\n  const enhanceSteps = (section) => {\n    if (!section) return;\n    const body = section.querySelector('.obr-pdp-content__body');\n    const lists = [...body.querySelectorAll(':scope > ol, :scope > ul')];\n    lists.forEach((sourceList) => {\n      const list = document.createElement('ol');\n      list.className = 'obr-pdp-steps';\n      list.setAttribute('aria-label', 'Product operation steps');\n      [...sourceList.children].forEach((sourceItem, index) => {\n        const item = makeStepItem(sourceItem, index);\n        if (item) list.append(item);\n      });\n      if (list.children.length) sourceList.replaceWith(list);\n    });\n  };\n\n  const initHowToVideo = (section) => {\n    const wrapper = section?.querySelector('[data-obr-how-to-video]');\n    const media = wrapper?.querySelector('deferred-media');\n    const poster = media?.querySelector('.deferred-media__poster');\n    if (!wrapper || !media || !poster || wrapper.dataset.videoReady === 'true') return;\n    wrapper.dataset.videoReady = 'true';\n    poster.addEventListener('click', () => {\n      window.setTimeout(() => {\n        const player = media.querySelector('video, iframe');\n        const error = wrapper.querySelector('.obr-pdp-howto-video__error');\n        if (!player || !error) return;\n        let timer = window.setTimeout(() => {\n          wrapper.classList.add('is-error');\n          error.hidden = false;\n        }, 10000);\n        const readyEvent = player.tagName === 'VIDEO' ? 'loadeddata' : 'load';\n        const markReady = () => {\n          window.clearTimeout(timer);\n          wrapper.classList.remove('is-error');\n          error.hidden = true;\n        };\n        const markError = () => {\n          window.clearTimeout(timer);\n          wrapper.classList.add('is-error');\n          error.hidden = false;\n        };\n        if (player.tagName === 'VIDEO') {\n          player.muted = true;\n          player.setAttribute('playsinline', '');\n        }\n        player.addEventListener(readyEvent, markReady, { once: true });\n        player.addEventListener('error', markError, { once: true });\n      }, 0);\n    }, { once: true });\n  };\n\n  const enhanceHowTo = (host, section) => {\n    if (!section) return;\n    const marker = section.querySelector('[data-obr-how-to-video-marker]');\n    marker?.remove();\n    enhanceSteps(section);\n    const videoTemplate = host.querySelector('[data-obr-how-to-video-template]');\n    if (videoTemplate?.content.querySelector('[data-obr-how-to-video]')) {\n      section.querySelector('.obr-pdp-content__body').append(videoTemplate.content.cloneNode(true));\n      initHowToVideo(section);\n    }\n  };\n\n  const COMPATIBILITY_GROUPS = {\n    applications: 'Supported Applications',\n    coverage: 'Vehicle / System Coverage',\n    requirements: 'Requirements',\n    limitations: 'Important Compatibility Notes',\n  };\n\n  const compatibilityGroupType = (value = '') => {\n    const text = normalized(value);\n    if (/^(requirements?|vehicle requirements?|system requirements?|required setup|before you begin)$/i.test(text)) return 'requirements';\n    if (/^(limitations?|important(?: compatibility)? notes?|unsupported|not supported|restrictions?|please note)$/i.test(text)) return 'limitations';\n    if (/^(applications|supported applications|typical applications|diagnostic applications|use cases|tool function|who should use(?: this tool)?\\??|suitable for)$/i.test(text)) return 'applications';\n    if (/^(compatibility|vehicle compatibility|vehicle \\/ system coverage|vehicle coverage|protocol coverage|general obd2 coverage|supported vehicles|supported systems|compatible vehicle types)$/i.test(text)) return 'coverage';\n    return '';\n  };\n\n  const compatibilityMarkerType = (value = '') => {\n    const text = normalized(value);\n    const grouped = compatibilityGroupType(text);\n    if (grouped) return grouped;\n    if (/\\b(?:compatibility|compatible vehicle|vehicle coverage|protocol coverage|supported vehicles?|supported systems?)\\b/i.test(text)) return 'coverage';\n    if (/\\b(?:battery types?|voltage support|voltage capability|\\d+v(?:\\s*\\/\\s*\\d+v)+ capability|relay application|spark plug types?)\\b/i.test(text)) return 'coverage';\n    if (/\\b(?:vehicle requirements?|relearn requirements?|learning mode requirements?|required setup)\\b/i.test(text)) return 'requirements';\n    if (/\\b(?:limitations?|not supported|important compatibility notes?|restrictions?)\\b/i.test(text)) return 'limitations';\n    return '';\n  };\n\n  const makeCompatibilityGroup = (key) => {\n    const article = document.createElement('article');\n    article.className = `obr-pdp-compatibility__group obr-pdp-compatibility__group--${key}`;\n    article.dataset.obrCompatibilityGroup = key;\n    const heading = document.createElement('h3');\n    heading.className = 'obr-pdp-compatibility__group-title';\n    heading.textContent = COMPATIBILITY_GROUPS[key];\n    const content = document.createElement('div');\n    content.className = 'obr-pdp-compatibility__group-content rte';\n    article.append(heading, content);\n    return article;\n  };\n\n  const compatibilitySentences = (roots, type) => {\n    const contextPattern = /\\b(?:compatib|vehicle|system|sensor|tpms|relearn|learning mode|obd2|protocol|battery|relay|spark plug|voltage|program|activation|circuit|diagnos)/i;\n    const typePattern = type === 'requirements'\n      ? /(?:\\b(?:the )?(?:vehicle|system|sensor|tool)\\s+(?:must|requires?|needs? to|has to)\\b|\\b(?:must|requires?)\\b.{0,90}\\b(?:relearn|learning mode|adapter|additional tool|connection|setup)\\b|\\b(?:placed?|put|enter(?:ed)?)\\b.{0,90}\\b(?:relearn|learning) mode\\b|\\bcheck\\b.{0,80}\\b(?:compatibility|coverage|specifications?)\\b)/i\n      : /\\b(?:not recommended|does not|do not|cannot|can't|not intended|not compatible|only supports?|limited to|doesn['\u2019]t)\\b/i;\n    const seen = new Set();\n    const results = [];\n\n    roots.filter(Boolean).forEach((root) => {\n      root.querySelectorAll('p, li').forEach((node) => {\n        const sentences = cleanText(node.textContent).match(/[^.!?]+(?:[.!?]+|$)/g) || [];\n        sentences.map(cleanText).forEach((sentence) => {\n          const key = sentence.toLowerCase();\n          if (sentence.length < 18 || sentence.length > 300 || seen.has(key)) return;\n          if (!contextPattern.test(sentence) || !typePattern.test(sentence)) return;\n          seen.add(key);\n          results.push(sentence);\n        });\n      });\n    });\n    return results;\n  };\n\n  const addSentenceList = (group, sentences) => {\n    if (!sentences.length) return;\n    const content = group.querySelector('.obr-pdp-compatibility__group-content');\n    const existing = cleanText(content.textContent).toLowerCase();\n    const unique = sentences.filter((sentence) => !existing.includes(sentence.toLowerCase()));\n    if (!unique.length) return;\n    const list = document.createElement('ul');\n    unique.forEach((sentence) => {\n      const item = document.createElement('li');\n      item.textContent = sentence;\n      list.append(item);\n    });\n    content.append(list);\n  };\n\n  const enhanceCompatibility = (host, layout) => {\n    const applicationsSection = layout.querySelector('[data-pdp-module=\"applications\"]');\n    const compatibilitySection = layout.querySelector('[data-pdp-module=\"compatibility\"]');\n    const structuredTemplate = host.querySelector('[data-obr-compatibility-template]');\n    const structuredGroups = new Map();\n    const editorGroups = new Map();\n    const fallbackGroups = new Map();\n    const getFallbackGroup = (key) => {\n      if (!fallbackGroups.has(key)) fallbackGroups.set(key, makeCompatibilityGroup(key));\n      return fallbackGroups.get(key);\n    };\n    const appendNode = (key, node) => {\n      getFallbackGroup(key).querySelector('.obr-pdp-compatibility__group-content').append(node);\n    };\n\n    structuredTemplate?.content.querySelectorAll('[data-obr-compatibility-group]').forEach((group) => {\n      if (contentExists(group)) structuredGroups.set(group.dataset.obrCompatibilityGroup, group.cloneNode(true));\n    });\n    structuredTemplate?.content.querySelectorAll('[data-obr-compatibility-editor-group]').forEach((group) => {\n      if (!contentExists(group)) return;\n      const clone = group.cloneNode(true);\n      const key = clone.dataset.obrCompatibilityEditorGroup;\n      clone.dataset.obrCompatibilityGroup = key;\n      delete clone.dataset.obrCompatibilityEditorGroup;\n      editorGroups.set(key, clone);\n    });\n\n    const compatibilityBody = compatibilitySection?.querySelector('.obr-pdp-content__body');\n    const featureBody = layout.querySelector('[data-pdp-module=\"features\"] .obr-pdp-content__body');\n    if (compatibilityBody && featureBody) {\n      let moveToFeatures = false;\n      [...compatibilityBody.childNodes].forEach((node) => {\n        if (node.nodeType === Node.ELEMENT_NODE && /^H[3-6]$/.test(node.tagName)) {\n          const headingText = cleanText(node.textContent);\n          if (compatibilityGroupType(headingText) || compatibilityMarkerType(headingText)) moveToFeatures = false;\n          else if (/\\b(?:protection|ergonomics|design|interface|display|construction|durability|portable|workflow)\\b/i.test(headingText)) moveToFeatures = true;\n        }\n        if (moveToFeatures) featureBody.append(node);\n      });\n    }\n\n    const distributeBody = (body, defaultKey) => {\n      if (!body) return;\n      let currentKey = defaultKey;\n      [...body.childNodes].forEach((node) => {\n        if (node.nodeType === Node.TEXT_NODE && !node.textContent.trim()) return;\n        if (node.nodeType === Node.ELEMENT_NODE && /^H[3-6]$/.test(node.tagName)) {\n          const matchedKey = compatibilityGroupType(node.textContent);\n          if (matchedKey) {\n            currentKey = matchedKey;\n            node.remove();\n            return;\n          }\n        }\n        appendNode(currentKey, node);\n      });\n    };\n\n    distributeBody(applicationsSection?.querySelector('.obr-pdp-content__body'), 'applications');\n    distributeBody(compatibilityBody, 'coverage');\n\n    if (!compatibilitySection) {\n      const markerHeadings = [...layout.querySelectorAll('.obr-pdp-content__body > h3, .obr-pdp-content__body > h4, .obr-pdp-content__body > h5, .obr-pdp-content__body > h6')]\n        .filter((heading) => compatibilityMarkerType(heading.textContent));\n\n      markerHeadings.forEach((heading) => {\n        if (!layout.contains(heading) || heading.closest('[data-pdp-module=\"applications\"], [data-pdp-module=\"compatibility\"]')) return;\n        const key = compatibilityMarkerType(heading.textContent);\n        const level = Number(heading.tagName.slice(1));\n        const nodes = [];\n        let sibling = heading.nextSibling;\n        while (sibling) {\n          if (sibling.nodeType === Node.ELEMENT_NODE && /^H[1-6]$/.test(sibling.tagName) && Number(sibling.tagName.slice(1)) <= level) break;\n          const next = sibling.nextSibling;\n          if (sibling.nodeType !== Node.TEXT_NODE || sibling.textContent.trim()) nodes.push(sibling);\n          sibling = next;\n        }\n        const genericHeading = compatibilityGroupType(heading.textContent);\n        if (!genericHeading) {\n          const subheading = document.createElement('h4');\n          subheading.className = 'obr-pdp-compatibility__subheading';\n          subheading.textContent = cleanText(heading.textContent);\n          appendNode(key, subheading);\n        }\n        heading.remove();\n        nodes.forEach((node) => appendNode(key, node));\n      });\n    }\n\n    const addEvidenceList = (key, title, pattern) => {\n      if (structuredGroups.has(key)) return;\n      const matches = [...layout.querySelectorAll('.obr-pdp-content__section li')]\n        .filter((item) => pattern.test(cleanText(item.textContent)));\n      if (!matches.length) return;\n      const subheading = document.createElement('h4');\n      subheading.className = 'obr-pdp-compatibility__subheading';\n      subheading.textContent = title;\n      const list = document.createElement('ul');\n      matches.forEach((item) => {\n        const clone = document.createElement('li');\n        clone.innerHTML = item.innerHTML;\n        list.append(clone);\n      });\n      appendNode(key, subheading);\n      appendNode(key, list);\n    };\n\n    addEvidenceList('coverage', 'Supported Battery Types', /\\b(?:battery types?|regular flooded|agm flat|agm spiral|gel|efb)\\b/i);\n    addEvidenceList('applications', 'System Tests', /\\b(?:battery health test|cranking system test|charging system test)\\b/i);\n\n    const directLimitationPattern = /\\b(?:not recommended|does not|do not|cannot|can't|not intended|not compatible|only supports?|limited to|doesn['\u2019]t)\\b/i;\n    ['applications', 'coverage'].forEach((key) => {\n      const group = fallbackGroups.get(key);\n      group?.querySelectorAll('.obr-pdp-compatibility__group-content > p').forEach((paragraph) => {\n        if (directLimitationPattern.test(cleanText(paragraph.textContent))) appendNode('limitations', paragraph);\n      });\n    });\n\n    const selectGroup = (key) => [structuredGroups.get(key), fallbackGroups.get(key), editorGroups.get(key)]\n      .find((group) => group && contentExists(group.querySelector('.obr-pdp-compatibility__group-content')));\n    const hasBaseInformation = ['applications', 'coverage'].some((key) => Boolean(selectGroup(key)));\n\n    const sentenceRoots = [layout, fallbackGroups.get('applications'), fallbackGroups.get('coverage')];\n    if (hasBaseInformation && !structuredGroups.has('requirements')) {\n      const sentences = compatibilitySentences(sentenceRoots, 'requirements');\n      if (sentences.length) addSentenceList(getFallbackGroup('requirements'), sentences);\n    }\n    if (hasBaseInformation && !structuredGroups.has('limitations')) {\n      const sentences = compatibilitySentences(sentenceRoots, 'limitations');\n      if (sentences.length) addSentenceList(getFallbackGroup('limitations'), sentences);\n    }\n\n    const finalGroups = ['applications', 'coverage', 'requirements', 'limitations']\n      .map((key) => selectGroup(key))\n      .filter(Boolean);\n\n    const placement = applicationsSection || compatibilitySection || layout.querySelector('[data-pdp-module=\"how-to\"], [data-pdp-module=\"specifications\"], [data-pdp-module=\"box\"]');\n    if (!finalGroups.length) {\n      applicationsSection?.remove();\n      compatibilitySection?.remove();\n      return;\n    }\n\n    const module = makeSection('compatibility', 'Compatibility & Applications', 'compatibility');\n    module.body.classList.add('obr-pdp-compatibility');\n    finalGroups.forEach((group) => module.body.append(group));\n    const structuredLink = structuredTemplate?.content.querySelector('[data-obr-compatibility-link]');\n    if (structuredLink) module.body.append(structuredLink.cloneNode(true));\n\n    if (placement && layout.contains(placement)) placement.before(module.section);\n    else layout.append(module.section);\n    applicationsSection?.remove();\n    compatibilitySection?.remove();\n  };\n\n  const splitFieldValue = (value = '') => {\n    const text = cleanText(value);\n    const separator = text.search(/[:\uFF1A]/);\n    if (separator < 1) return null;\n    const label = text.slice(0, separator).trim();\n    const fieldValue = text.slice(separator + 1).trim();\n    if (!label || !fieldValue) return null;\n    return { label: label.replace(/[:\uFF1A]+$/, ''), value: fieldValue };\n  };\n\n  const nodeLines = (node) => {\n    if (!node) return [];\n    const copy = node.cloneNode(true);\n    copy.querySelectorAll('br').forEach((br) => br.replaceWith('\\n'));\n    return copy.textContent.split(/\\n+/).map(cleanText).filter(Boolean);\n  };\n\n  const listSpecificationRows = (body) => {\n    const source = body.querySelector(':scope > ul, :scope > ol');\n    if (!source) return null;\n    const pairs = [...source.children].map((item) => {\n      const labelNode = item.querySelector(':scope > strong:first-child, :scope > b:first-child');\n      if (!labelNode) return splitFieldValue(item.textContent);\n      const label = normalized(labelNode.textContent);\n      const copy = item.cloneNode(true);\n      copy.querySelector(':scope > strong:first-child, :scope > b:first-child')?.remove();\n      const value = cleanText(copy.textContent).replace(/^[:\uFF1A\\s]+/, '');\n      return label && value ? { label, value } : null;\n    }).filter(Boolean);\n    return pairs.length ? { pairs, sources: [source] } : null;\n  };\n\n  const tableSpecificationRows = (body) => {\n    const table = body.querySelector(':scope > table');\n    if (!table) return null;\n    const pairs = [...table.querySelectorAll('tr')].map((row) => {\n      const cells = [...row.querySelectorAll(':scope > th, :scope > td')];\n      if (cells.length < 2) return null;\n      const label = normalized(cells[0].textContent);\n      const value = cleanText(cells.slice(1).map((cell) => cell.textContent).join(' '));\n      if (!label || !value || /^(specification|field|parameter)$/i.test(label) && /^(value|details?)$/i.test(value)) return null;\n      return { label, value };\n    }).filter(Boolean);\n    return pairs.length ? { pairs, sources: [table] } : null;\n  };\n\n  const paragraphSpecificationRows = (body) => {\n    const sources = [...body.querySelectorAll(':scope > p')];\n    const parsedSources = [];\n    const pairs = [];\n    sources.forEach((paragraph) => {\n      const labelNode = paragraph.querySelector(':scope > strong:first-child, :scope > b:first-child');\n      if (labelNode) {\n        const label = normalized(labelNode.textContent);\n        const copy = paragraph.cloneNode(true);\n        copy.querySelector(':scope > strong:first-child, :scope > b:first-child')?.remove();\n        const value = cleanText(copy.textContent).replace(/^[:\uFF1A\\s]+/, '');\n        if (label && value) {\n          pairs.push({ label, value });\n          parsedSources.push(paragraph);\n          return;\n        }\n      }\n      const lines = nodeLines(paragraph);\n      const linePairs = lines.map(splitFieldValue).filter(Boolean);\n      if (linePairs.length) {\n        pairs.push(...linePairs);\n        parsedSources.push(paragraph);\n      }\n    });\n    return pairs.length ? { pairs, sources: parsedSources } : null;\n  };\n\n  const makeSpecifications = (pairs) => {\n    const list = document.createElement('dl');\n    list.className = 'obr-pdp-specs';\n    list.setAttribute('aria-label', 'Technical specifications');\n    pairs.forEach(({ label, value }) => {\n      const row = document.createElement('div');\n      row.className = 'obr-pdp-specs__row';\n      row.dataset.obrSpecRow = '';\n      const term = document.createElement('dt');\n      const description = document.createElement('dd');\n      term.textContent = label;\n      description.textContent = value;\n      row.append(term, description);\n      list.append(row);\n    });\n    return list;\n  };\n\n  const enhanceSpecifications = (host, section) => {\n    if (!section) return;\n    const body = section.querySelector('.obr-pdp-content__body');\n    const structured = host.querySelector('[data-obr-specs-template]');\n    if (structured?.content.querySelector('[data-obr-spec-row]')) {\n      body.replaceChildren(structured.content.cloneNode(true));\n      return;\n    }\n    if (body.querySelector('[data-obr-spec-row]')) return;\n    const parsed = tableSpecificationRows(body) || listSpecificationRows(body) || paragraphSpecificationRows(body);\n    if (!parsed?.pairs.length) return;\n    parsed.sources.forEach((source) => source.remove());\n    body.prepend(makeSpecifications(parsed.pairs));\n  };\n\n  const packageLines = (body) => {\n    const list = body.querySelector(':scope > ul, :scope > ol');\n    if (list) return { items: [...list.children].map((item) => cleanText(item.textContent)).filter(Boolean), sources: [list] };\n    const sources = [...body.querySelectorAll(':scope > p')];\n    const parsedSources = [];\n    const items = [];\n    sources.forEach((paragraph) => {\n      const lines = nodeLines(paragraph);\n      if (!lines.length) return;\n      items.push(...lines);\n      parsedSources.push(paragraph);\n    });\n    return items.length ? { items, sources: parsedSources } : null;\n  };\n\n  const makePackageList = (items) => {\n    const list = document.createElement('ul');\n    list.className = 'obr-pdp-package__list';\n    list.setAttribute('role', 'list');\n    items.forEach((value) => {\n      const item = document.createElement('li');\n      item.textContent = value;\n      list.append(item);\n    });\n    return list;\n  };\n\n  const enhancePackage = (host, section) => {\n    if (!section) return;\n    const body = section.querySelector('.obr-pdp-content__body');\n    const structured = host.querySelector('[data-obr-package-template]');\n    if (structured?.content.querySelector('.obr-pdp-package__list > li')) {\n      body.replaceChildren(structured.content.cloneNode(true));\n      return;\n    }\n    if (body.querySelector('.obr-pdp-package')) return;\n    const parsed = packageLines(body);\n    if (!parsed?.items.length) return;\n    const media = body.querySelector(':scope > img, :scope > picture');\n    parsed.sources.forEach((source) => source.remove());\n    const packageLayout = document.createElement('div');\n    packageLayout.className = `obr-pdp-package${media ? ' obr-pdp-package--has-media' : ''}`;\n    if (media) {\n      const mediaWrap = document.createElement('div');\n      mediaWrap.className = 'obr-pdp-package__media';\n      media.classList.add('obr-pdp-package__image');\n      media.loading = 'lazy';\n      mediaWrap.append(media);\n      packageLayout.append(mediaWrap);\n    }\n    packageLayout.append(makePackageList(parsed.items));\n    body.prepend(packageLayout);\n  };\n\n  const enhanceMedia = (layout) => {\n    layout.querySelectorAll('table').forEach((table) => {\n      if (table.parentElement?.classList.contains('obr-pdp-table-scroll')) return;\n      const wrapper = document.createElement('div');\n      wrapper.className = 'obr-pdp-table-scroll';\n      table.before(wrapper);\n      wrapper.append(table);\n    });\n  };\n\n  const directFeatureItems = (featureSection) => {\n    const body = featureSection?.querySelector('.obr-pdp-content__body');\n    if (!body) return [];\n    return [\n      ...body.querySelectorAll(':scope > .obr-pdp-feature, :scope > .obr-pdp-feature-list > .obr-pdp-feature'),\n    ];\n  };\n\n  const featureTitleNode = (item) => item.querySelector(\n    ':scope > h3, :scope > h4, :scope > h5, :scope > h6, :scope > strong:first-child, :scope > b:first-child, :scope > p:first-child > strong:first-child, :scope > p:first-child > b:first-child'\n  );\n\n  const conciseText = (value, limit = 210) => {\n    const clean = cleanText(value).replace(/^[\\s:;,.\\-\u2013\u2014]+/, '');\n    if (clean.length <= limit) return clean;\n    const firstSentence = clean.match(/^.*?[.!?](?:\\s|$)/)?.[0]?.trim();\n    if (firstSentence && firstSentence.length <= limit) return firstSentence;\n    const clipped = clean.slice(0, limit + 1);\n    const boundary = clipped.lastIndexOf(' ');\n    return `${clipped.slice(0, boundary > limit * 0.7 ? boundary : limit).trim()}\u2026`;\n  };\n\n  const fallbackFeatureData = (item) => {\n    const titleNode = featureTitleNode(item);\n    const title = conciseText(titleNode?.textContent || '', 72);\n    if (!title) return null;\n    const copy = item.cloneNode(true);\n    const copyTitle = featureTitleNode(copy);\n    copyTitle?.remove();\n    copy.querySelectorAll('.obr-pdp-feature').forEach((nested) => nested.classList.remove('obr-pdp-feature'));\n    const text = conciseText(copy.textContent, 210);\n    return text ? { title, text } : null;\n  };\n\n  const makeFallbackFeature = ({ title, text }, index) => {\n    const item = document.createElement('article');\n    item.className = 'obr-pdp-feature-story__item';\n    item.dataset.obrFeatureItem = '';\n    const copy = document.createElement('div');\n    copy.className = 'obr-pdp-feature-story__copy';\n    const heading = document.createElement('h3');\n    heading.className = 'obr-pdp-feature-story__title';\n    heading.textContent = title;\n    const paragraph = document.createElement('p');\n    paragraph.className = 'obr-pdp-feature-story__text';\n    paragraph.textContent = text;\n    copy.append(heading, paragraph);\n    item.append(copy);\n    if (index === 0) item.classList.add('obr-pdp-feature-story__item--lead');\n    return item;\n  };\n\n  const buildFeatureStory = (host, layout) => {\n    const storyTemplate = host.querySelector('[data-obr-feature-story-template]');\n    if (!storyTemplate) return;\n    const limit = Math.min(5, Math.max(3, Number(storyTemplate.dataset.featureLimit) || 4));\n    const fragment = storyTemplate.content.cloneNode(true);\n    const story = fragment.querySelector('[data-obr-feature-story]');\n    const items = story?.querySelector('.obr-pdp-feature-story__items');\n    if (!story || !items) return;\n\n    const configured = [...items.querySelectorAll(':scope > [data-obr-feature-item]')];\n    configured.slice(limit).forEach((item) => item.remove());\n\n    if (!configured.length) {\n      const featureSection = layout.querySelector('[data-pdp-module=\"features\"]');\n      const fallbackData = directFeatureItems(featureSection)\n        .map(fallbackFeatureData)\n        .filter(Boolean)\n        .slice(0, limit);\n      fallbackData.forEach((data, index) => items.append(makeFallbackFeature(data, index)));\n\n      const leadItem = items.querySelector(':scope > [data-obr-feature-item]');\n      const fallbackMedia = host.querySelector('[data-obr-feature-story-fallback-media]');\n      if (leadItem && fallbackMedia?.content.firstElementChild) {\n        leadItem.prepend(fallbackMedia.content.firstElementChild.cloneNode(true));\n        leadItem.classList.add('obr-pdp-feature-story__item--has-media', 'obr-pdp-feature-story__item--media-left');\n      }\n      story.classList.add('obr-pdp-feature-story--automatic');\n    }\n\n    if (!items.querySelector('[data-obr-feature-item]')) return;\n    const overview = layout.querySelector('[data-pdp-module=\"overview\"]');\n    const features = layout.querySelector('[data-pdp-module=\"features\"]');\n    if (overview) overview.after(story);\n    else if (features) features.before(story);\n    else layout.prepend(story);\n  };\n\n  const buildLayout = (host) => {\n    const source = host.querySelector('[data-obr-pdp-content-source]');\n    if (!source || !source.innerHTML.trim()) return;\n\n    const work = source.cloneNode(true);\n    work.removeAttribute('data-obr-pdp-content-source');\n    unwrapLegacyContainers(work);\n    stripLegacyPresentation(work);\n\n    const directHeadings = [...work.children].filter((element) => element.matches?.(headingSelector));\n    const hasExplicitFeatures = directHeadings.some((heading) => headingType(heading) === 'features');\n    const fallbackFeatureMode = !hasExplicitFeatures && directHeadings.filter((heading) => /^H[3-5]$/.test(heading.tagName)).length >= 3;\n    const title = normalized(host.dataset.productTitle).toLowerCase();\n    const modelWords = title.split(/\\s+/).filter((word) => /[a-z]*\\d+[a-z]*/i.test(word));\n    const modules = new Map();\n    const extras = [];\n    let current = '';\n\n    const ensureModule = (key) => {\n      if (!modules.has(key)) modules.set(key, makeSection(key, MODULES[key].title, MODULES[key].id));\n      return modules.get(key);\n    };\n    const ensureExtra = (heading) => {\n      const titleText = cleanText(heading.textContent) || 'Additional Information';\n      const id = `additional-${extras.length + 1}`;\n      const extra = makeSection('additional', titleText, id);\n      extras.push(extra);\n      return extra;\n    };\n    const isDuplicateTitle = (text) => {\n      const value = normalized(text).toLowerCase();\n      if (!value) return false;\n      if (value === title || title.includes(value) || value.includes(title)) return true;\n      return modelWords.some((model) => value.startsWith('obdresource') && value.includes(model));\n    };\n\n    [...work.childNodes].forEach((node) => {\n      if (node.nodeType === Node.TEXT_NODE && !node.textContent.trim()) return;\n      if (node.nodeType === Node.ELEMENT_NODE && node.tagName === 'HR') return;\n\n      if (node.nodeType === Node.ELEMENT_NODE && node.matches(headingSelector)) {\n        const text = cleanText(node.textContent);\n        node.textContent = text;\n        if (!text || isDuplicateTitle(text)) return;\n        if (seoOnlyHeading.test(normalized(text))) return;\n\n        const type = headingType(node);\n        if (type) {\n          current = type;\n          ensureModule(type);\n          return;\n        }\n\n        if (fallbackFeatureMode && /^H[3-5]$/.test(node.tagName)) current = 'features';\n        if (!current) current = 'overview';\n\n        if (node.tagName === 'H2' && current !== 'features' && current !== 'overview') {\n          const extra = ensureExtra(node);\n          current = extra.section.id;\n          modules.set(current, extra);\n          return;\n        }\n\n        const subheading = document.createElement('h3');\n        [...node.attributes].forEach((attribute) => {\n          if (attribute.name !== 'id' && attribute.name !== 'style') subheading.setAttribute(attribute.name, attribute.value);\n        });\n        subheading.textContent = text;\n        node = subheading;\n      }\n\n      if (!current) current = 'overview';\n      const target = modules.get(current) || ensureModule(current);\n      target.body.append(node);\n    });\n\n    const structuredSpecs = host.querySelector('[data-obr-specs-template]');\n    if (structuredSpecs?.content.querySelector('[data-obr-spec-row]')) {\n      ensureModule('specifications').body.replaceChildren(structuredSpecs.content.cloneNode(true));\n    }\n    const structuredPackage = host.querySelector('[data-obr-package-template]');\n    if (structuredPackage?.content.querySelector('.obr-pdp-package__list > li')) {\n      ensureModule('box').body.replaceChildren(structuredPackage.content.cloneNode(true));\n    }\n    const structuredHowTo = host.querySelector('[data-obr-how-to-template]');\n    const metafieldHowTo = structuredHowTo?.content.querySelector('[data-obr-how-to-source=\"metafield\"]');\n    const editorHowTo = structuredHowTo?.content.querySelector('[data-obr-how-to-source=\"editor\"]');\n    const existingHowTo = modules.get('how-to');\n    if (metafieldHowTo && contentExists(metafieldHowTo)) {\n      ensureModule('how-to').body.replaceChildren(...metafieldHowTo.cloneNode(true).childNodes);\n    } else if ((!existingHowTo || !contentExists(existingHowTo.body)) && editorHowTo && contentExists(editorHowTo)) {\n      ensureModule('how-to').body.replaceChildren(...editorHowTo.cloneNode(true).childNodes);\n    }\n    const howToVideoTemplate = host.querySelector('[data-obr-how-to-video-template]');\n    if (howToVideoTemplate?.content.querySelector('[data-obr-how-to-video]')) {\n      const marker = document.createElement('span');\n      marker.hidden = true;\n      marker.dataset.obrHowToVideoMarker = '';\n      ensureModule('how-to').body.append(marker);\n    }\n\n    const layout = document.createElement('div');\n    layout.className = 'obr-pdp-content__layout';\n    MODULE_ORDER.forEach((key) => {\n      const module = modules.get(key);\n      if (module && contentExists(module.body)) layout.append(module.section);\n    });\n    extras.forEach((extra) => {\n      if (layout.contains(extra.section) || !contentExists(extra.body)) return;\n      layout.append(extra.section);\n    });\n    [...modules.entries()].forEach(([key, module]) => {\n      if (MODULE_ORDER.includes(key) || extras.includes(module) || !contentExists(module.body)) return;\n      layout.append(module.section);\n    });\n\n    if (!layout.children.length) return;\n    enhanceCompatibility(host, layout);\n    enhanceFeatures(layout.querySelector('[data-pdp-module=\"features\"]'));\n    enhanceHowTo(host, layout.querySelector('[data-pdp-module=\"how-to\"]'));\n    enhanceSpecifications(host, layout.querySelector('[data-pdp-module=\"specifications\"]'));\n    enhancePackage(host, layout.querySelector('[data-pdp-module=\"box\"]'));\n    enhanceMedia(layout);\n    buildFeatureStory(host, layout);\n    source.replaceChildren(layout);\n    host.classList.add('is-ready');\n  };\n\n  const init = (scope = document) => {\n    scope.querySelectorAll?.('[data-obr-pdp-content]:not(.is-ready)').forEach((host) => {\n      try {\n        buildLayout(host);\n      } catch (error) {\n        host.classList.add('is-fallback');\n        console.warn('OBDResource PDP content kept its original layout because it could not be safely organized.', error);\n      }\n    });\n  };\n\n  const boot = () => init();\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot, { once: true });\n  else boot();\n  document.addEventListener('shopify:section:load', (event) => init(event.target));\n})();\n\n\n/* OBR PDP FAQ accordion */\n(()=>{const m=(e=\"\")=>e.replace(/\\s+/g,\" \").trim(),g=e=>{const n=document.createElement(\"details\");n.className=\"obr-pdp-faq__item\";const r=document.createElement(\"summary\");r.className=\"obr-pdp-faq__question\";const s=document.createElement(\"span\");s.className=\"obr-pdp-faq__question-text\",s.textContent=e;const a=document.createElement(\"span\");a.className=\"obr-pdp-faq__icon\",a.setAttribute(\"aria-hidden\",\"true\");const i=document.createElement(\"div\");return i.className=\"obr-pdp-faq__answer rte\",r.append(s,a),n.append(r,i),{item:n,answer:i}},f=e=>{if(!(e instanceof HTMLElement)||!/^H[3-6]$/.test(e.tagName))return\"\";const n=m(e.textContent);return n.endsWith(\"?\")?n:\"\"},h=e=>{if(!(e instanceof HTMLParagraphElement))return null;const n=[...e.children].find(s=>s.matches(\"strong, b\"));if(!n)return null;const r=m(n.textContent);return r.endsWith(\"?\")?{lead:n,question:r}:null},w=(e,n)=>{const r=e.cloneNode(!0);for([...r.children].find(a=>a.matches(\"strong, b\"))?.remove();r.firstChild;){const a=r.firstChild,i=a.nodeType===Node.TEXT_NODE&&!m(a.textContent),l=a.nodeType===Node.ELEMENT_NODE&&a.tagName===\"BR\";if(!i&&!l)break;a.remove()}return r},q=e=>m(e.textContent)||e.querySelector(\"img, video, iframe, svg, table\"),N=e=>{if(!e||e.classList.contains(\"is-faq-ready\"))return;const n=e.querySelector(\".obr-pdp-content__body\");if(!n||n.querySelector(\".obr-pdp-faq, details\"))return;const r=document.createElement(\"div\");r.className=\"obr-pdp-faq\";let s=0;const a=(t,c={activeAnswer:null,reachedTrailingContent:!1})=>(t.forEach(o=>{if(c.reachedTrailingContent)return;const p=f(o);if(p){const d=g(p);r.append(d.item),c.activeAnswer=d.answer,o.remove(),s+=1;return}const u=h(o);if(u){const d=g(u.question),b=w(o,u.lead);q(b)?(d.answer.append(b),c.activeAnswer=null):c.activeAnswer=d.answer,r.append(d.item),o.remove(),s+=1;return}if(o instanceof HTMLElement&&/^H[3-6]$/.test(o.tagName)){c.activeAnswer=null,c.reachedTrailingContent=!0;return}c.activeAnswer&&c.activeAnswer.append(o)}),c),i=document.createDocumentFragment(),l={activeAnswer:null,reachedTrailingContent:!1};[...n.childNodes].forEach(t=>{if(t instanceof HTMLDivElement&&[...t.children].some(u=>f(u)||h(u))){a([...t.childNodes]),q(t)?i.append(t):t.remove();return}const o=t instanceof HTMLElement&&(/^H[3-6]$/.test(t.tagName)||t.querySelector(\":scope > h3, :scope > h4, :scope > h5, :scope > h6\")),p=f(t)||h(t);if(s&&!p&&(o||!l.activeAnswer)){l.activeAnswer=null,l.reachedTrailingContent=!0,i.append(t);return}if(l.reachedTrailingContent){i.append(t);return}a([t],l),l.reachedTrailingContent&&t.isConnected&&i.append(t)}),s&&(n.append(r,i),e.classList.add(\"is-faq-ready\"))},v=(e=document)=>{e.querySelectorAll?.('[data-pdp-module=\"faq\"]:not(.is-faq-ready)').forEach(N)},E=()=>v();document.readyState===\"loading\"?document.addEventListener(\"DOMContentLoaded\",E,{once:!0}):E(),document.addEventListener(\"shopify:section:load\",e=>v(e.target))})();\n\n/* Shared professional PDP layout */\n(()=>{const p=r=>{if(r.classList.contains(\"obr-pdp-content--professional\"))return;const n=r.querySelector(\".obr-pdp-content__layout\");if(!n)return;const c=n.querySelector('[data-pdp-module=\"features\"]'),s=[...c?.querySelectorAll(\":scope > .obr-pdp-content__body > .obr-pdp-feature\")||[]].find(t=>{const e=t.querySelector(\"h3\")?.textContent.trim().toLowerCase()||\"\";return(e.startsWith(\"how to use\")||e.startsWith(\"operation steps\")||e.startsWith(\"setup steps\"))&&t.querySelector(\"ol, ul\")});if(s&&!n.querySelector('[data-pdp-module=\"how-to\"]')){const t=s.querySelector(\"h3\"),e=document.createElement(\"section\");e.className=\"obr-pdp-content__section obr-pdp-content__section--how-to obr-pdp-reference-operation\",e.id=\"how-to-use\",e.dataset.pdpModule=\"how-to\";const o=document.createElement(\"h2\");o.className=\"obr-pdp-content__heading\",o.textContent=t.textContent,t.remove(),s.className=\"obr-pdp-content__body\",e.append(o,s),c.after(e)}n.querySelectorAll(\".obr-pdp-feature-story__items\").forEach(t=>{const e=[...t.children].filter(a=>!a.classList.contains(\"obr-pdp-feature-story__item--has-media\")),o=e.length===3?3:2;t.style.setProperty(\"--obr-story-columns\",o),e.length>1&&e.length%o===1&&e.at(-1).classList.add(\"obr-pdp-feature-story__item--wide\")});const i=n.querySelector('[data-pdp-module=\"overview\"] .obr-pdp-content__body');n.querySelectorAll(\".obr-pdp-feature > p\").forEach(t=>{const e=t.firstElementChild;if(!e?.matches(\"strong, b\")||e.nextElementSibling?.tagName!==\"BR\")return;let o=e.previousSibling;for(;o;){if(o.textContent.trim())return;o=o.previousSibling}e.classList.add(\"obr-pdp-feature__label\")}),i?.querySelectorAll(\":scope > div\").forEach(t=>{const e=[...t.children];e.length>1&&e.every(o=>/^(DIV|ARTICLE)$/.test(o.tagName)&&o.querySelector(\"strong, b\")&&o.querySelector(\"p\"))&&t.classList.add(\"obr-pdp-overview-highlights\")}),i?.querySelectorAll(\":scope > p\").forEach(t=>{t.textContent.trim().toLowerCase().startsWith(\"check before purchasing:\")&&t.classList.add(\"obr-pdp-overview-notice\")}),n.querySelectorAll(\"table\").forEach(t=>{const e=[...t.querySelectorAll(\"thead th\")].map(o=>o.textContent.trim());!e.length||!t.tBodies.length||(t.classList.add(\"obr-pdp-reference-table\"),t.removeAttribute(\"height\"),t.querySelectorAll(\"tbody tr\").forEach(o=>{[...o.cells].forEach((a,d)=>{e[d]&&(a.dataset.label=e[d])})}))}),r.classList.add(\"obr-pdp-content--professional\")},l=(r=document)=>r.querySelectorAll(\"[data-obr-pdp-content].is-ready\").forEach(p);document.readyState===\"loading\"?document.addEventListener(\"DOMContentLoaded\",()=>l(),{once:!0}):l(),document.addEventListener(\"shopify:section:load\",r=>l(r.target))})();\n"],
  "mappings": "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",
  "names": []
}
