{"title":"Drolet Outdoor Fireplaces","description":"","products":[{"product_id":"bora-stainless-steel","title":"BORA - STAINLESS STEEL","description":"\u003cstyle\u003e\n  \/* Accordion styling *\/\n  .accordion { border: 1px solid #ddd; border-radius: 5px; margin-bottom: 20px; background: #f9f9f9; }\n  .accordion-header { padding: 12px; font-weight: bold; cursor: pointer; background: #eee; }\n  .accordion-header:hover { background: #ddd; }\n  .accordion-content { display: none; padding: 15px; border-top: 1px solid #ddd; background: #fff; }\n  .accordion-content.open { display: block; }\n\n  \/* Unified link styling *\/\n  .see-link { color: #f37021; text-decoration: none; font-weight: bold; cursor: pointer; }\n  .see-link:hover { text-decoration: underline; }\n\n  \/* ---------------------------\n     Quick specs (stacked layout)\n     --------------------------- *\/\n  #quick-specs { border: 1px solid #ddd; border-radius: 8px; padding: 16px; background: #fff; margin: 20px 0; font-size: 14px; color: #222; }\n\n  .qs-row { margin: 12px 0; padding: 0; }\n  .qs-label { display: block; font-weight: 700; margin: 0 0 6px 0; font-size: 13px; color: #333; line-height: 1.2; }\n  .qs-value { display: block; margin: 0; line-height: 1.25; color: #555; font-size: 14px; }\n\n  .qs-link { display: inline-block; margin-top: 4px; color: #f37021; font-size: 13px; font-weight: 600; text-decoration: none; }\n  .qs-link:hover { text-decoration: underline; }\n\n  \/* Flags *\/\n  .flags-inline { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; vertical-align: middle; }\n  .flag-pair { display: inline-flex; align-items: center; gap: 6px; }\n  .flag-image { width: 18px; height: auto; display: inline-block; vertical-align: middle; margin: 0; padding: 0; line-height: 1; max-height: 20px; }\n\n  \/* ensure no stray margins inside quick-specs rows *\/\n  #quick-specs .qs-row *, #quick-specs .qs-row *::before, #quick-specs .qs-row *::after { margin: 0; padding: 0; line-height: inherit; }\n\n  .qs-fullspecs { margin-top: 8px; margin-bottom: 0; }\n\n  @media (max-width: 480px) {\n    #quick-specs { padding: 12px; font-size: 13px; }\n    .qs-row { margin: 10px 0; }\n    .qs-label { margin-bottom: 4px; }\n  }\n\u003c\/style\u003e\n\n\u003c!-- QUICK SPECIFICATIONS BOX (stacked, equal spacing) --\u003e\n\u003cdiv id=\"quick-specs\"\u003e\n  \u003cdiv class=\"qs-row\"\u003e\n    \u003cspan class=\"qs-label\"\u003eMade in\u003c\/span\u003e\n    \u003cspan class=\"qs-value\"\u003e\n      \u003cspan class=\"flags-inline\"\u003e\n        \u003cspan class=\"flag-pair\"\u003e\n          \u003cimg class=\"flag-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/6871\/6339\/files\/download.png?v=1758991613\" alt=\"Canada Flag\"\u003e\n          \u003cspan\u003eCanada\u003c\/span\u003e\n        \u003c\/span\u003e\n      \u003c\/span\u003e\n    \u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"qs-row\"\u003e\n    \u003cspan class=\"qs-label\"\u003eMaximum Log Length\u003c\/span\u003e\n    \u003cspan class=\"qs-value\"\u003e24\" (tipi fire)\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"qs-row qs-fullspecs\"\u003e\n    \u003cspan id=\"seeFullSpecs\" class=\"see-link\"\u003eFull Specifications\u003c\/span\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- PRODUCT DESCRIPTION (SENTENCE TEASER) --\u003e\n\u003cdiv\u003e\n  \u003cp id=\"desc-teaser\"\u003e\u003c\/p\u003e\n\n  \u003c!-- keep the full description in #desc-more so teaser JS can pick first sentence --\u003e\n  \u003cdiv id=\"desc-more\" style=\"display:none;\"\u003e\n    \u003cp\u003eModern and elegant, the Bora outdoor fireplace invites itself into your backyard or on your terrace to create a pleasant and chic atmosphere. Designed and manufactured in Quebec, it has a two-sided opening located at the optimum viewing height of the flames. There’s nothing like the Bora to enhance your outdoor living space and create a unique environment that will impress your guests!\u003c\/p\u003e\n\n    \u003cul\u003e\n      \u003cli\u003e100% made of stainless steel\u003c\/li\u003e\n      \u003cli\u003eHigh temperature black powder paint (1400° F)\u003c\/li\u003e\n      \u003cli\u003eSimple assembly (hardware and key included)\u003c\/li\u003e\n      \u003cli\u003e24\" logs (tipi fire)\u003c\/li\u003e\n      \u003cli\u003eDesign that promotes draft \u003cem\u003echimney effect\u003c\/em\u003e and limits annoying smoke\u003c\/li\u003e\n      \u003cli\u003ePatio heater that optimizes even heat all over the body\u003c\/li\u003e\n    \u003c\/ul\u003e\n\n    \u003cp\u003e\u003cem\u003eAny installation must be done according to the data and drawings detailed in the owner’s manual.\u003c\/em\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cspan id=\"seeMoreDesc\" class=\"see-link\" style=\"margin-bottom:20px; display:inline-block;\"\u003eFull Description\u003c\/span\u003e\n\n\u003c!-- SPECIFICATIONS COLLAPSIBLE --\u003e\n\u003cdiv id=\"specs-accordion\" class=\"accordion\"\u003e\n  \u003cdiv class=\"accordion-header\"\u003eSpecifications\u003c\/div\u003e\n  \u003cdiv class=\"accordion-content\"\u003e\n    \u003c!-- Appliance Performance Subheader --\u003e\n    \u003ch3 style=\"font-size: 16px; font-weight: bold; margin: 20px 0 10px; border-bottom: 2px solid #ddd; padding-bottom: 5px;\"\u003eAppliance Performance\u003c\/h3\u003e\n    \u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 30px;\"\u003e\n      \u003ctbody\u003e\n       \u003ctr style=\"background-color: #ffffff;\"\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eFuel type\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003eDry cordwood (16\" recommended)\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003c\/td\u003e\n       \u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n\n    \u003c!-- General Features Subheader --\u003e\n    \u003ch3 style=\"font-size: 16px; font-weight: bold; margin: 20px 0 10px; border-bottom: 2px solid #ddd; padding-bottom: 5px;\"\u003eGeneral Features\u003c\/h3\u003e\n\n    \u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 14px; margin-bottom: 30px;\"\u003e\n      \u003ctbody\u003e\n         \u003ctr style=\"background-color: #ffffff;\"\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eOverall dimension (Height)\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e60 1\/2\"\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eWarranty\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003eLimited 6 months only against manufacturing defects\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr style=\"background-color: #f7f7f7;\"\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eOverall dimension (Width)\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e20 1\/4\"\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eMaximum log length\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e24\" (tipi fire)\u003c\/td\u003e\n        \u003c\/tr\u003e\n        \u003ctr style=\"background-color: #ffffff;\"\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eOverall dimension (Depth)\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e20 1\/4\"\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e\u003cstrong\u003eShipping weight\u003c\/strong\u003e\u003c\/td\u003e\n          \u003ctd style=\"padding: 8px;\"\u003e110 lb (50 kg)\u003c\/td\u003e\n        \u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n\n    \u003c!-- Clearances Subheader --\u003e\n\u003ch3 style=\"font-size: 16px; font-weight: bold; margin: 20px 0 10px; border-bottom: 2px solid #ddd; padding-bottom: 5px;\"\u003e\n  Clearances\n\u003c\/h3\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 14px; border-radius: 6px; overflow: hidden;\"\u003e\n\u003c\/table\u003e\n\n    \u003c!-- See Less link inside accordion --\u003e\n    \u003cdiv style=\"text-align:center; margin-top: 15px;\"\u003e\n      \u003cspan id=\"seeLessSpecs\" class=\"see-link\" style=\"display:none;\"\u003eSee Less\u003c\/span\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- MANUALS COLLAPSIBLE --\u003e\n\u003cdiv id=\"manuals-accordion\" class=\"accordion\"\u003e\n  \u003cdiv class=\"accordion-header\"\u003eManuals \u0026amp; Instructions\u003c\/div\u003e\n  \u003cdiv class=\"accordion-content\"\u003e\n    \u003cul\u003e\n      \u003cp style=\"font-size: 14px; margin: 0 0 15px;\"\u003eConsult the available manuals and leaflets for more information on performance, installation and use requirements, etc.\u003c\/p\u003e\n      \u003c!-- PDF Links Styled as Buttons --\u003e\n      \u003cdiv style=\"display: flex; flex-wrap: wrap; gap: 10px;\"\u003e\n        \u003c!-- Installation \u0026 User Manual --\u003e\n        \u003ca style=\"flex: 1; min-width: 250px; text-decoration: none; background: #f7f7f7; padding: 12px 15px; border-radius: 6px; display: flex; align-items: center; font-size: 14px; color: #000; border: 1px solid #e0e0e0;\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/6871\/6339\/files\/46249_2022-04-21.pdf?v=1759986508\" target=\"_blank\"\u003e\n          📄 Installation \u0026amp; User Manual \u003cspan style=\"margin-left: auto;\"\u003e🔗\u003c\/span\u003e\n        \u003c\/a\u003e\n        \u003c!-- Appliance Dimensions --\u003e\n        \u003ca style=\"flex: 1; min-width: 250px; text-decoration: none; background: #f7f7f7; padding: 12px 15px; border-radius: 6px; display: flex; align-items: center; font-size: 14px; color: #000; border: 1px solid #e0e0e0;\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/6871\/6339\/files\/DE00401_Bora.pdf?v=1759986508\" target=\"_blank\"\u003e\n          📄 Appliance Dimensions \u003cspan style=\"margin-left: auto;\"\u003e🔗\u003c\/span\u003e\n        \u003c\/a\u003e\n        \u003c!-- How To Touch-Up The Paint? --\u003e\n        \u003ca style=\"flex: 1; min-width: 250px; text-decoration: none; background: #f7f7f7; padding: 12px 15px; border-radius: 6px; display: flex; align-items: center; font-size: 14px; color: #000; border: 1px solid #e0e0e0;\" href=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0665\/6871\/6339\/files\/procedure-peinture-foyers-exterieurs.pdf?v=1759986508\" target=\"_blank\"\u003e\n          📄 How To Touch-Up The Paint? \u003cspan style=\"margin-left: auto;\"\u003e🔗\u003c\/span\u003e\n        \u003c\/a\u003e\n      \u003c\/div\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  document.addEventListener('DOMContentLoaded', function () {\n    \/\/ TEASER: compute first sentence from the full description content (#desc-more)\n    const descTeaserP = document.getElementById('desc-teaser');\n    const descMoreDiv = document.getElementById('desc-more');\n    const descToggle = document.getElementById('seeMoreDesc');\n\n    const fullText = descMoreDiv ? descMoreDiv.innerText.trim() : '';\n    let firstPeriod = fullText.indexOf('.');\n    if (firstPeriod === -1) firstPeriod = fullText.length;\n    if (descTeaserP) descTeaserP.textContent = fullText.substring(0, firstPeriod + (firstPeriod \u003c fullText.length ? 1 : 0)).trim();\n\n    \/\/ Initially ensure full description hidden and teaser visible\n    if (descMoreDiv) descMoreDiv.style.display = 'none';\n    if (descTeaserP) descTeaserP.style.display = 'block';\n    if (descToggle) descToggle.textContent = 'Full Description';\n\n    if (descToggle) {\n      descToggle.addEventListener('click', function () {\n        const teaser = descTeaserP;\n        const more = descMoreDiv;\n        if (!more) return;\n        if (more.style.display === 'none') {\n          if (teaser) teaser.style.display = 'none';\n          more.style.display = 'block';\n          this.textContent = 'See Less';\n          this.setAttribute('aria-expanded', 'true');\n          this.scrollIntoView({ behavior: 'smooth', block: 'center' });\n        } else {\n          more.style.display = 'none';\n          if (teaser) teaser.style.display = 'block';\n          this.textContent = 'Full Description';\n          this.setAttribute('aria-expanded', 'false');\n        }\n      });\n    }\n\n    \/* --- Accordion logic (single-open + accessibility) --- *\/\n    const accordions = document.querySelectorAll('.accordion');\n    const quickSpecs = document.getElementById('quick-specs');\n    const specsAccordion = document.getElementById('specs-accordion');\n    const specsContent = specsAccordion ? specsAccordion.querySelector('.accordion-content') : null;\n    const seeLessSpecs = document.getElementById('seeLessSpecs');\n    const seeFullSpecs = document.getElementById('seeFullSpecs');\n\n    function closeAllAccordions(exceptAccordion) {\n      accordions.forEach(acc =\u003e {\n        const c = acc.querySelector('.accordion-content');\n        if (c \u0026\u0026 acc !== exceptAccordion) c.classList.remove('open');\n        const hdr = acc.querySelector('.accordion-header');\n        if (hdr) hdr.setAttribute('aria-expanded', 'false');\n      });\n    }\n\n    function refreshUIState() {\n      if (specsContent \u0026\u0026 specsContent.classList.contains('open')) {\n        if (quickSpecs) quickSpecs.style.display = 'none';\n        if (seeLessSpecs) seeLessSpecs.style.display = 'inline-block';\n      } else {\n        if (quickSpecs) quickSpecs.style.display = 'block';\n        if (seeLessSpecs) seeLessSpecs.style.display = 'none';\n      }\n    }\n\n    \/\/ set up header props and toggles\n    document.querySelectorAll('.accordion').forEach(acc =\u003e {\n      const header = acc.querySelector('.accordion-header');\n      const content = acc.querySelector('.accordion-content');\n      if (!header || !content) return;\n      header.setAttribute('role', 'button');\n      header.setAttribute('tabindex', '0');\n      header.setAttribute('aria-expanded', 'false');\n\n      header.addEventListener('click', function () {\n        if (content.classList.contains('open')) {\n          content.classList.remove('open');\n          header.setAttribute('aria-expanded', 'false');\n        } else {\n          closeAllAccordions(acc);\n          content.classList.add('open');\n          header.setAttribute('aria-expanded', 'true');\n        }\n        refreshUIState();\n      });\n\n      header.addEventListener('keydown', function (e) {\n        if (e.key === 'Enter' || e.key === ' ') {\n          e.preventDefault();\n          header.click();\n        }\n      });\n    });\n\n    \/\/ Full Specs link behaviour\n    if (seeFullSpecs \u0026\u0026 specsContent) {\n      seeFullSpecs.addEventListener('click', function () {\n        if (!specsContent.classList.contains('open')) {\n          closeAllAccordions(specsAccordion);\n          specsContent.classList.add('open');\n          const hdr = specsAccordion.querySelector('.accordion-header');\n          if (hdr) hdr.setAttribute('aria-expanded', 'true');\n        } else {\n          specsContent.classList.remove('open');\n          const hdr = specsAccordion.querySelector('.accordion-header');\n          if (hdr) hdr.setAttribute('aria-expanded', 'false');\n        }\n        refreshUIState();\n        if (specsContent.classList.contains('open')) specsAccordion.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      });\n    }\n\n    if (seeLessSpecs) {\n      seeLessSpecs.addEventListener('click', function () {\n        if (specsContent \u0026\u0026 specsContent.classList.contains('open')) {\n          specsContent.classList.remove('open');\n          refreshUIState();\n          if (document.getElementById('quick-specs')) document.getElementById('quick-specs').scrollIntoView({ behavior: 'smooth', block: 'center' });\n        }\n      });\n    }\n\n    \/\/ Initial UI state\n    refreshUIState();\n  });\n\u003c\/script\u003e\n","brand":"Drolet","offers":[{"title":"Default Title","offer_id":43671851958323,"sku":"DE00401","price":1199.0,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0665\/6871\/6339\/files\/DE00401_Bora_MFP_d809a44b-3d86-43a5-85d5-2d06f845fb43.jpg?v=1759922549"}],"url":"https:\/\/thenorthflame.com\/collections\/drolet-outdoor-fireplaces.oembed","provider":"The North Flame","version":"1.0","type":"link"}