{"product_id":"kozyard-door-window-awnings-withwith-2-side-wings-aluminum-frame-with-impact-resistant-pvc-panels-shade-angle-set-during-installation-rain-snow-uv-protection-door-canopy-copy","title":"Kozyard Window Awning 48''W x 40''D with 2 lron Hollow-Patterned Side Aings, Aluminum Frame with Impact-Resistant PVC Panels, Shade Angle Set During Installation, Rain, Snow \u0026 UV Protection","description":"\u003cdiv style=\"font-size: 0;\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/1_086b46ea-9b45-4ccd-8207-4c1ff165093f.png?v=1769431458\" style=\"display: block; width: 100%;\"\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/2_79090ed0-d423-4af2-8074-831da3ac7a51.png?v=1769431453\" style=\"display: block; width: 100%;\"\u003e\u003cstyle\u003e\n.kz-slider {\n  position: relative;\n  width: 100%;\n  margin: 0;\n  overflow: visible;\n}\n\n.kz-viewport {\n  overflow: hidden;\n}\n\n.kz-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kz-slide {\n  min-width: 100%;\n}\n\n.kz-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* 箭头 *\/\n.kz-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 48px;\n  height: 48px;\n  background: transparent;\n  border: none;\n  cursor: pointer;\n  z-index: 10;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.kz-arrow.prev { left: -24px; }\n.kz-arrow.next { right: -24px; }\n\n.kz-arrow svg {\n  width: 32px;\n  height: 32px;\n}\n\n.kz-arrow path {\n  stroke: #000;\n  stroke-width: 3;\n  fill: none;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.kz-arrow:hover path {\n  stroke: #555;\n}\n\n\/* 圆点 *\/\n.kz-dots {\n  display: flex;\n  justify-content: center;\n  gap: 10px;\n  margin-top: 12px;\n}\n\n.kz-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #ccc;\n  cursor: pointer;\n}\n\n.kz-dot.active {\n  background: #f4b400;\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"kz-slider\"\u003e\n  \u003cdiv class=\"kz-viewport\"\u003e\n    \u003cdiv class=\"kz-track\"\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3.1_d27b1ff6-cceb-4a06-97c7-f23a2318bf0c.jpg?v=1772696257\" alt=\"Kozyard Low Noise Awning\"\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3.2_b250db39-9877-43a0-8597-c5ce991769ff.jpg?v=1772696257\" alt=\"Kozyard Low Noise Awning\"\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3.3_1ed7a72a-9a68-48d1-9371-f6ff03dc2786.jpg?v=1772696257\" alt=\"Kozyard Low Noise Awning\"\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/3.4.jpg?v=1772696257\" alt=\" alt=\" kozyard awning installation requirements\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 箭头 --\u003e\n  \u003cdiv class=\"kz-arrow prev\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"kz-arrow next\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 圆点 --\u003e\n  \u003cdiv class=\"kz-dots\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  const slider = document.currentScript.previousElementSibling;\n  const track = slider.querySelector('.kz-track');\n  const slides = slider.querySelectorAll('.kz-slide');\n  const dotsWrap = slider.querySelector('.kz-dots');\n  const prev = slider.querySelector('.kz-arrow.prev');\n  const next = slider.querySelector('.kz-arrow.next');\n  let index = 0;\n\n  slides.forEach((_, i) =\u003e {\n    const dot = document.createElement('div');\n    dot.className = 'kz-dot' + (i === 0 ? ' active' : '');\n    dot.onclick = () =\u003e go(i);\n    dotsWrap.appendChild(dot);\n  });\n\n  function go(i){\n    index = i;\n    track.style.transform = `translateX(-${index * 100}%)`;\n    dotsWrap.querySelectorAll('.kz-dot').forEach((d, j) =\u003e {\n      d.classList.toggle('active', j === index);\n    });\n  }\n\n  prev.onclick = () =\u003e go((index - 1 + slides.length) % slides.length);\n  next.onclick = () =\u003e go((index + 1) % slides.length);\n})();\n\u003c\/script\u003e\n\u003cstyle\u003e\n.kz-slider {\n  position: relative;\n  width: 100%;\n  margin: 0;\n  overflow: visible;\n}\n\n.kz-viewport {\n  overflow: hidden;\n}\n\n.kz-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kz-slide {\n  min-width: 100%;\n}\n\n.kz-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* 箭头 *\/\n.kz-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 48px;\n  height: 48px;\n  background: transparent;\n  border: none;\n  cursor: pointer;\n  z-index: 10;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.kz-arrow.prev { left: -24px; }\n.kz-arrow.next { right: -24px; }\n\n.kz-arrow svg {\n  width: 32px;\n  height: 32px;\n}\n\n.kz-arrow path {\n  stroke: #000;\n  stroke-width: 3;\n  fill: none;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.kz-arrow:hover path {\n  stroke: #555;\n}\n\n\/* 圆点 *\/\n.kz-dots {\n  display: flex;\n  justify-content: center;\n  gap: 10px;\n  margin-top: 12px;\n}\n\n.kz-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #ccc;\n  cursor: pointer;\n}\n\n.kz-dot.active {\n  background: #f4b400;\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"kz-slider\"\u003e\n  \u003cdiv class=\"kz-viewport\"\u003e\n    \u003cdiv class=\"kz-track\"\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/4.1_19970484-5bc3-47f0-89c9-c14025b337e4.jpg?v=1772696257\" alt=\"Kozyard Low Noise Awning\"\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/4.2_46119a9d-9163-4863-964c-85fbbc2ecba4.jpg?v=1772696256\" alt=\"Kozyard Low Noise Awning\"\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"kz-slide\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/4.3_1a37b9c3-6f69-4b9c-92c5-5a4d13238aee.jpg?v=1772696257\" alt=\"Kozyard Awning Installation Requirements\"\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 箭头 --\u003e\n  \u003cdiv class=\"kz-arrow prev\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"kz-arrow next\"\u003e\n    \u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n  \u003c\/div\u003e\n\n  \u003c!-- 圆点 --\u003e\n  \u003cdiv class=\"kz-dots\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  const slider = document.currentScript.previousElementSibling;\n  const track = slider.querySelector('.kz-track');\n  const slides = slider.querySelectorAll('.kz-slide');\n  const dotsWrap = slider.querySelector('.kz-dots');\n  const prev = slider.querySelector('.kz-arrow.prev');\n  const next = slider.querySelector('.kz-arrow.next');\n  let index = 0;\n\n  slides.forEach((_, i) =\u003e {\n    const dot = document.createElement('div');\n    dot.className = 'kz-dot' + (i === 0 ? ' active' : '');\n    dot.onclick = () =\u003e go(i);\n    dotsWrap.appendChild(dot);\n  });\n\n  function go(i){\n    index = i;\n    track.style.transform = `translateX(-${index * 100}%)`;\n    dotsWrap.querySelectorAll('.kz-dot').forEach((d, j) =\u003e {\n      d.classList.toggle('active', j === index);\n    });\n  }\n\n  prev.onclick = () =\u003e go((index - 1 + slides.length) % slides.length);\n  next.onclick = () =\u003e go((index + 1) % slides.length);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.kz-slider {\n  position: relative;\n  width: 100%;\n  margin: 0;\n  overflow: visible;\n}\n\n.kz-viewport {\n  overflow: hidden;\n}\n\n.kz-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kz-slide {\n  min-width: 100%;\n}\n\n.kz-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* 箭头 *\/\n.kz-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 48px;\n  height: 48px;\n  background: transparent;\n  border: none;\n  cursor: pointer;\n  z-index: 10;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.kz-arrow.prev { left: -24px; }\n.kz-arrow.next { right: -24px; }\n\n.kz-arrow svg {\n  width: 32px;\n  height: 32px;\n}\n\n.kz-arrow path {\n  stroke: #000;\n  stroke-width: 3;\n  fill: none;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.kz-arrow:hover path {\n  stroke: #555;\n}\n\n\/* 圆点 *\/\n.kz-dots {\n  display: flex;\n  justify-content: center;\n  gap: 10px;\n  margin-top: 12px;\n}\n\n.kz-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #ccc;\n  cursor: pointer;\n}\n\n.kz-dot.active {\n  background: #f4b400;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"font-size: 0;\"\u003e\n\u003cdiv class=\"kz-slider\"\u003e\n\u003cdiv class=\"kz-viewport\"\u003e\n\u003cdiv class=\"kz-track\"\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg low=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/5.1_d75f557a-4d7f-4079-8d26-1e98420367b3.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg low=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/5.2_71d3740e-7074-466d-bfc3-ba811652a7e6.jpg?v=1772696258\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/5.3_5a795158-dddd-4b8e-a209-d4a1995ea460.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 箭头 --\u003e\n\u003cdiv class=\"kz-arrow prev\"\u003e\u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-arrow next\"\u003e\u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c!-- 圆点 --\u003e\n\u003cdiv class=\"kz-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  const slider = document.currentScript.previousElementSibling;\n  const track = slider.querySelector('.kz-track');\n  const slides = slider.querySelectorAll('.kz-slide');\n  const dotsWrap = slider.querySelector('.kz-dots');\n  const prev = slider.querySelector('.kz-arrow.prev');\n  const next = slider.querySelector('.kz-arrow.next');\n  let index = 0;\n\n  slides.forEach((_, i) =\u003e {\n    const dot = document.createElement('div');\n    dot.className = 'kz-dot' + (i === 0 ? ' active' : '');\n    dot.onclick = () =\u003e go(i);\n    dotsWrap.appendChild(dot);\n  });\n\n  function go(i){\n    index = i;\n    track.style.transform = `translateX(-${index * 100}%)`;\n    dotsWrap.querySelectorAll('.kz-dot').forEach((d, j) =\u003e {\n      d.classList.toggle('active', j === index);\n    });\n  }\n\n  prev.onclick = () =\u003e go((index - 1 + slides.length) % slides.length);\n  next.onclick = () =\u003e go((index + 1) % slides.length);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.kz-slider {\n  position: relative;\n  width: 100%;\n  margin: 0;\n  overflow: visible;\n}\n\n.kz-viewport {\n  overflow: hidden;\n}\n\n.kz-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kz-slide {\n  min-width: 100%;\n}\n\n.kz-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* 箭头 *\/\n.kz-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 48px;\n  height: 48px;\n  background: transparent;\n  border: none;\n  cursor: pointer;\n  z-index: 10;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.kz-arrow.prev { left: -24px; }\n.kz-arrow.next { right: -24px; }\n\n.kz-arrow svg {\n  width: 32px;\n  height: 32px;\n}\n\n.kz-arrow path {\n  stroke: #000;\n  stroke-width: 3;\n  fill: none;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.kz-arrow:hover path {\n  stroke: #555;\n}\n\n\/* 圆点 *\/\n.kz-dots {\n  display: flex;\n  justify-content: center;\n  gap: 10px;\n  margin-top: 12px;\n}\n\n.kz-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #ccc;\n  cursor: pointer;\n}\n\n.kz-dot.active {\n  background: #f4b400;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"font-size: 0;\"\u003e\n\u003cdiv class=\"kz-slider\"\u003e\n\u003cdiv class=\"kz-viewport\"\u003e\n\u003cdiv class=\"kz-track\"\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg alt=\"Kozyard Low Noise Awning\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6.1_c972e451-abf0-4c19-8559-64f207c02d05.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg alt=\"Kozyard Low Noise Awning\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6.2_cb66f7d2-6088-4306-b9b1-378f0c410349.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg alt=\"Kozyard Awning Installation Requirements\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/6.3_3e5a89e9-e960-4a16-8fc6-455d86a1f4ae.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 箭头 --\u003e\n\u003cdiv class=\"kz-arrow prev\"\u003e\u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-arrow next\"\u003e\u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c!-- 圆点 --\u003e\n\u003cdiv class=\"kz-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  const slider = document.currentScript.previousElementSibling;\n  const track = slider.querySelector('.kz-track');\n  const slides = slider.querySelectorAll('.kz-slide');\n  const dotsWrap = slider.querySelector('.kz-dots');\n  const prev = slider.querySelector('.kz-arrow.prev');\n  const next = slider.querySelector('.kz-arrow.next');\n  let index = 0;\n\n  slides.forEach((_, i) =\u003e {\n    const dot = document.createElement('div');\n    dot.className = 'kz-dot' + (i === 0 ? ' active' : '');\n    dot.onclick = () =\u003e go(i);\n    dotsWrap.appendChild(dot);\n  });\n\n  function go(i){\n    index = i;\n    track.style.transform = `translateX(-${index * 100}%)`;\n    dotsWrap.querySelectorAll('.kz-dot').forEach((d, j) =\u003e {\n      d.classList.toggle('active', j === index);\n    });\n  }\n\n  prev.onclick = () =\u003e go((index - 1 + slides.length) % slides.length);\n  next.onclick = () =\u003e go((index + 1) % slides.length);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n.kz-slider {\n  position: relative;\n  width: 100%;\n  margin: 0;\n  overflow: visible;\n}\n\n.kz-viewport {\n  overflow: hidden;\n}\n\n.kz-track {\n  display: flex;\n  transition: transform 0.4s ease;\n}\n\n.kz-slide {\n  min-width: 100%;\n}\n\n.kz-slide img {\n  width: 100%;\n  height: auto;\n  display: block;\n}\n\n\/* 箭头 *\/\n.kz-arrow {\n  position: absolute;\n  top: 50%;\n  transform: translateY(-50%);\n  width: 48px;\n  height: 48px;\n  background: transparent;\n  border: none;\n  cursor: pointer;\n  z-index: 10;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\n.kz-arrow.prev { left: -24px; }\n.kz-arrow.next { right: -24px; }\n\n.kz-arrow svg {\n  width: 32px;\n  height: 32px;\n}\n\n.kz-arrow path {\n  stroke: #000;\n  stroke-width: 3;\n  fill: none;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n}\n\n.kz-arrow:hover path {\n  stroke: #555;\n}\n\n\/* 圆点 *\/\n.kz-dots {\n  display: flex;\n  justify-content: center;\n  gap: 10px;\n  margin-top: 12px;\n}\n\n.kz-dot {\n  width: 10px;\n  height: 10px;\n  border-radius: 50%;\n  background: #ccc;\n  cursor: pointer;\n}\n\n.kz-dot.active {\n  background: #f4b400;\n}\n\u003c\/style\u003e\n\u003cdiv style=\"font-size: 0;\"\u003e\n\u003cdiv class=\"kz-slider\"\u003e\n\u003cdiv class=\"kz-viewport\"\u003e\n\u003cdiv class=\"kz-track\"\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg alt=\"Kozyard Low Noise Awning\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/7.1_78cfd04a-76e1-4e0e-8292-6f2cf823265a.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-slide\"\u003e\u003cimg alt=\"Kozyard Awning Installation Requirements\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/7.2_e6d182dd-3e13-45d1-be32-c4c127f1b980.jpg?v=1772696257\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- 箭头 --\u003e\n\u003cdiv class=\"kz-arrow prev\"\u003e\u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003cdiv class=\"kz-arrow next\"\u003e\u003csvg viewbox=\"0 0 24 24\"\u003e\u003cpath d=\"M9 6l6 6-6 6\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\u003c\/div\u003e\n\u003c!-- 圆点 --\u003e\n\u003cdiv class=\"kz-dots\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  const slider = document.currentScript.previousElementSibling;\n  const track = slider.querySelector('.kz-track');\n  const slides = slider.querySelectorAll('.kz-slide');\n  const dotsWrap = slider.querySelector('.kz-dots');\n  const prev = slider.querySelector('.kz-arrow.prev');\n  const next = slider.querySelector('.kz-arrow.next');\n  let index = 0;\n\n  slides.forEach((_, i) =\u003e {\n    const dot = document.createElement('div');\n    dot.className = 'kz-dot' + (i === 0 ? ' active' : '');\n    dot.onclick = () =\u003e go(i);\n    dotsWrap.appendChild(dot);\n  });\n\n  function go(i){\n    index = i;\n    track.style.transform = `translateX(-${index * 100}%)`;\n    dotsWrap.querySelectorAll('.kz-dot').forEach((d, j) =\u003e {\n      d.classList.toggle('active', j === index);\n    });\n  }\n\n  prev.onclick = () =\u003e go((index - 1 + slides.length) % slides.length);\n  next.onclick = () =\u003e go((index + 1) % slides.length);\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003cstyle\u003e\n\u003c\/style\u003e","brand":"Kozyard LLC.","offers":[{"title":"Default Title","offer_id":52043608162599,"sku":"KZAWN48SD","price":230.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/0840\/2471\/files\/KZAWN48SD-1_2_efe76e68-42e9-4f11-867a-03ab0b19a466.jpg?v=1775713190","url":"https:\/\/www.kozyard.com\/products\/kozyard-door-window-awnings-withwith-2-side-wings-aluminum-frame-with-impact-resistant-pvc-panels-shade-angle-set-during-installation-rain-snow-uv-protection-door-canopy-copy","provider":"Kozyard LLC.","version":"1.0","type":"link"}