{"title":"2 in. Width x 40 in. Height","description":"","products":[{"product_id":"wide-frame-aluminum-exterior-louver-vent-for-walls-crawlspace-weather-resistant-with-screen-mesh","title":"2\" Non-Drainable Outdoor Louver Gable Vent (Wide Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    z-index: 999999;\n    inset: 0;\n    background: rgba(0, 0, 0, 0.85);\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n  }\n\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .custom-image-popup-content {\n    position: relative;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n  }\n\n  .custom-image-popup-content img {\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    width: auto;\n    height: auto;\n    display: block;\n    background: #fff;\n  }\n\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    cursor: pointer;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"custom-features-box\"\u003e\n\n  \u003cp\u003e\n    Our 2\" Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Wide Flange Frame. It has blades that prevent water penetration and maximize free area.\n  \u003c\/p\u003e\n\n  \u003cdetails class=\"custom-features-details\"\u003e\n    \u003csummary\u003eFeatures\u003c\/summary\u003e\n\n    \u003cdiv class=\"custom-features-content\"\u003e\n      \u003cul\u003e\n        \u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eWide flange for additional surface coverage.\u003c\/strong\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eHeavy-duty, extruded aluminum wide flange frame.\u003c\/strong\u003e\n\u003c\/li\u003e\n        \u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eFixed, non-drainable blades on 2\" spacing.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-jblade-popup-link\"\u003e\n      J-blade design\n    \u003c\/button\u003e\n    minimizes water ingress while maximizing free area.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-jblade-modal\" class=\"hp-jblade-modal\"\u003e\n  \u003cdiv class=\"hp-jblade-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-jblade-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-jblade-close\" aria-label=\"Close\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/m.media-amazon.com\/images\/I\/81IR3mqqB0L._AC_SL1500_.jpg\" alt=\"J-Blade Design\" class=\"hp-jblade-image\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-jblade-popup-link {\n  border: 0;\n  padding: 0;\n  margin: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-jblade-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-jblade-modal.hp-open {\n  display: block;\n}\n\n.hp-jblade-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-jblade-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n\n  background: #fff;\n  border-radius: 8px;\n  padding: 20px;\n\n  width: calc(100% - 40px);\n  max-width: 900px;\n  max-height: 90vh;\n\n  overflow: auto;\n  z-index: 2;\n}\n\n.hp-jblade-close {\n  position: absolute;\n  top: 10px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  line-height: 1;\n  cursor: pointer;\n  color: #333;\n}\n\n.hp-jblade-image {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n@media (max-width: 768px) {\n  .hp-jblade-popup {\n    width: calc(100% - 20px);\n    padding: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  const link = document.querySelector('.hp-jblade-popup-link');\n  const modal = document.getElementById('hp-jblade-modal');\n  const close = document.querySelector('.hp-jblade-close');\n  const overlay = document.querySelector('.hp-jblade-overlay');\n\n  if (!link || !modal) return;\n\n  function openModal() {\n    modal.classList.add('hp-open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n    document.body.style.overflow = '';\n  }\n\n  link.addEventListener('click', openModal);\n\n  if (close) {\n    close.addEventListener('click', closeModal);\n  }\n\n  if (overlay) {\n    overlay.addEventListener('click', closeModal);\n  }\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n      closeModal();\n    }\n  });\n})();\n\u003c\/script\u003e\n        \u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eNominal 43% free area, based on 48\" x 48\" louver.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-mullion-popup-link\"\u003e\n      Mullions used\n    \u003c\/button\u003e\n    for sizes over 36\" in length.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-mullion-modal\" class=\"hp-mullion-modal\" aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"hp-mullion-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-mullion-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-mullion-close\" aria-label=\"Close\"\u003e×\u003c\/button\u003e\n\n    \u003cdiv class=\"hp-mullion-images\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_2.png?v=1780204003\" alt=\"Mullion example 1\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_4.png?v=1780204013\" alt=\"Mullion example 2\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-mullion-popup-link {\n  border: 0;\n  padding: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-mullion-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-mullion-modal.hp-open {\n  display: block;\n}\n\n.hp-mullion-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-mullion-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  z-index: 2;\n\n  background: #fff;\n  max-width: 1100px;\n  width: calc(100% - 40px);\n  max-height: 90vh;\n  overflow: auto;\n\n  padding: 24px;\n  border-radius: 8px;\n}\n\n.hp-mullion-close {\n  position: absolute;\n  top: 8px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  cursor: pointer;\n}\n\n.hp-mullion-images {\n  display: flex;\n  gap: 20px;\n}\n\n.hp-mullion-images img {\n  width: 50%;\n  height: auto;\n  display: block;\n}\n\n@media (max-width: 768px) {\n  .hp-mullion-images {\n    flex-direction: column;\n  }\n\n  .hp-mullion-images img {\n    width: 100%;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  var link = document.querySelector('.hp-mullion-popup-link');\n  var modal = document.getElementById('hp-mullion-modal');\n  var close = document.querySelector('.hp-mullion-close');\n  var overlay = document.querySelector('.hp-mullion-overlay');\n\n  if (!link || !modal) return;\n\n  link.addEventListener('click', function() {\n    modal.classList.add('hp-open');\n  });\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n  }\n\n  if (close) close.addEventListener('click', closeModal);\n  if (overlay) overlay.addEventListener('click', closeModal);\n})();\n\u003c\/script\u003e\n        \u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e\n      Bird screen included\n    \u003c\/button\u003e\n    standard. Insect screen can be specified.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-birdscreen-modal\" class=\"hp-birdscreen-modal\"\u003e\n  \u003cdiv class=\"hp-birdscreen-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-birdscreen-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-birdscreen-close\" aria-label=\"Close\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird Screen Example\" class=\"hp-birdscreen-image\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-birdscreen-popup-link {\n  border: 0;\n  padding: 0;\n  margin: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-birdscreen-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-birdscreen-modal.hp-open {\n  display: block;\n}\n\n.hp-birdscreen-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-birdscreen-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n\n  background: #fff;\n  border-radius: 8px;\n  padding: 20px;\n\n  width: calc(100% - 40px);\n  max-width: 900px;\n  max-height: 90vh;\n\n  overflow: auto;\n  z-index: 2;\n}\n\n.hp-birdscreen-close {\n  position: absolute;\n  top: 10px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  line-height: 1;\n  cursor: pointer;\n  color: #333;\n}\n\n.hp-birdscreen-image {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n@media (max-width: 768px) {\n  .hp-birdscreen-popup {\n    width: calc(100% - 20px);\n    padding: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  const link = document.querySelector('.hp-birdscreen-popup-link');\n  const modal = document.getElementById('hp-birdscreen-modal');\n  const close = document.querySelector('.hp-birdscreen-close');\n  const overlay = document.querySelector('.hp-birdscreen-overlay');\n\n  if (!link || !modal) return;\n\n  function openModal() {\n    modal.classList.add('hp-open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n    document.body.style.overflow = '';\n  }\n\n  link.addEventListener('click', openModal);\n\n  if (close) {\n    close.addEventListener('click', closeModal);\n  }\n\n  if (overlay) {\n    overlay.addEventListener('click', closeModal);\n  }\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n      closeModal();\n    }\n  });\n})();\n\u003c\/script\u003e\n        \u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eAvailable with powder coat paint for high-performance exterior finishes.\u003c\/strong\u003e\n\u003c\/li\u003e\n      \u003c\/ul\u003e\n    \u003c\/div\u003e\n  \u003c\/details\u003e\n\n  \u003cbutton type=\"button\" class=\"custom-spec-popup-link\" data-open-spec-popup\u003e\n    View Spec Sheet\n  \u003c\/button\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"custom-image-popup-overlay\" data-spec-popup\u003e\n  \u003cdiv class=\"custom-image-popup-content\"\u003e\n    \u003cbutton type=\"button\" class=\"custom-image-popup-close\" data-close-spec-popup aria-label=\"Close spec sheet popup\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-WF_Specs.png?v=1779117428\" alt=\"Wide frame aluminum exterior louver spec sheet\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var popup = document.querySelector('[data-spec-popup]');\n\n  if (popup \u0026\u0026 popup.parentNode !== document.body) {\n    document.body.appendChild(popup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var openButton = event.target.closest('[data-open-spec-popup]');\n    var closeButton = event.target.closest('[data-close-spec-popup]');\n    var activePopup = document.querySelector('[data-spec-popup]');\n\n    if (openButton \u0026\u0026 activePopup) {\n      event.preventDefault();\n      event.stopPropagation();\n      activePopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (closeButton \u0026\u0026 activePopup) {\n      event.preventDefault();\n      activePopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (activePopup \u0026\u0026 event.target === activePopup) {\n      activePopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activePopup = document.querySelector('[data-spec-popup]');\n\n    if (event.key === 'Escape' \u0026\u0026 activePopup) {\n      activePopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":50055794426093,"sku":"HPL2-WF","price":52.85,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAWALUMINUM_-HPL2-WF.png?v=1785204426"},{"product_id":"no-frame-aluminum-exterior-louver-vent-for-walls-crawlspace-weather-resistant-with-screen-mesh","title":"2\" Non-Drainable Outdoor Louver Gable Vent (Channel Frame) - Customizable","description":"\u003cstyle\u003e\n\n  .custom-features-box {\n\n    margin: 0;\n\n    max-width: 1200px;\n\n    width: 100%;\n\n    box-sizing: border-box;\n\n    font-family: Arial, sans-serif;\n\n    color: #111;\n\n    overflow-x: hidden;\n\n  }\n\n\n\n  .custom-features-box p {\n\n    margin: 0 0 28px;\n\n    font-size: 15px;\n\n    line-height: 1.6;\n\n    color: #111;\n\n  }\n\n\n\n  .custom-features-details {\n\n    margin-top: 8px;\n\n    width: 100%;\n\n    box-sizing: border-box;\n\n  }\n\n\n\n  .custom-features-details summary {\n\n    list-style: none;\n\n    cursor: pointer;\n\n    margin: 0 0 18px;\n\n    padding: 0 4px 10px 0;\n\n    border-bottom: 2px solid #5296dd;\n\n    color: #5296dd;\n\n    font-size: 15px;\n\n    line-height: 1.2;\n\n    font-weight: 700;\n\n    text-transform: uppercase;\n\n    display: flex;\n\n    align-items: center;\n\n    justify-content: space-between;\n\n    width: 100%;\n\n    max-width: 100%;\n\n    box-sizing: border-box;\n\n    overflow: hidden;\n\n  }\n\n\n\n  .custom-features-details summary::-webkit-details-marker {\n\n    display: none;\n\n  }\n\n\n\n  .custom-features-details summary::after {\n\n    content: \"\";\n\n    width: 10px;\n\n    height: 10px;\n\n    border-right: 2px solid #5296dd;\n\n    border-bottom: 2px solid #5296dd;\n\n    transform: rotate(45deg);\n\n    transition: transform 0.25s ease;\n\n    margin-left: 12px;\n\n    margin-right: 2px;\n\n    flex-shrink: 0;\n\n  }\n\n\n\n  .custom-features-details[open] summary::after {\n\n    transform: rotate(225deg);\n\n  }\n\n\n\n  .custom-features-box ul {\n\n    list-style: none;\n\n    padding: 0;\n\n    margin: 0;\n\n    display: grid;\n\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n\n    column-gap: 35px;\n\n    row-gap: 16px;\n\n    font-size: 15px;\n\n    line-height: 1.6;\n\n  }\n\n\n\n  .custom-features-box li {\n\n    display: flex;\n\n    align-items: flex-start;\n\n    gap: 12px;\n\n    margin: 0;\n\n  }\n\n\n\n  .feature-bullet {\n\n    width: 14px;\n\n    height: 14px;\n\n    min-width: 14px;\n\n    margin-top: 5px;\n\n    background: #5296dd;\n\n    display: inline-block;\n\n  }\n\n\n\n  .custom-features-box strong {\n\n    font-weight: 400;\n\n  }\n\n\n\n  .custom-spec-popup-link {\n\n    display: inline-block;\n\n    margin-top: 24px;\n\n    color: #5296dd;\n\n    cursor: pointer;\n\n    font-size: 15px;\n\n    font-weight: 700;\n\n    text-decoration: underline;\n\n    background: none;\n\n    border: none;\n\n    padding: 0;\n\n  }\n\n\n\n  .custom-spec-popup-link:hover {\n\n    color: #002b5c;\n\n  }\n\n\n\n  .custom-image-popup-overlay {\n\n    display: none;\n\n    position: fixed;\n\n    z-index: 999999;\n\n    inset: 0;\n\n    background: rgba(0, 0, 0, 0.85);\n\n    align-items: center;\n\n    justify-content: center;\n\n    padding: 20px;\n\n    box-sizing: border-box;\n\n  }\n\n\n\n  .custom-image-popup-overlay.is-active {\n\n    display: flex !important;\n\n  }\n\n\n\n  .custom-image-popup-content {\n\n    position: relative;\n\n    max-width: calc(100vw - 40px);\n\n    max-height: 90vh;\n\n  }\n\n\n\n  .custom-image-popup-content img {\n\n    max-width: calc(100vw - 40px);\n\n    max-height: 90vh;\n\n    width: auto;\n\n    height: auto;\n\n    display: block;\n\n    background: #fff;\n\n  }\n\n\n\n  .custom-image-popup-close {\n\n    position: absolute;\n\n    top: -12px;\n\n    right: -12px;\n\n    width: 36px;\n\n    height: 36px;\n\n    border: none;\n\n    border-radius: 50%;\n\n    background: #fff;\n\n    color: #000;\n\n    font-size: 24px;\n\n    cursor: pointer;\n\n    font-weight: 700;\n\n    line-height: 36px;\n\n    text-align: center;\n\n    z-index: 2;\n\n  }\n\n\n\n  @media screen and (max-width: 990px) {\n\n    .custom-features-box ul {\n\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n\n    }\n\n  }\n\n\n\n  @media screen and (max-width: 749px) {\n\n    .custom-features-box {\n\n      max-width: 100%;\n\n      width: 100%;\n\n      overflow-x: hidden;\n\n    }\n\n\n\n    .custom-features-details summary {\n\n      width: 100%;\n\n      max-width: 100%;\n\n      padding-right: 8px;\n\n    }\n\n\n\n    .custom-features-box ul {\n\n      grid-template-columns: 1fr;\n\n    }\n\n\n\n    .custom-image-popup-overlay {\n\n      padding: 16px;\n\n    }\n\n\n\n    .custom-image-popup-content,\n\n    .custom-image-popup-content img {\n\n      max-width: calc(100vw - 32px);\n\n    }\n\n  }\n\n\u003c\/style\u003e\n\n\n\n\u003cdiv class=\"custom-features-box\"\u003e\n\n\n\n  \u003cp\u003e\n\n    Our 2\" Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Channel Frame. It has blades that prevent water penetration and maximize free area.\n\n  \u003c\/p\u003e\n\n\n\n  \u003cdetails class=\"custom-features-details\"\u003e\n\n    \u003csummary\u003eFeatures\u003c\/summary\u003e\n\n\n\n    \u003cdiv class=\"custom-features-content\"\u003e\n\n      \u003cul\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eHeavy-duty, extruded aluminum channel frame.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eFixed, non-drainable blades on 2\" spacing.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-jblade-popup-link\"\u003e\n      J-blade design\n    \u003c\/button\u003e\n    minimizes water ingress while maximizing free area.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-jblade-modal\" class=\"hp-jblade-modal\"\u003e\n  \u003cdiv class=\"hp-jblade-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-jblade-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-jblade-close\" aria-label=\"Close\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/m.media-amazon.com\/images\/I\/81IR3mqqB0L._AC_SL1500_.jpg\" alt=\"J-Blade Design\" class=\"hp-jblade-image\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-jblade-popup-link {\n  border: 0;\n  padding: 0;\n  margin: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-jblade-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-jblade-modal.hp-open {\n  display: block;\n}\n\n.hp-jblade-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-jblade-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n\n  background: #fff;\n  border-radius: 8px;\n  padding: 20px;\n\n  width: calc(100% - 40px);\n  max-width: 900px;\n  max-height: 90vh;\n\n  overflow: auto;\n  z-index: 2;\n}\n\n.hp-jblade-close {\n  position: absolute;\n  top: 10px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  line-height: 1;\n  cursor: pointer;\n  color: #333;\n}\n\n.hp-jblade-image {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n@media (max-width: 768px) {\n  .hp-jblade-popup {\n    width: calc(100% - 20px);\n    padding: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  const link = document.querySelector('.hp-jblade-popup-link');\n  const modal = document.getElementById('hp-jblade-modal');\n  const close = document.querySelector('.hp-jblade-close');\n  const overlay = document.querySelector('.hp-jblade-overlay');\n\n  if (!link || !modal) return;\n\n  function openModal() {\n    modal.classList.add('hp-open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n    document.body.style.overflow = '';\n  }\n\n  link.addEventListener('click', openModal);\n\n  if (close) {\n    close.addEventListener('click', closeModal);\n  }\n\n  if (overlay) {\n    overlay.addEventListener('click', closeModal);\n  }\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n      closeModal();\n    }\n  });\n})();\n\u003c\/script\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eNominal 43% free area, based on 48\" x 48\" louver.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-mullion-popup-link\"\u003e\n      Mullions used\n    \u003c\/button\u003e\n    for sizes over 36\" in length.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-mullion-modal\" class=\"hp-mullion-modal\" aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"hp-mullion-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-mullion-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-mullion-close\" aria-label=\"Close\"\u003e×\u003c\/button\u003e\n\n    \u003cdiv class=\"hp-mullion-images\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_2.png?v=1780204003\" alt=\"Mullion example 1\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_4.png?v=1780204013\" alt=\"Mullion example 2\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-mullion-popup-link {\n  border: 0;\n  padding: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-mullion-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-mullion-modal.hp-open {\n  display: block;\n}\n\n.hp-mullion-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-mullion-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  z-index: 2;\n\n  background: #fff;\n  max-width: 1100px;\n  width: calc(100% - 40px);\n  max-height: 90vh;\n  overflow: auto;\n\n  padding: 24px;\n  border-radius: 8px;\n}\n\n.hp-mullion-close {\n  position: absolute;\n  top: 8px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  cursor: pointer;\n}\n\n.hp-mullion-images {\n  display: flex;\n  gap: 20px;\n}\n\n.hp-mullion-images img {\n  width: 50%;\n  height: auto;\n  display: block;\n}\n\n@media (max-width: 768px) {\n  .hp-mullion-images {\n    flex-direction: column;\n  }\n\n  .hp-mullion-images img {\n    width: 100%;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  var link = document.querySelector('.hp-mullion-popup-link');\n  var modal = document.getElementById('hp-mullion-modal');\n  var close = document.querySelector('.hp-mullion-close');\n  var overlay = document.querySelector('.hp-mullion-overlay');\n\n  if (!link || !modal) return;\n\n  link.addEventListener('click', function() {\n    modal.classList.add('hp-open');\n  });\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n  }\n\n  if (close) close.addEventListener('click', closeModal);\n  if (overlay) overlay.addEventListener('click', closeModal);\n})();\n\u003c\/script\u003e\n\n\n\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e\n      Bird screen included\n    \u003c\/button\u003e\n    standard. Insect screen can be specified.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-birdscreen-modal\" class=\"hp-birdscreen-modal\"\u003e\n  \u003cdiv class=\"hp-birdscreen-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-birdscreen-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-birdscreen-close\" aria-label=\"Close\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird Screen Example\" class=\"hp-birdscreen-image\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-birdscreen-popup-link {\n  border: 0;\n  padding: 0;\n  margin: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-birdscreen-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-birdscreen-modal.hp-open {\n  display: block;\n}\n\n.hp-birdscreen-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-birdscreen-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n\n  background: #fff;\n  border-radius: 8px;\n  padding: 20px;\n\n  width: calc(100% - 40px);\n  max-width: 900px;\n  max-height: 90vh;\n\n  overflow: auto;\n  z-index: 2;\n}\n\n.hp-birdscreen-close {\n  position: absolute;\n  top: 10px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  line-height: 1;\n  cursor: pointer;\n  color: #333;\n}\n\n.hp-birdscreen-image {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n@media (max-width: 768px) {\n  .hp-birdscreen-popup {\n    width: calc(100% - 20px);\n    padding: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  const link = document.querySelector('.hp-birdscreen-popup-link');\n  const modal = document.getElementById('hp-birdscreen-modal');\n  const close = document.querySelector('.hp-birdscreen-close');\n  const overlay = document.querySelector('.hp-birdscreen-overlay');\n\n  if (!link || !modal) return;\n\n  function openModal() {\n    modal.classList.add('hp-open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n    document.body.style.overflow = '';\n  }\n\n  link.addEventListener('click', openModal);\n\n  if (close) {\n    close.addEventListener('click', closeModal);\n  }\n\n  if (overlay) {\n    overlay.addEventListener('click', closeModal);\n  }\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n      closeModal();\n    }\n  });\n})();\n\u003c\/script\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eAvailable with powder coat paint for high-performance exterior finishes.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n      \u003c\/ul\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/details\u003e\n\n\n\n  \u003cbutton type=\"button\" class=\"custom-spec-popup-link\" data-open-spec-popup\u003e\n\n    View Spec Sheet\n\n  \u003c\/button\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n\u003cdiv class=\"custom-image-popup-overlay\" data-spec-popup\u003e\n\n  \u003cdiv class=\"custom-image-popup-content\"\u003e\n\n    \u003cbutton type=\"button\" class=\"custom-image-popup-close\" data-close-spec-popup aria-label=\"Close spec sheet popup\"\u003e\n\n      ×\n\n    \u003c\/button\u003e\n\n\n\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-CF_Specs.png?v=1779116236\" alt=\"channel frame aluminum exterior louver spec sheet\"\u003e\n\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\n\n\u003cscript\u003e\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n\n\n  if (details) {\n\n    function setInitialFeaturesState() {\n\n      if (window.innerWidth \u003e 749) {\n\n        details.setAttribute('open', '');\n\n      } else {\n\n        details.removeAttribute('open');\n\n      }\n\n    }\n\n\n\n    setInitialFeaturesState();\n\n\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n\n\n    window.addEventListener('resize', function () {\n\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n\n\n      if (isMobileNow !== lastMobileState) {\n\n        lastMobileState = isMobileNow;\n\n        setInitialFeaturesState();\n\n      }\n\n    });\n\n  }\n\n\n\n  var popup = document.querySelector('[data-spec-popup]');\n\n\n\n  if (popup \u0026\u0026 popup.parentNode !== document.body) {\n\n    document.body.appendChild(popup);\n\n  }\n\n\n\n  document.addEventListener('click', function (event) {\n\n    var openButton = event.target.closest('[data-open-spec-popup]');\n\n    var closeButton = event.target.closest('[data-close-spec-popup]');\n\n    var activePopup = document.querySelector('[data-spec-popup]');\n\n\n\n    if (openButton \u0026\u0026 activePopup) {\n\n      event.preventDefault();\n\n      event.stopPropagation();\n\n      activePopup.classList.add('is-active');\n\n      document.body.style.overflow = 'hidden';\n\n      return;\n\n    }\n\n\n\n    if (closeButton \u0026\u0026 activePopup) {\n\n      event.preventDefault();\n\n      activePopup.classList.remove('is-active');\n\n      document.body.style.overflow = '';\n\n      return;\n\n    }\n\n\n\n    if (activePopup \u0026\u0026 event.target === activePopup) {\n\n      activePopup.classList.remove('is-active');\n\n      document.body.style.overflow = '';\n\n    }\n\n  });\n\n\n\n  document.addEventListener('keydown', function (event) {\n\n    var activePopup = document.querySelector('[data-spec-popup]');\n\n\n\n    if (event.key === 'Escape' \u0026\u0026 activePopup) {\n\n      activePopup.classList.remove('is-active');\n\n      document.body.style.overflow = '';\n\n    }\n\n  });\n\n});\n\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":50161492328685,"sku":"HPL2-CF","price":43.06,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAWALUMINUM_-HPL2-CF.png?v=1785204373"},{"product_id":"45-thinline-louver-outer-dimensions-list-size-1-11-16w-x-1-11-16h-aluminum-exterior-louver-vent-for-walls-crawlspace-with-bird-screen-mesh","title":"45° Thinline Outdoor Louver Gable Vent (Flange Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::marker {\n    display: none;\n    content: \"\";\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .hp-birdscreen-popup-link {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    background: none;\n    color: #5296dd;\n    font: inherit;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover,\n  .hp-birdscreen-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .hp-birdscreen-modal,\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n    background: rgba(0, 0, 0, 0.85);\n  }\n\n  .hp-birdscreen-modal.hp-open,\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .hp-birdscreen-popup,\n  .custom-image-popup-content {\n    position: relative;\n    width: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-popup {\n    width: calc(100% - 40px);\n    max-width: 900px;\n    padding: 20px;\n    border-radius: 8px;\n    overflow: auto;\n    box-sizing: border-box;\n  }\n\n  .hp-birdscreen-image {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .custom-image-popup-content img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-close,\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .hp-birdscreen-modal,\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .hp-birdscreen-popup {\n      width: calc(100% - 20px);\n      padding: 15px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"custom-features-box\"\u003e\n\u003cp\u003eOur 45° Thinline Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Flange Frame.\u003c\/p\u003e\n\u003cdetails class=\"custom-features-details\" open=\"\"\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"custom-features-content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFixed 45° horizontal blades on 3\/4\" spacing\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFully extruded aluminum blades and flange frame\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eSupports are hidden behind blades for a clean appearance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e Bird screen \u003c\/button\u003e is standard or optional insect screen. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in 1\" standard dimension increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in durable powder coat finish standard\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e73% free area for optimal performance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eMounting available for PTAC\/ VTAC application\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cbutton type=\"button\" class=\"custom-spec-popup-link\"\u003e View Spec Sheet \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- BIRD SCREEN POPUP --\u003e\n\u003cdiv class=\"hp-birdscreen-modal\"\u003e\n\u003cdiv class=\"hp-birdscreen-popup\"\u003e\n\u003cbutton type=\"button\" class=\"hp-birdscreen-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird screen example\" class=\"hp-birdscreen-image\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPEC SHEET POPUP --\u003e\n\u003cdiv class=\"custom-image-popup-overlay\"\u003e\n\u003cdiv class=\"custom-image-popup-content\"\u003e\n\u003cbutton type=\"button\" class=\"custom-image-popup-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/450-thinline-louver-aluminum-exterior-gable-vent-for-walls-crawlspace-with-bird-screen-or-insect-screenspecial-weather-louver-782335.png?v=1773421064\" alt=\"Flange frame 45-degree aluminum exterior louver spec sheet\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var birdPopup = document.querySelector('.hp-birdscreen-modal');\n  var specPopup = document.querySelector('.custom-image-popup-overlay');\n\n  if (birdPopup \u0026\u0026 birdPopup.parentNode !== document.body) {\n    document.body.appendChild(birdPopup);\n  }\n\n  if (specPopup \u0026\u0026 specPopup.parentNode !== document.body) {\n    document.body.appendChild(specPopup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var birdOpenButton = event.target.closest('.hp-birdscreen-popup-link');\n    var birdCloseButton = event.target.closest('.hp-birdscreen-close');\n\n    var specOpenButton = event.target.closest('.custom-spec-popup-link');\n    var specCloseButton = event.target.closest('.custom-image-popup-close');\n\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (birdOpenButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeBirdPopup.classList.add('hp-open');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (birdCloseButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeBirdPopup \u0026\u0026\n      event.target === activeBirdPopup\n    ) {\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (specOpenButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeSpecPopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (specCloseButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeSpecPopup \u0026\u0026\n      event.target === activeSpecPopup\n    ) {\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (event.key === 'Escape') {\n      if (activeBirdPopup) {\n        activeBirdPopup.classList.remove('hp-open');\n      }\n\n      if (activeSpecPopup) {\n        activeSpecPopup.classList.remove('is-active');\n      }\n\n      document.body.style.overflow = '';\n    }\n  });\n\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":46767710011629,"sku":"HPLTL-45-FF","price":33.28,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAW_ALUMINUM___45_HPLTL-FF.png?v=1785203614"},{"product_id":"45-thinline-louver-outer-dimensions-list-size-3-11-16w-x-3-11-16h-aluminum-exterior-louver-vent-for-walls-crawlspace-with-bird-screen-mesh","title":"45° Thinline Outdoor Louver Gable Vent (Wide Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::marker {\n    display: none;\n    content: \"\";\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .hp-birdscreen-popup-link {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    background: none;\n    color: #5296dd;\n    font: inherit;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover,\n  .hp-birdscreen-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .hp-birdscreen-modal,\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n    background: rgba(0, 0, 0, 0.85);\n  }\n\n  .hp-birdscreen-modal.hp-open,\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .hp-birdscreen-popup,\n  .custom-image-popup-content {\n    position: relative;\n    width: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-popup {\n    width: calc(100% - 40px);\n    max-width: 900px;\n    padding: 20px;\n    border-radius: 8px;\n    overflow: auto;\n    box-sizing: border-box;\n  }\n\n  .hp-birdscreen-image {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .custom-image-popup-content img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-close,\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .hp-birdscreen-modal,\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .hp-birdscreen-popup {\n      width: calc(100% - 20px);\n      padding: 15px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"custom-features-box\"\u003e\n\u003cp\u003eOur 45° Thinline Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Wide Flange Frame.\u003c\/p\u003e\n\u003cdetails class=\"custom-features-details\" open=\"\"\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"custom-features-content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eWide flange for additional mounting surface coverage\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFixed 45° horizontal blades on 3\/4\" spacing\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFully extruded aluminum blades and frame\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eSupports are hidden behind blades for a clean appearance.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e Bird screen \u003c\/button\u003e is standard or optional insect screen. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in 1\" standard dimension increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in durable powder coat finish standard\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e73% free area for optimal performance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eMounting available for PTAC\/ VTAC application\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cbutton type=\"button\" class=\"custom-spec-popup-link\"\u003e View Spec Sheet \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- BIRD SCREEN POPUP --\u003e\n\u003cdiv class=\"hp-birdscreen-modal\"\u003e\n\u003cdiv class=\"hp-birdscreen-popup\"\u003e\n\u003cbutton type=\"button\" class=\"hp-birdscreen-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird screen example\" class=\"hp-birdscreen-image\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPEC SHEET POPUP --\u003e\n\u003cdiv class=\"custom-image-popup-overlay\"\u003e\n\u003cdiv class=\"custom-image-popup-content\"\u003e\n\u003cbutton type=\"button\" class=\"custom-image-popup-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/450-thinline-aluminum-exterior-louver-gable-vent-for-walls-crawlspaces-with-screen-protectorspecial-weather-louver-731250.png?v=1743790754\" alt=\"Wide frame 45-degree aluminum exterior louver spec sheet\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n  \u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var birdPopup = document.querySelector('.hp-birdscreen-modal');\n  var specPopup = document.querySelector('.custom-image-popup-overlay');\n\n  if (birdPopup \u0026\u0026 birdPopup.parentNode !== document.body) {\n    document.body.appendChild(birdPopup);\n  }\n\n  if (specPopup \u0026\u0026 specPopup.parentNode !== document.body) {\n    document.body.appendChild(specPopup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var birdOpenButton = event.target.closest('.hp-birdscreen-popup-link');\n    var birdCloseButton = event.target.closest('.hp-birdscreen-close');\n\n    var specOpenButton = event.target.closest('.custom-spec-popup-link');\n    var specCloseButton = event.target.closest('.custom-image-popup-close');\n\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (birdOpenButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeBirdPopup.classList.add('hp-open');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (birdCloseButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeBirdPopup \u0026\u0026\n      event.target === activeBirdPopup\n    ) {\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (specOpenButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeSpecPopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (specCloseButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeSpecPopup \u0026\u0026\n      event.target === activeSpecPopup\n    ) {\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (event.key === 'Escape') {\n      if (activeBirdPopup) {\n        activeBirdPopup.classList.remove('hp-open');\n      }\n\n      if (activeSpecPopup) {\n        activeSpecPopup.classList.remove('is-active');\n      }\n\n      document.body.style.overflow = '';\n    }\n  });\n\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":46767810248941,"sku":"HPLTL-45-WF","price":41.11,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAW_ALUMINUM___45_HPLTL-WF.png?v=1785290130"},{"product_id":"no-frame-aluminum-exterior-louver-gable-vent-for-walls-crawlspace-weather-resistant-with-screen-protector-copy","title":"Bar Linear Grille w\/ Mud-In Flange","description":"\u003cdiv class=\"globo-formbuilder\" data-id=\"NTA4NTY=\"\u003e\u003cbr\u003e\u003c\/div\u003e\u003cbutton class=\"button btn globo-formbuilder-open\" data-id=\"NTgwOTA=\"\u003eContact us\u003c\/button\u003e\u003cdiv class=\"globo-formbuilder\" data-id=\"NTgwOTA=\"\u003e\u003c\/div\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47094431056109,"sku":"HPBLJ","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/bar-linear-grille-w-mud-in-flangespecial-weather-louver-661557.png?v=1743790751"},{"product_id":"single-deflection-supply-register-vertical-blade-multi-shutter","title":"Single Deflection Supply Register - Vertical Blade - Multi-Shutter","description":"\u003cdiv data-id=\"NjcxNDA=\" class=\"globo-formbuilder\"\u003e\u003cbr\u003e\u003c\/div\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":49390576107757,"sku":"HP821","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/single-deflection-supply-register-vertical-blade-multi-shuttersupply-adjustable-685574.png?v=1743790752"},{"product_id":"double-deflection-supply-register-vertical-front","title":"Double Deflection Supply Register - Vertical Front - OBD","description":"\u003cdiv class=\"globo-formbuilder\" data-id=\"NjcxNDA=\"\u003e\u003c\/div\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47465435660525,"sku":"HPVHD","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/double-deflection-supply-register-vertical-front-obdsupply-aluminum-double-deflection-389681.png?v=1743790755"},{"product_id":"one-direction-curved-blade-grille","title":"One Direction Horizontal Curved Blade Grille","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47469403504877,"sku":"HPC1H","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-horizontal-curved-blade-grillesupply-aluminum-adjustable-curved-blade-262749.png?v=1743790715"},{"product_id":"one-direction-vertical-curved-blade-grille","title":"One Direction Vertical Curved Blade Grille","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47469418053869,"sku":"HPC1V","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-vertical-curved-blade-grillesupply-aluminum-adjustable-curved-blade-856916.png?v=1743790715"},{"product_id":"one-direction-horizontal-curved-blade-register","title":"One Direction Curved Blade Register with Opposed Blade Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47469432537325,"sku":"HPC1HD","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-curved-blade-register-with-opposed-blade-dampersupply-aluminum-adjustable-curved-blade-611282.png?v=1743790715"},{"product_id":"one-direction-vertical-curved-blade-register","title":"One Direction Vertical Curved Blade Register with Opposed Blade Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47505581080813,"sku":"HPC1VD","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-vertical-curved-blade-register-with-multi-shutter-dampersupply-aluminum-adjustable-curved-blade-847753.png?v=1743790715"},{"product_id":"one-direction-horizontal-curved-blade-register-with-multi-shutter-damper","title":"One Direction Horizontal Curved Blade Register with Multi-Shutter Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47507400130797,"sku":"HPC1HM","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-horizontal-curved-blade-register-with-multi-shutter-dampersupply-aluminum-adjustable-curved-blade-365441.png?v=1743790715"},{"product_id":"one-direction-vertical-curved-blade-register-with-multi-shutter-damper","title":"One Direction Vertical Curved Blade Register with Multi-Shutter Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508409516269,"sku":"HPC1VM","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-vertical-curved-blade-register-with-multi-shutter-dampersupply-aluminum-adjustable-curved-blade-847753.png?v=1743790715"},{"product_id":"two-direction-curved-blade-grille-with-adjustable-horizontal-blades","title":"Two Direction Curved Blade Grille with Adjustable Horizontal Blades","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508459421933,"sku":"HPC2H","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-grille-with-adjustable-horizontal-bladessupply-aluminum-adjustable-curved-blade-135381.png?v=1743790715"},{"product_id":"two-direction-curved-blade-grille-with-adjustable-vertical-blades","title":"Two Direction Curved Blade Grille with Adjustable Vertical Blades","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508586791149,"sku":"HPC2V","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-grille-with-adjustable-vertical-bladessupply-aluminum-adjustable-curved-blade-285274.png?v=1743790715"},{"product_id":"two-direction-curved-blade-register-with-adjustable-horizontal-blades-and-opposed-damper","title":"Two Direction Curved Blade Register with Adjustable Horizontal Blades and Opposed Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508601864429,"sku":"HPC2HD","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-register-with-adjustable-horizontal-blades-and-opposed-dampersupply-aluminum-adjustable-curved-blade-814129.png?v=1743790715"},{"product_id":"two-direction-curved-blade-register-with-adjustable-vertical-blades-and-opposed-damper","title":"Two Direction Curved Blade Register with Adjustable Vertical Blades and Opposed Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508643283181,"sku":"HPC2VD","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-register-with-adjustable-vertical-blades-and-multi-shutter-dampersupply-aluminum-adjustable-curved-blade-330482.png?v=1743790714"},{"product_id":"two-direction-curved-blade-register-with-adjustable-horizontal-blades-and-multi-shutter-damper","title":"Two Direction Curved Blade Register with Adjustable Horizontal Blades and Multi-Shutter Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508728938733,"sku":"HPC2HM","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-register-with-adjustable-horizontal-blades-and-multi-shutter-dampersupply-aluminum-adjustable-curved-blade-446611.png?v=1743790715"},{"product_id":"two-direction-curved-blade-register-with-adjustable-vertical-blades-and-multi-shutter-damper","title":"Two Direction Curved Blade Register with Adjustable Vertical Blades and Multi-Shutter Damper","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508790968557,"sku":"HPC2VM","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-register-with-adjustable-vertical-blades-and-multi-shutter-dampersupply-aluminum-adjustable-curved-blade-330482.png?v=1743790714"},{"product_id":"two-direction-curved-blade-grille-with-adjustable-vertical-and-horizontal-blades","title":"Two Direction Curved Blade Grille with Adjustable Vertical and Horizontal Blades","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508826161389,"sku":"HPC2RC","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-grille-with-adjustable-vertical-and-horizontal-bladessupply-aluminum-adjustable-curved-blade-447560.png?v=1743790714"},{"product_id":"three-direction-curved-blade-grille-with-adjustable-curved-blades","title":"Three Direction Curved Blade Grille with Adjustable Curved Blades","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47508900249837,"sku":"HPC3","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/three-direction-curved-blade-grille-with-adjustable-curved-bladessupply-aluminum-adjustable-curved-blade-954479.png?v=1743790714"},{"product_id":"three-direction-curved-blade-register-multi-shutter-damper-with-handle-operator","title":"Three Direction Curved Blade Register - Multi-shutter damper with handle operator","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47555438805229,"sku":"HPC33M","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/three-direction-curved-blade-register-multi-shutter-damper-with-handle-operatorsupply-aluminum-adjustable-curved-blade-764123.png?v=1743790714"},{"product_id":"four-direction-curved-blade-grille","title":"Four Direction Curved Blade Grille","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47555477537005,"sku":"HPC4","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/four-direction-curved-blade-grillesupply-aluminum-adjustable-curved-blade-854913.png?v=1743790714"},{"product_id":"four-direction-curved-blade-grille-1","title":"Four Direction Curved Blade Grille","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47555506700525,"sku":"HPC44","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/four-direction-curved-blade-register-with-opposed-blade-damper-with-concealed-operator-designsupply-aluminum-adjustable-curved-blade-359551.png?v=1743790714"},{"product_id":"four-direction-curved-blade-register-with-opposed-blade-damper-with-concealed-operator-design","title":"Four Direction Curved Blade Register with Opposed Blade Damper with Concealed Operator Design","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47555540877549,"sku":"HPC4D","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/four-direction-curved-blade-register-with-opposed-blade-damper-with-concealed-operator-designsupply-aluminum-adjustable-curved-blade-776335.png?v=1743790714"},{"product_id":"four-direction-curved-blade-register-with-opposed-blade-damper-with-concealed-operator-design-copy","title":"Four Direction Curved Blade Register with Opposed Blade Damper with Concealed Operator Design","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47555569058029,"sku":"HPC44D","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/four-direction-curved-blade-register-with-opposed-blade-damper-with-concealed-operator-designsupply-aluminum-adjustable-curved-blade-359551.png?v=1743790714"},{"product_id":"four-direction-curved-blade-register-with-multi-shutter-damper-with-handle-operator","title":"Four Direction Curved Blade Register with Multi-shutter Damper with Handle Operator","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569081041133,"sku":"HPC4M","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/four-direction-curved-blade-register-with-multi-shutter-damper-with-handle-operatorsupply-aluminum-adjustable-curved-blade-854057.png?v=1743790714"},{"product_id":"four-direction-curved-blade-register-with-multi-shutter-damper-with-handle-operator-1","title":"Four Direction Curved Blade Register with Multi-shutter Damper with Handle Operator","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569108599021,"sku":"HPC44M","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/four-direction-curved-blade-register-with-multi-shutter-damper-with-handle-operatorsupply-aluminum-adjustable-curved-blade-883233.png?v=1743790714"},{"product_id":"one-direction-curved-blade-grille-w-wide-flange","title":"One Direction Curved Blade Grille w\/ Wide Flange","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569120592109,"sku":"HPC1H-WF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-curved-blade-register-w-wide-flangesupply-aluminum-adjustable-curved-blade-148033.png?v=1743790714"},{"product_id":"one-direction-curved-blade-grille-w-wide-flange-1","title":"One Direction Curved Blade Grille w\/ Wide Flange","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569142841581,"sku":"HPC1V-WF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-curved-blade-grille-w-wide-flangesupply-aluminum-adjustable-curved-blade-647544.png?v=1743790714"},{"product_id":"one-direction-curved-blade-register-w-wide-flange","title":"One Direction Curved Blade Register w\/ Wide Flange","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569168695533,"sku":"HPC1HD-WF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-curved-blade-register-w-wide-flangesupply-aluminum-adjustable-curved-blade-148033.png?v=1743790714"},{"product_id":"one-direction-curved-blade-register-w-wide-flange-copy","title":"One Direction Curved Blade Register w\/ Wide Flange","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569185669357,"sku":"HPC1VD-WF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/one-direction-curved-blade-register-w-wide-flangesupply-aluminum-adjustable-curved-blade-821183.png?v=1743790714"},{"product_id":"two-direction-curved-blade-grille-w-wide-flange","title":"Two Direction Curved Blade Grille w\/ Wide Flange","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569218404589,"sku":"HPC2H-WF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-grille-w-wide-flangesupply-aluminum-adjustable-curved-blade-994743.png?v=1743790714"},{"product_id":"two-direction-curved-blade-grille-w-wide-flange-1","title":"Two Direction Curved Blade Grille w\/ Wide Flange","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47569233936621,"sku":"HPC2V-WF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/two-direction-curved-blade-grille-w-wide-flangesupply-aluminum-adjustable-curved-blade-500910.png?v=1743790714"},{"product_id":"4-drainable-stationary-louver-w-flange-frame","title":"4\" Drainable Stationary Louver w\/ Flange Frame","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47815374143725,"sku":"HPLD4-FF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/4-drainable-stationary-louver-w-flange-framespecial-weather-louver-914695.png?v=1743790714"},{"product_id":"4-drainable-stationary-louver-w-channel-frame","title":"4\" Drainable Stationary Louver w\/ Channel Frame","description":"\u003cdiv class=\"globo-formbuilder\" data-id=\"Nzk2OTM=\"\u003e\u003c\/div\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":47818689347821,"sku":"HPLD4-CF","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/4-drainable-stationary-louver-w-channel-framespecial-weather-louver-961481.png?v=1743790715"},{"product_id":"custom-aluminum-eggcrate-grille-45-degree-hvac-air-vent","title":"Custom Aluminum Eggcrate Grille - 45 Degree HVAC Air Vent","description":"","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":48194740781293,"sku":"HPRE5-45","price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/eggcrate_grille_45_degree_deflection_screwhole.png?v=1749573518"},{"product_id":"custom-2-aluminum-louver-vent-exterior-air-grille-for-walls-gables-crawlspace-weather-resistant-with-flange-frame-made-to-order","title":"2\" Non-Drainable Outdoor Louver Gable Vent (Flange Frame) - Customizable","description":"\u003cstyle\u003e\n\n  .custom-features-box {\n\n    margin: 0;\n\n    max-width: 1200px;\n\n    width: 100%;\n\n    box-sizing: border-box;\n\n    font-family: Arial, sans-serif;\n\n    color: #111;\n\n    overflow-x: hidden;\n\n  }\n\n\n\n  .custom-features-box p {\n\n    margin: 0 0 28px;\n\n    font-size: 15px;\n\n    line-height: 1.6;\n\n    color: #111;\n\n  }\n\n\n\n  .custom-features-details {\n\n    margin-top: 8px;\n\n    width: 100%;\n\n    box-sizing: border-box;\n\n  }\n\n\n\n  .custom-features-details summary {\n\n    list-style: none;\n\n    cursor: pointer;\n\n    margin: 0 0 18px;\n\n    padding: 0 4px 10px 0;\n\n    border-bottom: 2px solid #5296dd;\n\n    color: #5296dd;\n\n    font-size: 15px;\n\n    line-height: 1.2;\n\n    font-weight: 700;\n\n    text-transform: uppercase;\n\n    display: flex;\n\n    align-items: center;\n\n    justify-content: space-between;\n\n    width: 100%;\n\n    max-width: 100%;\n\n    box-sizing: border-box;\n\n    overflow: hidden;\n\n  }\n\n\n\n  .custom-features-details summary::-webkit-details-marker {\n\n    display: none;\n\n  }\n\n\n\n  .custom-features-details summary::after {\n\n    content: \"\";\n\n    width: 10px;\n\n    height: 10px;\n\n    border-right: 2px solid #5296dd;\n\n    border-bottom: 2px solid #5296dd;\n\n    transform: rotate(45deg);\n\n    transition: transform 0.25s ease;\n\n    margin-left: 12px;\n\n    margin-right: 2px;\n\n    flex-shrink: 0;\n\n  }\n\n\n\n  .custom-features-details[open] summary::after {\n\n    transform: rotate(225deg);\n\n  }\n\n\n\n  .custom-features-box ul {\n\n    list-style: none;\n\n    padding: 0;\n\n    margin: 0;\n\n    display: grid;\n\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n\n    column-gap: 35px;\n\n    row-gap: 16px;\n\n    font-size: 15px;\n\n    line-height: 1.6;\n\n  }\n\n\n\n  .custom-features-box li {\n\n    display: flex;\n\n    align-items: flex-start;\n\n    gap: 12px;\n\n    margin: 0;\n\n  }\n\n\n\n  .feature-bullet {\n\n    width: 14px;\n\n    height: 14px;\n\n    min-width: 14px;\n\n    margin-top: 5px;\n\n    background: #5296dd;\n\n    display: inline-block;\n\n  }\n\n\n\n  .custom-features-box strong {\n\n    font-weight: 400;\n\n  }\n\n\n\n  .custom-spec-popup-link {\n\n    display: inline-block;\n\n    margin-top: 24px;\n\n    color: #5296dd;\n\n    cursor: pointer;\n\n    font-size: 15px;\n\n    font-weight: 700;\n\n    text-decoration: underline;\n\n    background: none;\n\n    border: none;\n\n    padding: 0;\n\n  }\n\n\n\n  .custom-spec-popup-link:hover {\n\n    color: #002b5c;\n\n  }\n\n\n\n  .custom-image-popup-overlay {\n\n    display: none;\n\n    position: fixed;\n\n    z-index: 999999;\n\n    inset: 0;\n\n    background: rgba(0, 0, 0, 0.85);\n\n    align-items: center;\n\n    justify-content: center;\n\n    padding: 20px;\n\n    box-sizing: border-box;\n\n  }\n\n\n\n  .custom-image-popup-overlay.is-active {\n\n    display: flex !important;\n\n  }\n\n\n\n  .custom-image-popup-content {\n\n    position: relative;\n\n    max-width: calc(100vw - 40px);\n\n    max-height: 90vh;\n\n  }\n\n\n\n  .custom-image-popup-content img {\n\n    max-width: calc(100vw - 40px);\n\n    max-height: 90vh;\n\n    width: auto;\n\n    height: auto;\n\n    display: block;\n\n    background: #fff;\n\n  }\n\n\n\n  .custom-image-popup-close {\n\n    position: absolute;\n\n    top: -12px;\n\n    right: -12px;\n\n    width: 36px;\n\n    height: 36px;\n\n    border: none;\n\n    border-radius: 50%;\n\n    background: #fff;\n\n    color: #000;\n\n    font-size: 24px;\n\n    cursor: pointer;\n\n    font-weight: 700;\n\n    line-height: 36px;\n\n    text-align: center;\n\n    z-index: 2;\n\n  }\n\n\n\n  @media screen and (max-width: 990px) {\n\n    .custom-features-box ul {\n\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n\n    }\n\n  }\n\n\n\n  @media screen and (max-width: 749px) {\n\n    .custom-features-box {\n\n      max-width: 100%;\n\n      width: 100%;\n\n      overflow-x: hidden;\n\n    }\n\n\n\n    .custom-features-details summary {\n\n      width: 100%;\n\n      max-width: 100%;\n\n      padding-right: 8px;\n\n    }\n\n\n\n    .custom-features-box ul {\n\n      grid-template-columns: 1fr;\n\n    }\n\n\n\n    .custom-image-popup-overlay {\n\n      padding: 16px;\n\n    }\n\n\n\n    .custom-image-popup-content,\n\n    .custom-image-popup-content img {\n\n      max-width: calc(100vw - 32px);\n\n    }\n\n  }\n\n\u003c\/style\u003e\n\n\n\n\u003cdiv class=\"custom-features-box\"\u003e\n\n\n\n  \u003cp\u003e\n\n    Our 2\" Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Flange Frame. It has blades that prevent water penetration and maximize free area.\n\n  \u003c\/p\u003e\n\n\n\n  \u003cdetails class=\"custom-features-details\"\u003e\n\n    \u003csummary\u003eFeatures\u003c\/summary\u003e\n\n\n\n    \u003cdiv class=\"custom-features-content\"\u003e\n\n      \u003cul\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eHeavy-duty, extruded aluminum flange frame.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eFixed, non-drainable blades on 2\" spacing.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-jblade-popup-link\"\u003e\n      J-blade design\n    \u003c\/button\u003e\n    minimizes water ingress while maximizing free area.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-jblade-modal\" class=\"hp-jblade-modal\"\u003e\n  \u003cdiv class=\"hp-jblade-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-jblade-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-jblade-close\" aria-label=\"Close\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/m.media-amazon.com\/images\/I\/81IR3mqqB0L._AC_SL1500_.jpg\" alt=\"J-Blade Design\" class=\"hp-jblade-image\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-jblade-popup-link {\n  border: 0;\n  padding: 0;\n  margin: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-jblade-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-jblade-modal.hp-open {\n  display: block;\n}\n\n.hp-jblade-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-jblade-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n\n  background: #fff;\n  border-radius: 8px;\n  padding: 20px;\n\n  width: calc(100% - 40px);\n  max-width: 900px;\n  max-height: 90vh;\n\n  overflow: auto;\n  z-index: 2;\n}\n\n.hp-jblade-close {\n  position: absolute;\n  top: 10px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  line-height: 1;\n  cursor: pointer;\n  color: #333;\n}\n\n.hp-jblade-image {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n@media (max-width: 768px) {\n  .hp-jblade-popup {\n    width: calc(100% - 20px);\n    padding: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  const link = document.querySelector('.hp-jblade-popup-link');\n  const modal = document.getElementById('hp-jblade-modal');\n  const close = document.querySelector('.hp-jblade-close');\n  const overlay = document.querySelector('.hp-jblade-overlay');\n\n  if (!link || !modal) return;\n\n  function openModal() {\n    modal.classList.add('hp-open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n    document.body.style.overflow = '';\n  }\n\n  link.addEventListener('click', openModal);\n\n  if (close) {\n    close.addEventListener('click', closeModal);\n  }\n\n  if (overlay) {\n    overlay.addEventListener('click', closeModal);\n  }\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n      closeModal();\n    }\n  });\n})();\n\u003c\/script\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eNominal 43% free area, based on 48\" x 48\" louver.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-mullion-popup-link\"\u003e\n      Mullions used\n    \u003c\/button\u003e\n    for sizes over 36\" in length.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-mullion-modal\" class=\"hp-mullion-modal\" aria-hidden=\"true\"\u003e\n  \u003cdiv class=\"hp-mullion-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-mullion-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-mullion-close\" aria-label=\"Close\"\u003e×\u003c\/button\u003e\n\n    \u003cdiv class=\"hp-mullion-images\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_2.png?v=1780204003\" alt=\"Mullion example 1\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_4.png?v=1780204013\" alt=\"Mullion example 2\"\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-mullion-popup-link {\n  border: 0;\n  padding: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-mullion-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-mullion-modal.hp-open {\n  display: block;\n}\n\n.hp-mullion-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-mullion-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n  z-index: 2;\n\n  background: #fff;\n  max-width: 1100px;\n  width: calc(100% - 40px);\n  max-height: 90vh;\n  overflow: auto;\n\n  padding: 24px;\n  border-radius: 8px;\n}\n\n.hp-mullion-close {\n  position: absolute;\n  top: 8px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  cursor: pointer;\n}\n\n.hp-mullion-images {\n  display: flex;\n  gap: 20px;\n}\n\n.hp-mullion-images img {\n  width: 50%;\n  height: auto;\n  display: block;\n}\n\n@media (max-width: 768px) {\n  .hp-mullion-images {\n    flex-direction: column;\n  }\n\n  .hp-mullion-images img {\n    width: 100%;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  var link = document.querySelector('.hp-mullion-popup-link');\n  var modal = document.getElementById('hp-mullion-modal');\n  var close = document.querySelector('.hp-mullion-close');\n  var overlay = document.querySelector('.hp-mullion-overlay');\n\n  if (!link || !modal) return;\n\n  link.addEventListener('click', function() {\n    modal.classList.add('hp-open');\n  });\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n  }\n\n  if (close) close.addEventListener('click', closeModal);\n  if (overlay) overlay.addEventListener('click', closeModal);\n})();\n\u003c\/script\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eAvailable on 1\" standard dimensions.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n\u003cli\u003e\n  \u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\n  \u003cstrong\u003e\n    \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e\n      Bird screen included\n    \u003c\/button\u003e\n    standard. Insect screen can be specified.\n  \u003c\/strong\u003e\n\u003c\/li\u003e\n\n\u003cdiv id=\"hp-birdscreen-modal\" class=\"hp-birdscreen-modal\"\u003e\n  \u003cdiv class=\"hp-birdscreen-overlay\"\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"hp-birdscreen-popup\"\u003e\n    \u003cbutton type=\"button\" class=\"hp-birdscreen-close\" aria-label=\"Close\"\u003e\n      ×\n    \u003c\/button\u003e\n\n    \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird Screen Example\" class=\"hp-birdscreen-image\"\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.hp-birdscreen-popup-link {\n  border: 0;\n  padding: 0;\n  margin: 0;\n  background: none;\n  color: #5296dd;\n  font: inherit;\n  font-weight: 700;\n  text-decoration: underline;\n  cursor: pointer;\n}\n\n.hp-birdscreen-modal {\n  display: none;\n  position: fixed;\n  inset: 0;\n  z-index: 999999;\n}\n\n.hp-birdscreen-modal.hp-open {\n  display: block;\n}\n\n.hp-birdscreen-overlay {\n  position: absolute;\n  inset: 0;\n  background: rgba(0,0,0,.65);\n}\n\n.hp-birdscreen-popup {\n  position: fixed;\n  top: 50%;\n  left: 50%;\n  transform: translate(-50%, -50%);\n\n  background: #fff;\n  border-radius: 8px;\n  padding: 20px;\n\n  width: calc(100% - 40px);\n  max-width: 900px;\n  max-height: 90vh;\n\n  overflow: auto;\n  z-index: 2;\n}\n\n.hp-birdscreen-close {\n  position: absolute;\n  top: 10px;\n  right: 14px;\n  border: 0;\n  background: none;\n  font-size: 32px;\n  line-height: 1;\n  cursor: pointer;\n  color: #333;\n}\n\n.hp-birdscreen-image {\n  display: block;\n  width: 100%;\n  height: auto;\n}\n\n@media (max-width: 768px) {\n  .hp-birdscreen-popup {\n    width: calc(100% - 20px);\n    padding: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function() {\n  const link = document.querySelector('.hp-birdscreen-popup-link');\n  const modal = document.getElementById('hp-birdscreen-modal');\n  const close = document.querySelector('.hp-birdscreen-close');\n  const overlay = document.querySelector('.hp-birdscreen-overlay');\n\n  if (!link || !modal) return;\n\n  function openModal() {\n    modal.classList.add('hp-open');\n    document.body.style.overflow = 'hidden';\n  }\n\n  function closeModal() {\n    modal.classList.remove('hp-open');\n    document.body.style.overflow = '';\n  }\n\n  link.addEventListener('click', openModal);\n\n  if (close) {\n    close.addEventListener('click', closeModal);\n  }\n\n  if (overlay) {\n    overlay.addEventListener('click', closeModal);\n  }\n\n  document.addEventListener('keydown', function(e) {\n    if (e.key === 'Escape') {\n      closeModal();\n    }\n  });\n})();\n\u003c\/script\u003e\n\n        \u003cli\u003e\n\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e\u003cstrong\u003eAvailable with powder coat paint for high-performance exterior finishes.\u003c\/strong\u003e\n\n\u003c\/li\u003e\n\n      \u003c\/ul\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/details\u003e\n\n\n\n  \u003cbutton type=\"button\" class=\"custom-spec-popup-link\" data-open-spec-popup\u003e\n\n    View Spec Sheet\n\n  \u003c\/button\u003e\n\n\n\n\u003c\/div\u003e\n\n\n\n\u003cdiv class=\"custom-image-popup-overlay\" data-spec-popup\u003e\n\n  \u003cdiv class=\"custom-image-popup-content\"\u003e\n\n    \u003cbutton type=\"button\" class=\"custom-image-popup-close\" data-close-spec-popup aria-label=\"Close spec sheet popup\"\u003e\n\n      ×\n\n    \u003c\/button\u003e\n\n\n\n    \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPL2-FF_Specs.png?v=1779115959\" alt=\"flange frame aluminum exterior louver spec sheet\"\u003e\n\n  \u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\n\n\u003cscript\u003e\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n\n\n  if (details) {\n\n    function setInitialFeaturesState() {\n\n      if (window.innerWidth \u003e 749) {\n\n        details.setAttribute('open', '');\n\n      } else {\n\n        details.removeAttribute('open');\n\n      }\n\n    }\n\n\n\n    setInitialFeaturesState();\n\n\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n\n\n    window.addEventListener('resize', function () {\n\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n\n\n      if (isMobileNow !== lastMobileState) {\n\n        lastMobileState = isMobileNow;\n\n        setInitialFeaturesState();\n\n      }\n\n    });\n\n  }\n\n\n\n  var popup = document.querySelector('[data-spec-popup]');\n\n\n\n  if (popup \u0026\u0026 popup.parentNode !== document.body) {\n\n    document.body.appendChild(popup);\n\n  }\n\n\n\n  document.addEventListener('click', function (event) {\n\n    var openButton = event.target.closest('[data-open-spec-popup]');\n\n    var closeButton = event.target.closest('[data-close-spec-popup]');\n\n    var activePopup = document.querySelector('[data-spec-popup]');\n\n\n\n    if (openButton \u0026\u0026 activePopup) {\n\n      event.preventDefault();\n\n      event.stopPropagation();\n\n      activePopup.classList.add('is-active');\n\n      document.body.style.overflow = 'hidden';\n\n      return;\n\n    }\n\n\n\n    if (closeButton \u0026\u0026 activePopup) {\n\n      event.preventDefault();\n\n      activePopup.classList.remove('is-active');\n\n      document.body.style.overflow = '';\n\n      return;\n\n    }\n\n\n\n    if (activePopup \u0026\u0026 event.target === activePopup) {\n\n      activePopup.classList.remove('is-active');\n\n      document.body.style.overflow = '';\n\n    }\n\n  });\n\n\n\n  document.addEventListener('keydown', function (event) {\n\n    var activePopup = document.querySelector('[data-spec-popup]');\n\n\n\n    if (event.key === 'Escape' \u0026\u0026 activePopup) {\n\n      activePopup.classList.remove('is-active');\n\n      document.body.style.overflow = '';\n\n    }\n\n  });\n\n});\n\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":50165504639213,"sku":"HPL2-FF","price":43.06,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILLRAWALUMINUM_-HPL2-FF.png?v=1780196645"},{"product_id":"45-thinline-channel-frame-aluminum-exterior-louver-gable-vent-for-walls-crawlspaces-with-screen-protector","title":"45° Thinline Outdoor Louver Gable Vent (Channel Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::marker {\n    display: none;\n    content: \"\";\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .hp-birdscreen-popup-link {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    background: none;\n    color: #5296dd;\n    font: inherit;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover,\n  .hp-birdscreen-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .hp-birdscreen-modal,\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n    background: rgba(0, 0, 0, 0.85);\n  }\n\n  .hp-birdscreen-modal.hp-open,\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .hp-birdscreen-popup,\n  .custom-image-popup-content {\n    position: relative;\n    width: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-popup {\n    width: calc(100% - 40px);\n    max-width: 900px;\n    padding: 20px;\n    border-radius: 8px;\n    overflow: auto;\n    box-sizing: border-box;\n  }\n\n  .hp-birdscreen-image {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .custom-image-popup-content img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-close,\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .hp-birdscreen-modal,\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .hp-birdscreen-popup {\n      width: calc(100% - 20px);\n      padding: 15px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"custom-features-box\"\u003e\n\u003cp\u003eOur 45° Thinline Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Channel Frame.\u003c\/p\u003e\n\u003cdetails class=\"custom-features-details\" open=\"\"\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"custom-features-content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFixed 45° horizontal blades on 3\/4\" spacing.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFully extruded aluminum blades and channel frame.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eSupports are hidden behind blades for a clean appearance.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e Bird screen \u003c\/button\u003e is standard or optional insect screen. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in 1\" standard dimension increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eMounting available for PTAC \/ VTAC applications.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e High-quality powder coat paint standard. Architectural-grade finish available. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e73% free area for optimal performance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cbutton type=\"button\" class=\"custom-spec-popup-link\"\u003e View Spec Sheet \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- BIRD SCREEN POPUP --\u003e\n\u003cdiv class=\"hp-birdscreen-modal\"\u003e\n\u003cdiv class=\"hp-birdscreen-popup\"\u003e\n\u003cbutton type=\"button\" class=\"hp-birdscreen-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird screen example\" class=\"hp-birdscreen-image\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPEC SHEET POPUP --\u003e\n\u003cdiv class=\"custom-image-popup-overlay\"\u003e\n\u003cdiv class=\"custom-image-popup-content\"\u003e\n\u003cbutton type=\"button\" class=\"custom-image-popup-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/45-thinline-aluminum-exterior-louver-gable-vent-for-walls-crawlspaces-with-screen-protectorspecial-weather-louver-2.png?v=1771509992\" alt=\"Channel frame 45-degree aluminum exterior louver spec sheet\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var birdPopup = document.querySelector('.hp-birdscreen-modal');\n  var specPopup = document.querySelector('.custom-image-popup-overlay');\n\n  if (birdPopup \u0026\u0026 birdPopup.parentNode !== document.body) {\n    document.body.appendChild(birdPopup);\n  }\n\n  if (specPopup \u0026\u0026 specPopup.parentNode !== document.body) {\n    document.body.appendChild(specPopup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var birdOpenButton = event.target.closest('.hp-birdscreen-popup-link');\n    var birdCloseButton = event.target.closest('.hp-birdscreen-close');\n\n    var specOpenButton = event.target.closest('.custom-spec-popup-link');\n    var specCloseButton = event.target.closest('.custom-image-popup-close');\n\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (birdOpenButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeBirdPopup.classList.add('hp-open');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (birdCloseButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeBirdPopup \u0026\u0026\n      event.target === activeBirdPopup\n    ) {\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (specOpenButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeSpecPopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (specCloseButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeSpecPopup \u0026\u0026\n      event.target === activeSpecPopup\n    ) {\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (event.key === 'Escape') {\n      if (activeBirdPopup) {\n        activeBirdPopup.classList.remove('hp-open');\n      }\n\n      if (activeSpecPopup) {\n        activeSpecPopup.classList.remove('is-active');\n      }\n\n      document.body.style.overflow = '';\n    }\n  });\n\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":49390595408109,"sku":"HPLTL-45-CF","price":33.28,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAW_ALUMINUM___45_HPLTL-CF.png?v=1785203756"},{"product_id":"30-thinline-channel-frame-aluminum-exterior-louver-gable-vent-for-walls-crawlspaces-with-screen-protector","title":"30° Thinline Outdoor Louver Gable Vent (Channel Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::marker {\n    display: none;\n    content: \"\";\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .hp-birdscreen-popup-link {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    background: none;\n    color: #5296dd;\n    font: inherit;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover,\n  .hp-birdscreen-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .hp-birdscreen-modal,\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n    background: rgba(0, 0, 0, 0.85);\n  }\n\n  .hp-birdscreen-modal.hp-open,\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .hp-birdscreen-popup,\n  .custom-image-popup-content {\n    position: relative;\n    width: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-popup {\n    width: calc(100% - 40px);\n    max-width: 900px;\n    padding: 20px;\n    border-radius: 8px;\n    overflow: auto;\n    box-sizing: border-box;\n  }\n\n  .hp-birdscreen-image {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .custom-image-popup-content img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-close,\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .hp-birdscreen-modal,\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .hp-birdscreen-popup {\n      width: calc(100% - 20px);\n      padding: 15px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"custom-features-box\"\u003e\n\u003cp\u003eOur 30° Thinline Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Channel Frame.\u003c\/p\u003e\n\u003cdetails class=\"custom-features-details\" open=\"\"\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"custom-features-content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFixed 30° horizontal blades on 3\/4\" spacing.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFully extruded aluminum blades and channel frame.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eSupports are hidden behind blades for a clean appearance.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e Bird screen \u003c\/button\u003e is standard or optional insect screen. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in 1\" standard dimension increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eMounting available for PTAC \/ VTAC applications.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e High-quality powder coat paint standard. Architectural-grade finish available. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e73% free area for optimal performance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cbutton type=\"button\" class=\"custom-spec-popup-link\"\u003e View Spec Sheet \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- BIRD SCREEN POPUP --\u003e\n\u003cdiv class=\"hp-birdscreen-modal\"\u003e\n\u003cdiv class=\"hp-birdscreen-popup\"\u003e\n\u003cbutton type=\"button\" class=\"hp-birdscreen-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird screen example\" class=\"hp-birdscreen-image\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPEC SHEET POPUP --\u003e\n\u003cdiv class=\"custom-image-popup-overlay\"\u003e\n\u003cdiv class=\"custom-image-popup-content\"\u003e\n\u003cbutton type=\"button\" class=\"custom-image-popup-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/30-thinline-aluminum-exterior-louver-gable-vent-for-walls-crawlspaces-with-screen-protectorspecial-weather-louver-2.png?v=1771510296\" alt=\"Channel frame 30-degree aluminum exterior louver spec sheet\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var birdPopup = document.querySelector('.hp-birdscreen-modal');\n  var specPopup = document.querySelector('.custom-image-popup-overlay');\n\n  if (birdPopup \u0026\u0026 birdPopup.parentNode !== document.body) {\n    document.body.appendChild(birdPopup);\n  }\n\n  if (specPopup \u0026\u0026 specPopup.parentNode !== document.body) {\n    document.body.appendChild(specPopup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var birdOpenButton = event.target.closest('.hp-birdscreen-popup-link');\n    var birdCloseButton = event.target.closest('.hp-birdscreen-close');\n\n    var specOpenButton = event.target.closest('.custom-spec-popup-link');\n    var specCloseButton = event.target.closest('.custom-image-popup-close');\n\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (birdOpenButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeBirdPopup.classList.add('hp-open');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (birdCloseButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeBirdPopup \u0026\u0026\n      event.target === activeBirdPopup\n    ) {\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (specOpenButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeSpecPopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (specCloseButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeSpecPopup \u0026\u0026\n      event.target === activeSpecPopup\n    ) {\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (event.key === 'Escape') {\n      if (activeBirdPopup) {\n        activeBirdPopup.classList.remove('hp-open');\n      }\n\n      if (activeSpecPopup) {\n        activeSpecPopup.classList.remove('is-active');\n      }\n\n      document.body.style.overflow = '';\n    }\n  });\n\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":49390638792941,"sku":"HPLTL-30-CF","price":33.28,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAW_ALUMINUM___30_HPLTL-CF.png?v=1785203630"},{"product_id":"30-thinline-outdoor-louver-gable-vent-wide-frame-customizable","title":"30° Thinline Outdoor Louver Gable Vent (Wide Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::marker {\n    display: none;\n    content: \"\";\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .hp-birdscreen-popup-link {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    background: none;\n    color: #5296dd;\n    font: inherit;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover,\n  .hp-birdscreen-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .hp-birdscreen-modal,\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n    background: rgba(0, 0, 0, 0.85);\n  }\n\n  .hp-birdscreen-modal.hp-open,\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .hp-birdscreen-popup,\n  .custom-image-popup-content {\n    position: relative;\n    width: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-popup {\n    width: calc(100% - 40px);\n    max-width: 900px;\n    padding: 20px;\n    border-radius: 8px;\n    overflow: auto;\n    box-sizing: border-box;\n  }\n\n  .hp-birdscreen-image {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .custom-image-popup-content img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-close,\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .hp-birdscreen-modal,\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .hp-birdscreen-popup {\n      width: calc(100% - 20px);\n      padding: 15px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"custom-features-box\"\u003e\n\u003cp\u003eOur 30° Thinline Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Wide Flange Frame.\u003c\/p\u003e\n\u003cdetails class=\"custom-features-details\" open=\"\"\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"custom-features-content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eWide flange for additional mounting surface coverage\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFixed 30° horizontal blades on 3\/4\" spacing\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFully extruded aluminum blades and frame\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eSupports are hidden behind blades for a clean appearance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e Bird screen \u003c\/button\u003e is standard or optional insect screen\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in 1\" standard dimension increments\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in durable powder coat finish standard\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e73% free area for optimal performance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eMounting available for PTAC\/ VTAC application\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cbutton type=\"button\" class=\"custom-spec-popup-link\"\u003e View Spec Sheet \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- BIRD SCREEN POPUP --\u003e\n\u003cdiv class=\"hp-birdscreen-modal\"\u003e\n\u003cdiv class=\"hp-birdscreen-popup\"\u003e\n\u003cbutton type=\"button\" class=\"hp-birdscreen-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird screen example\" class=\"hp-birdscreen-image\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPEC SHEET POPUP --\u003e\n\u003cdiv class=\"custom-image-popup-overlay\"\u003e\n\u003cdiv class=\"custom-image-popup-content\"\u003e\n\u003cbutton type=\"button\" class=\"custom-image-popup-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPLTL-30-WF_Specs.png?v=1785348240\" alt=\"Wide frame 30-degree aluminum exterior louver spec sheet\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var birdPopup = document.querySelector('.hp-birdscreen-modal');\n  var specPopup = document.querySelector('.custom-image-popup-overlay');\n\n  if (birdPopup \u0026\u0026 birdPopup.parentNode !== document.body) {\n    document.body.appendChild(birdPopup);\n  }\n\n  if (specPopup \u0026\u0026 specPopup.parentNode !== document.body) {\n    document.body.appendChild(specPopup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var birdOpenButton = event.target.closest('.hp-birdscreen-popup-link');\n    var birdCloseButton = event.target.closest('.hp-birdscreen-close');\n\n    var specOpenButton = event.target.closest('.custom-spec-popup-link');\n    var specCloseButton = event.target.closest('.custom-image-popup-close');\n\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (birdOpenButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeBirdPopup.classList.add('hp-open');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (birdCloseButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeBirdPopup \u0026\u0026\n      event.target === activeBirdPopup\n    ) {\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (specOpenButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeSpecPopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (specCloseButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeSpecPopup \u0026\u0026\n      event.target === activeSpecPopup\n    ) {\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (event.key === 'Escape') {\n      if (activeBirdPopup) {\n        activeBirdPopup.classList.remove('hp-open');\n      }\n\n      if (activeSpecPopup) {\n        activeSpecPopup.classList.remove('is-active');\n      }\n\n      document.body.style.overflow = '';\n    }\n  });\n\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":50351683109101,"sku":"HPLTL-30-WF","price":41.11,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAW_ALUMINUM___30_HPLTL-WF.png?v=1785288188"},{"product_id":"30-thinline-outdoor-louver-gable-vent-flange-frame-customizable","title":"30° Thinline Outdoor Louver Gable Vent (Flange Frame) - Customizable","description":"\u003cstyle\u003e\n  .custom-features-box {\n    margin: 0;\n    max-width: 1200px;\n    width: 100%;\n    box-sizing: border-box;\n    font-family: Arial, sans-serif;\n    color: #111;\n    overflow-x: hidden;\n  }\n\n  .custom-features-box p {\n    margin: 0 0 28px;\n    font-size: 15px;\n    line-height: 1.6;\n    color: #111;\n  }\n\n  .custom-features-details {\n    margin-top: 8px;\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .custom-features-details summary {\n    list-style: none;\n    cursor: pointer;\n    margin: 0 0 18px;\n    padding: 0 4px 10px 0;\n    border-bottom: 2px solid #5296dd;\n    color: #5296dd;\n    font-size: 15px;\n    line-height: 1.2;\n    font-weight: 700;\n    text-transform: uppercase;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    width: 100%;\n    max-width: 100%;\n    box-sizing: border-box;\n    overflow: hidden;\n  }\n\n  .custom-features-details summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .custom-features-details summary::marker {\n    display: none;\n    content: \"\";\n  }\n\n  .custom-features-details summary::after {\n    content: \"\";\n    width: 10px;\n    height: 10px;\n    border-right: 2px solid #5296dd;\n    border-bottom: 2px solid #5296dd;\n    transform: rotate(45deg);\n    transition: transform 0.25s ease;\n    margin-left: 12px;\n    margin-right: 2px;\n    flex-shrink: 0;\n  }\n\n  .custom-features-details[open] summary::after {\n    transform: rotate(225deg);\n  }\n\n  .custom-features-box ul {\n    list-style: none;\n    padding: 0;\n    margin: 0;\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    column-gap: 35px;\n    row-gap: 16px;\n    font-size: 15px;\n    line-height: 1.6;\n  }\n\n  .custom-features-box li {\n    display: flex;\n    align-items: flex-start;\n    gap: 12px;\n    margin: 0;\n  }\n\n  .feature-bullet {\n    width: 14px;\n    height: 14px;\n    min-width: 14px;\n    margin-top: 5px;\n    background: #5296dd;\n    display: inline-block;\n  }\n\n  .custom-features-box strong {\n    font-weight: 400;\n  }\n\n  .hp-birdscreen-popup-link {\n    border: 0;\n    padding: 0;\n    margin: 0;\n    background: none;\n    color: #5296dd;\n    font: inherit;\n    font-weight: 700;\n    text-decoration: underline;\n    cursor: pointer;\n  }\n\n  .custom-spec-popup-link {\n    display: inline-block;\n    margin-top: 24px;\n    color: #5296dd;\n    cursor: pointer;\n    font-size: 15px;\n    font-weight: 700;\n    text-decoration: underline;\n    background: none;\n    border: none;\n    padding: 0;\n  }\n\n  .custom-spec-popup-link:hover,\n  .hp-birdscreen-popup-link:hover {\n    color: #002b5c;\n  }\n\n  .hp-birdscreen-modal,\n  .custom-image-popup-overlay {\n    display: none;\n    position: fixed;\n    inset: 0;\n    z-index: 999999;\n    align-items: center;\n    justify-content: center;\n    padding: 20px;\n    box-sizing: border-box;\n    background: rgba(0, 0, 0, 0.85);\n  }\n\n  .hp-birdscreen-modal.hp-open,\n  .custom-image-popup-overlay.is-active {\n    display: flex !important;\n  }\n\n  .hp-birdscreen-popup,\n  .custom-image-popup-content {\n    position: relative;\n    width: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-popup {\n    width: calc(100% - 40px);\n    max-width: 900px;\n    padding: 20px;\n    border-radius: 8px;\n    overflow: auto;\n    box-sizing: border-box;\n  }\n\n  .hp-birdscreen-image {\n    display: block;\n    width: 100%;\n    height: auto;\n  }\n\n  .custom-image-popup-content img {\n    display: block;\n    width: auto;\n    height: auto;\n    max-width: calc(100vw - 40px);\n    max-height: 90vh;\n    background: #fff;\n  }\n\n  .hp-birdscreen-close,\n  .custom-image-popup-close {\n    position: absolute;\n    top: -12px;\n    right: -12px;\n    width: 36px;\n    height: 36px;\n    padding: 0;\n    border: none;\n    border-radius: 50%;\n    background: #fff;\n    color: #000;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 36px;\n    text-align: center;\n    cursor: pointer;\n    z-index: 2;\n  }\n\n  @media screen and (max-width: 990px) {\n    .custom-features-box ul {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n  }\n\n  @media screen and (max-width: 749px) {\n    .custom-features-box {\n      max-width: 100%;\n      width: 100%;\n      overflow-x: hidden;\n    }\n\n    .custom-features-details summary {\n      width: 100%;\n      max-width: 100%;\n      padding-right: 8px;\n    }\n\n    .custom-features-box ul {\n      grid-template-columns: 1fr;\n    }\n\n    .hp-birdscreen-modal,\n    .custom-image-popup-overlay {\n      padding: 16px;\n    }\n\n    .hp-birdscreen-popup {\n      width: calc(100% - 20px);\n      padding: 15px;\n    }\n\n    .custom-image-popup-content,\n    .custom-image-popup-content img {\n      max-width: calc(100vw - 32px);\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"custom-features-box\"\u003e\n\u003cp\u003eOur 30° Thinline Aluminum Louver Vent Exterior Air Grille for Walls, Gables \u0026amp; Crawlspaces is Weather-Resistant with a Flange Frame.\u003c\/p\u003e\n\u003cdetails class=\"custom-features-details\" open=\"\"\u003e\n\u003csummary\u003eFeatures\u003c\/summary\u003e\n\u003cdiv class=\"custom-features-content\"\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFixed 30° horizontal blades on 3\/4\" spacing\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eFully extruded aluminum blades and flange frame\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eSupports are hidden behind blades for a clean appearance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e \u003cbutton type=\"button\" class=\"hp-birdscreen-popup-link\"\u003e Bird screen \u003c\/button\u003e is standard or optional insect screen. \u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in 1\" standard dimension increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eCustom sizes manufactured up to 1\/16\" increments.\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eAvailable in durable powder coat finish standard\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003e73% free area for optimal performance\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cspan class=\"feature-bullet\"\u003e\u003c\/span\u003e \u003cstrong\u003eMounting available for PTAC\/ VTAC application\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cbutton type=\"button\" class=\"custom-spec-popup-link\"\u003e View Spec Sheet \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- BIRD SCREEN POPUP --\u003e\n\u003cdiv class=\"hp-birdscreen-modal\"\u003e\n\u003cdiv class=\"hp-birdscreen-popup\"\u003e\n\u003cbutton type=\"button\" class=\"hp-birdscreen-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/hvacpremium.com\/cdn\/shop\/files\/6w-x-6h-aluminum-exterior-gable-louver-vent-for-walls-crawlspace-weather-resistant-air-grille-with-screen-mesh-outer-dimensions-775w-x-775hspecial-weather-louve-534542_2048x.jpg?v=1743792952\" alt=\"Bird screen example\" class=\"hp-birdscreen-image\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPEC SHEET POPUP --\u003e\n\u003cdiv class=\"custom-image-popup-overlay\"\u003e\n\u003cdiv class=\"custom-image-popup-content\"\u003e\n\u003cbutton type=\"button\" class=\"custom-image-popup-close\"\u003e × \u003c\/button\u003e \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/HPLTL-30-FF_Specs.png?v=1785340956\" alt=\"Flange frame 30-degree aluminum exterior louver spec sheet\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function () {\n\n  var details = document.querySelector('.custom-features-details');\n\n  if (details) {\n    function setInitialFeaturesState() {\n      if (window.innerWidth \u003e 749) {\n        details.setAttribute('open', '');\n      } else {\n        details.removeAttribute('open');\n      }\n    }\n\n    setInitialFeaturesState();\n\n    var lastMobileState = window.innerWidth \u003c= 749;\n\n    window.addEventListener('resize', function () {\n      var isMobileNow = window.innerWidth \u003c= 749;\n\n      if (isMobileNow !== lastMobileState) {\n        lastMobileState = isMobileNow;\n        setInitialFeaturesState();\n      }\n    });\n  }\n\n  var birdPopup = document.querySelector('.hp-birdscreen-modal');\n  var specPopup = document.querySelector('.custom-image-popup-overlay');\n\n  if (birdPopup \u0026\u0026 birdPopup.parentNode !== document.body) {\n    document.body.appendChild(birdPopup);\n  }\n\n  if (specPopup \u0026\u0026 specPopup.parentNode !== document.body) {\n    document.body.appendChild(specPopup);\n  }\n\n  document.addEventListener('click', function (event) {\n    var birdOpenButton = event.target.closest('.hp-birdscreen-popup-link');\n    var birdCloseButton = event.target.closest('.hp-birdscreen-close');\n\n    var specOpenButton = event.target.closest('.custom-spec-popup-link');\n    var specCloseButton = event.target.closest('.custom-image-popup-close');\n\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (birdOpenButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeBirdPopup.classList.add('hp-open');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (birdCloseButton \u0026\u0026 activeBirdPopup) {\n      event.preventDefault();\n\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeBirdPopup \u0026\u0026\n      event.target === activeBirdPopup\n    ) {\n      activeBirdPopup.classList.remove('hp-open');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (specOpenButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n      event.stopPropagation();\n\n      activeSpecPopup.classList.add('is-active');\n      document.body.style.overflow = 'hidden';\n      return;\n    }\n\n    if (specCloseButton \u0026\u0026 activeSpecPopup) {\n      event.preventDefault();\n\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n      return;\n    }\n\n    if (\n      activeSpecPopup \u0026\u0026\n      event.target === activeSpecPopup\n    ) {\n      activeSpecPopup.classList.remove('is-active');\n      document.body.style.overflow = '';\n    }\n  });\n\n  document.addEventListener('keydown', function (event) {\n    var activeBirdPopup = document.querySelector('.hp-birdscreen-modal');\n    var activeSpecPopup = document.querySelector('.custom-image-popup-overlay');\n\n    if (event.key === 'Escape') {\n      if (activeBirdPopup) {\n        activeBirdPopup.classList.remove('hp-open');\n      }\n\n      if (activeSpecPopup) {\n        activeSpecPopup.classList.remove('is-active');\n      }\n\n      document.body.style.overflow = '';\n    }\n  });\n\n});\n\u003c\/script\u003e","brand":"HVAC Premium","offers":[{"title":"Default Title","offer_id":50351695134957,"sku":"HPLTL-30-FF","price":33.28,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0081\/8213\/6898\/files\/MILL_RAW_ALUMINUM___30_HPLTL-FF.png?v=1785265065"}],"url":"https:\/\/hvacpremium.com\/collections\/2-in-width-x-40-in-height.oembed","provider":"HVAC Premium","version":"1.0","type":"link"}