{"product_id":"hanahs-farmhouse-milk-glass-scalloped-shade-ceiling-light","title":"Hanahs Farmhouse Milk Glass Scalloped Shade Ceiling Light","description":"\u003cdiv class=\"ping-product-detail\" id=\"ppd-35622\"\u003e\n\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600\u0026display=swap');\n#ppd-35622{max-width:1200px;margin:0 auto;padding:8px 16px 40px;background:#fff;color:#000;font-family:'Poppins',sans-serif;line-height:2em;font-size:15px;letter-spacing:1px;}\n#ppd-35622 *,#ppd-35622 *::before,#ppd-35622 *::after{box-sizing:border-box;}\n#ppd-35622 img{display:block;width:100%;height:auto;border-radius:0;}\n#ppd-35622 .ppd-section{margin:0 0 4px;}\n#ppd-35622 .ppd-divider{border:0;border-top:0.5px solid rgba(122,122,122,.48);margin:0;padding:10px 0;}\n#ppd-35622 h2.ppd-title,#ppd-35622 h3.ppd-heading{text-align:center;font-family:'Poppins',sans-serif;font-weight:600;color:#000;margin:0;line-height:1em;}\n#ppd-35622 h2.ppd-title{font-size:25px;letter-spacing:1px;padding:16px 0 12px;}\n#ppd-35622 h3.ppd-heading{font-size:24px;letter-spacing:1.6px;line-height:1.3;padding:14px 0 10px;}\n#ppd-35622 .ppd-sub{text-align:center;color:#707070;font-size:15px;letter-spacing:1px;line-height:2em;margin:0 0 12px;}\n#ppd-35622 .ppd-intro{text-align:center;color:#707070;font-size:15px;letter-spacing:1px;line-height:2em;max-width:920px;margin:0 auto 16px;}\n#ppd-35622 ul.ppd-bullets{list-style:none;margin:0 0 16px;padding:0 10px;color:#000;font-size:15px;letter-spacing:1px;line-height:2em;}\n#ppd-35622 ul.ppd-bullets li{margin:0 0 4px;text-align:center;}\n#ppd-35622 ul.ppd-list{margin:0;padding:0 10px 0 26px;color:#000;font-size:14px;letter-spacing:1px;line-height:2em;}\n#ppd-35622 ul.ppd-list li{margin:0;}\n#ppd-35622 .ppd-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start;}\n#ppd-35622 .ppd-grid-2+.ppd-grid-2{margin-top:20px;}\n#ppd-35622 .ppd-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}\n#ppd-35622 .ppd-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}\n#ppd-35622 .ppd-grid-2.ppd-middle{align-items:center;}\n#ppd-35622 .ppd-spec{display:grid;grid-template-columns:1.15fr 1fr;gap:32px;align-items:center;max-width:1100px;margin:0 auto;}\n#ppd-35622 .ppd-cols{display:grid;gap:24px;align-items:center;}\n#ppd-35622 .ppd-cols-2{grid-template-columns:1fr 1fr;}\n#ppd-35622 .ppd-cols-3{grid-template-columns:1fr 1fr 1fr;}\n#ppd-35622 .ppd-cols-4{grid-template-columns:repeat(4,1fr);}\n#ppd-35622 .ppd-col\u003e*+*{margin-top:14px;}\n#ppd-35622 .ppd-col h4{margin:0;font-size:16px;font-weight:600;letter-spacing:1px;}\n#ppd-35622 .ppd-spec-media\u003e*+*{margin-top:16px;}\n#ppd-35622 .ppd-spec table{width:100%;border-collapse:collapse;font-size:14px;letter-spacing:1px;}\n#ppd-35622 .ppd-spec table td,#ppd-35622 .ppd-spec table th{border:1px solid #e3e3e3;padding:10px 14px;text-align:left;vertical-align:top;}\n#ppd-35622 .ppd-feature{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start;}\n#ppd-35622 .ppd-feature-col\u003e*{margin-bottom:16px;}\n#ppd-35622 .ppd-feature-col\u003e*:last-child{margin-bottom:0;}\n#ppd-35622 figure.ppd-figure{margin:0;}\n#ppd-35622 figure.ppd-figure figcaption{text-align:center;color:#707070;font-size:14px;letter-spacing:1px;padding-top:8px;}\n#ppd-35622 .ppd-hero-img{box-shadow:0 2px 14px rgba(0,0,0,.08);}\n#ppd-35622 .ppd-review{border:1px solid #eee;border-radius:8px;padding:16px;text-align:center;background:#fff;transition:box-shadow .25s,transform .25s;}\n#ppd-35622 .ppd-review:hover{box-shadow:0 6px 18px rgba(0,0,0,.08);transform:translateY(-2px);}\n#ppd-35622 .ppd-stars{color:#f6a623;font-size:15px;letter-spacing:2px;margin-bottom:10px;}\n#ppd-35622 .ppd-review img{aspect-ratio:4\/5;object-fit:cover;width:100%;border-radius:4px;}\n#ppd-35622 .ppd-review h4{margin:12px 0 6px;font-size:15px;font-weight:600;color:#000;letter-spacing:1px;}\n#ppd-35622 .ppd-review p{margin:0;color:#707070;font-size:14px;letter-spacing:1px;line-height:1.8;}\n#ppd-35622 .ppd-card{display:block;text-decoration:none;color:inherit;}\n#ppd-35622 .ppd-card img{transition:transform .3s,box-shadow .3s;}\n#ppd-35622 .ppd-card:hover img{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.12);}\n#ppd-35622 .ppd-card-label{text-align:center;font-size:14px;color:#707070;letter-spacing:1px;padding-top:8px;}\n#ppd-35622 .ppd-video{position:relative;display:block;width:100%;aspect-ratio:16\/10;border:0;border-radius:8px;overflow:hidden;cursor:pointer;background:linear-gradient(135deg,#3d3a36,#191817);padding:0;}\n#ppd-35622 .ppd-video .ppd-play{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff;font-size:14px;}\n#ppd-35622 .ppd-video .ppd-play::before{content:\"\";width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.16);border:2px solid rgba(255,255,255,.85);background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M8 5v14l11-7z'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:55% 50%;background-size:26px;transition:transform .2s;}\n#ppd-35622 .ppd-video:hover .ppd-play::before{transform:scale(1.08);}\n#ppd-35622 .ppd-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}\n#ppd-35622 .ppd-carousel{position:relative;--pv:4;}\n#ppd-35622 .ppd-viewport{overflow:hidden;}\n#ppd-35622 .ppd-track{display:flex;margin:0 -8px;transition:transform .45s ease;}\n#ppd-35622 .ppd-slide{flex:0 0 calc(100% \/ var(--pv));padding:0 8px;min-width:0;}\n#ppd-35622 .ppd-slide img+img{margin-top:16px;}\n#ppd-35622 .ppd-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 1px 6px rgba(0,0,0,.18);color:#333;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,background .2s;}\n#ppd-35622 .ppd-arrow:hover{background:#fff;}\n#ppd-35622 .ppd-arrow[disabled]{opacity:.35;cursor:default;}\n#ppd-35622 .ppd-arrow-prev{left:14px;}\n#ppd-35622 .ppd-arrow-next{right:14px;}\n#ppd-35622 .ppd-arrow svg{width:18px;height:18px;}\n#ppd-35622 .ppd-dots{display:flex;justify-content:center;gap:8px;padding:14px 0 0;}\n#ppd-35622 .ppd-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#cfcfcf;cursor:pointer;transition:background .2s,transform .2s;}\n#ppd-35622 .ppd-dots button::before{content:none;}\n#ppd-35622 .ppd-dots button.is-active{background:#1c1c1c;transform:scale(1.15);}\n#ppd-35622 .ppd-reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease;}\n#ppd-35622 .ppd-reveal.is-visible{opacity:1;transform:none;}\n@media (max-width:1024px){\n  #ppd-35622 h3.ppd-heading{font-size:22px;letter-spacing:2.5px;line-height:4em;}\n  #ppd-35622 .ppd-grid-4{grid-template-columns:repeat(2,1fr);}\n}\n@media (max-width:767px){\n  #ppd-35622{padding:8px 12px 28px;font-size:14px;line-height:1.9em;letter-spacing:1px;}\n  #ppd-35622 h2.ppd-title{font-size:20px;letter-spacing:1px;padding:12px 0 10px;}\n  #ppd-35622 h3.ppd-heading{font-size:20px;letter-spacing:2.1px;line-height:2.3em;}\n  #ppd-35622 ul.ppd-list{line-height:1.9em;font-size:13px;}\n  #ppd-35622 ul.ppd-bullets{text-align:left;padding:0 4px;}\n  #ppd-35622 ul.ppd-bullets li{padding-left:14px;text-indent:-14px;}\n  #ppd-35622 .ppd-grid-2,#ppd-35622 .ppd-grid-3,#ppd-35622 .ppd-grid-4,#ppd-35622 .ppd-spec,#ppd-35622 .ppd-feature,#ppd-35622 .ppd-cols-2,#ppd-35622 .ppd-cols-3,#ppd-35622 .ppd-cols-4{grid-template-columns:1fr;gap:16px;}\n  #ppd-35622 .ppd-divider{padding:8px 0;}\n  #ppd-35622 .ppd-arrow{width:32px;height:32px;}\n  #ppd-35622 .ppd-arrow-prev{left:8px;}\n  #ppd-35622 .ppd-arrow-next{right:8px;}\n}\n@media (min-width:1025px){\n  #ppd-35622 .ppd-hide-desktop{display:none !important;}\n}\n@media (min-width:768px) and (max-width:1024px){\n  #ppd-35622 .ppd-hide-tablet{display:none !important;}\n}\n@media (max-width:767px){\n  #ppd-35622 .ppd-hide-phone{display:none !important;}\n}\n@media (prefers-reduced-motion:reduce){\n  #ppd-35622 .ppd-track{transition:none;}\n  #ppd-35622 .ppd-reveal{opacity:1;transform:none;transition:none;}\n}\n\u003c\/style\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003ch2 class=\"ppd-title\"\u003eFarmhouse Milk Glass Scalloped Shade Ceiling Light\u003c\/h2\u003e\n\u003cp class=\"ppd-intro\" style=\"text-align: center;\"\u003eEnhance your ceiling with timeless charm via the Farmhouse Milk Glass Scalloped Shade Ceiling Light. Featuring a contoured milk glass shade with scalloped edges and a brass-finish base, it blends vintage farmhouse and modern styles. Made of opal glass and durable metal, it's perfect for low ceilings or small spaces, adding warmth and character to your decor.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003chr class=\"ppd-divider\"\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003cdiv class=\"ppd-cols ppd-cols-2\"\u003e\n\u003cdiv class=\"ppd-col\"\u003e\n\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/8501bc74b3476d9b.jpg\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"ppd-col\"\u003e\n\u003cdiv\u003e\n\u003ctable border=\"2\" class=\"aligncenter\" style=\"width: 532.453px; height: 288px;\"\u003e\n\u003ctbody\u003e\n\u003ctr style=\"height: 40px;\"\u003e\n\u003ctd style=\"width: 205px; height: 40px; text-align: center;\"\u003e\u003cstrong\u003eMaterial\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 40px;\"\u003e\n\u003cp\u003eMetal, Glass\u003c\/p\u003e\n\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003eFixture Width W\/ Shade\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003e11-3\/4\" or 16\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003eLength\/Height W\/ Shade\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003e12-1\/4\" or 14-1\/4\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003eCanopy\/Base Diameter\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003e5\"\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003eMax Wattage per Socket\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003e60 W\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27.6563px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27.6563px; text-align: center;\"\u003e\u003cstrong\u003eBulb Base\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27.6563px;\"\u003eE26(not included.)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003eNumber of Lights\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003e3\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003ePower Source\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003eHardwired\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr style=\"height: 27px;\"\u003e\n\u003ctd style=\"width: 205px; height: 27px; text-align: center;\"\u003e\u003cstrong\u003eControl Method\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd style=\"width: 317.453px; height: 27px;\"\u003ePush button switch(Not Included)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp style=\"text-align: center;\"\u003e \u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003chr class=\"ppd-divider\"\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003ch3 class=\"ppd-heading\"\u003eDetails\u003c\/h3\u003e\n\u003c\/section\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003cdiv class=\"ppd-grid-3\"\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"White fan-shaped glass lampshade\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/fb03617a33630780.jpg\"\u003e\u003cfigcaption\u003eWhite fan-shaped glass lampshade\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"High quality metal canopy\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/f6df9b7908f2279a.jpg\"\u003e\u003cfigcaption\u003eHigh quality metal canopy\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"Exquisite bottom decor\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/259f56ffee61ff20.jpg\"\u003e\u003cfigcaption\u003eExquisite bottom decor\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003chr class=\"ppd-divider\"\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003ch3 class=\"ppd-heading\"\u003eScene Matching\u003c\/h3\u003e\n\u003c\/section\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003cdiv class=\"ppd-carousel\" data-lg=\"3\" data-md=\"2\" data-sm=\"1\"\u003e\n\u003cdiv class=\"ppd-viewport\"\u003e\n\u003cdiv class=\"ppd-track\"\u003e\n\u003cdiv class=\"ppd-slide\"\u003e\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/30dadafd3627edbd.jpg\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"ppd-slide\"\u003e\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/9fd1aaf2dd183052.jpg\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"ppd-slide\"\u003e\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/28a7358cea2f493c.jpg\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"ppd-slide\"\u003e\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/6ecff692de4140c2.jpg\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"ppd-slide\"\u003e\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/d43d4060e5d4fcd7.jpg\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"ppd-slide\"\u003e\u003cimg alt=\"\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/39098f44c2f4686b.jpg\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003chr class=\"ppd-divider\"\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003ch3 class=\"ppd-heading\"\u003eAvailable Choice\u003c\/h3\u003e\n\u003c\/section\u003e\n\u003csection class=\"ppd-section ppd-reveal\"\u003e\n\u003cdiv class=\"ppd-grid-4\"\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"Brushed Nickel\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/5dd6b8bec92e190c.jpg\"\u003e\u003cfigcaption\u003eBrushed Nickel\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"Heritage Brass\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/10f1e40dcdead5a1.jpg\"\u003e\u003cfigcaption\u003eHeritage Brass\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"Lacquered Brass\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/ce7388b2e8f2f5c5.jpg\"\u003e\u003cfigcaption\u003eLacquered Brass\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"Oil-Rubbed Bronze\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/8283c7c246c8ffc9.jpg\"\u003e\u003cfigcaption\u003eOil-Rubbed Bronze\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003cfigure class=\"ppd-figure\"\u003e\u003cimg alt=\"Polished Nickel\" loading=\"lazy\" src=\"https:\/\/cdn.freepicturecdn.com\/blockandreview\/product-body-html\/4136174\/3a7c71e7d5cf0fbf.jpg\"\u003e\u003cfigcaption\u003ePolished Nickel\u003c\/figcaption\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cscript\u003e\n(function(){\n  var root=document.getElementById('ppd-35622');\n  if(!root||root.dataset.ppdInit)return;\n  root.dataset.ppdInit='1';\n  var reduced=window.matchMedia\u0026\u0026window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n  function initCarousel(el){\n    var track=el.querySelector('.ppd-track');\n    var slides=track.children.length;\n    var viewport=el.querySelector('.ppd-viewport');\n    var prev=document.createElement('button');\n    prev.type='button';prev.className='ppd-arrow ppd-arrow-prev';prev.setAttribute('aria-label','Previous slide');\n    prev.innerHTML='\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\u003e\u003cpath d=\"M15 18l-6-6 6-6\"\/\u003e\u003c\/svg\u003e';\n    var next=prev.cloneNode(true);\n    next.className='ppd-arrow ppd-arrow-next';next.setAttribute('aria-label','Next slide');\n    next.querySelector('path').setAttribute('d','M9 6l6 6-6 6');\n    var dots=document.createElement('div');dots.className='ppd-dots';\n    el.appendChild(prev);el.appendChild(next);el.appendChild(dots);\n    var index=0,pv=1,pages=1,timer=null;\n    function perView(){\n      var w=window.innerWidth;\n      if(w\u003e=1025)return parseInt(el.dataset.lg,10)||4;\n      if(w\u003e=768)return parseInt(el.dataset.md,10)||2;\n      return parseInt(el.dataset.sm,10)||1;\n    }\n    function layout(){\n      pv=perView();\n      el.style.setProperty('--pv',pv);\n      pages=Math.max(1,Math.ceil(slides\/pv));\n      if(index\u003epages-1)index=pages-1;\n      dots.innerHTML='';\n      for(var i=0;i\u003cpages;i++){\n        var b=document.createElement('button');\n        b.type='button';b.setAttribute('aria-label','Go to slide '+(i+1));\n        (function(n){b.addEventListener('click',function(){go(n);restart();});})(i);\n        dots.appendChild(b);\n      }\n      var showNav=pages\u003e1;\n      prev.style.display=showNav?'':'none';\n      next.style.display=showNav?'':'none';\n      dots.style.display=showNav?'':'none';\n      go(index);\n    }\n    function go(n){\n      index=Math.max(0,Math.min(n,pages-1));\n      var slideW=viewport.clientWidth\/pv;\n      var offset=Math.min(index*pv,slides-pv);\n      track.style.transform='translate3d(-'+(offset*slideW)+'px,0,0)';\n      prev.disabled=index===0;\n      next.disabled=index===pages-1;\n      for(var i=0;i\u003cdots.children.length;i++)\n        dots.children[i].classList.toggle('is-active',i===index);\n    }\n    function restart(){\n      if(timer){clearInterval(timer);timer=null;}\n      if(reduced||pages\u003c2)return;\n      timer=setInterval(function(){go(index+1\u003epages-1?0:index+1);},5000);\n    }\n    prev.addEventListener('click',function(){go(index-1);restart();});\n    next.addEventListener('click',function(){go(index+1);restart();});\n    el.addEventListener('mouseenter',function(){if(timer){clearInterval(timer);timer=null;}});\n    el.addEventListener('mouseleave',restart);\n    el.addEventListener('touchstart',function(){if(timer){clearInterval(timer);timer=null;}},{passive:true});\n    var startX=0;\n    viewport.addEventListener('touchstart',function(e){startX=e.touches[0].clientX;},{passive:true});\n    viewport.addEventListener('touchend',function(e){\n      var dx=e.changedTouches[0].clientX-startX;\n      if(Math.abs(dx)\u003e40)go(index+(dx\u003c0?1:-1));\n      restart();\n    },{passive:true});\n    window.addEventListener('resize',layout);\n    layout();restart();\n  }\n\n  var carousels=root.querySelectorAll('.ppd-carousel');\n  for(var i=0;i\u003ccarousels.length;i++)initCarousel(carousels[i]);\n\n  var videos=root.querySelectorAll('.ppd-video');\n  for(var v=0;v\u003cvideos.length;v++){\n    (function(btn){\n      btn.addEventListener('click',function(){\n        if(btn.dataset.loaded)return;\n        btn.dataset.loaded='1';\n        var f=document.createElement('iframe');\n        f.src=btn.dataset.src;\n        f.allow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture';\n        f.allowFullscreen=true;\n        btn.innerHTML='';btn.appendChild(f);btn.style.cursor='default';\n      });\n    })(videos[v]);\n  }\n\n  if(!reduced\u0026\u0026'IntersectionObserver' in window){\n    var io=new IntersectionObserver(function(entries){\n      entries.forEach(function(en){\n        if(en.isIntersecting){en.target.classList.add('is-visible');io.unobserve(en.target);}\n      });\n    },{threshold:.08});\n    var reveals=root.querySelectorAll('.ppd-reveal');\n    for(var j=0;j\u003creveals.length;j++)io.observe(reveals[j]);\n  }else{\n    var all=root.querySelectorAll('.ppd-reveal');\n    for(var k=0;k\u003call.length;k++)all[k].classList.add('is-visible');\n  }\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e","brand":"FLOSSLO","offers":[{"title":"Small \/ Lacquered Polished Brass","offer_id":48955483422976,"sku":"41539","price":264.96,"currency_code":"USD","in_stock":true},{"title":"Large \/ Lacquered Polished Brass","offer_id":48955483455744,"sku":"41540","price":454.4,"currency_code":"USD","in_stock":true},{"title":"Small \/ Oil-Rubbed Bronze","offer_id":48955483488512,"sku":"41541","price":264.96,"currency_code":"USD","in_stock":true},{"title":"Large \/ Oil-Rubbed Bronze","offer_id":48955483521280,"sku":"41542","price":454.4,"currency_code":"USD","in_stock":true},{"title":"Small \/ Polished Nickel","offer_id":48955483554048,"sku":"41543","price":264.96,"currency_code":"USD","in_stock":true},{"title":"Large \/ Polished Nickel","offer_id":48955483586816,"sku":"41544","price":454.4,"currency_code":"USD","in_stock":true},{"title":"Small \/ Brushed Nickel","offer_id":48955483619584,"sku":"41545","price":264.96,"currency_code":"USD","in_stock":true},{"title":"Large \/ Brushed Nickel","offer_id":48955483652352,"sku":"41546","price":454.4,"currency_code":"USD","in_stock":true},{"title":"Small \/ Heritage Brass","offer_id":48955483685120,"sku":"41549","price":264.96,"currency_code":"USD","in_stock":true},{"title":"Large \/ Heritage Brass","offer_id":48955483717888,"sku":"41550","price":454.4,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0831\/8291\/1744\/files\/dcf331ffcc13cf7be454b889f5a39f2d.jpg?v=1783418087","url":"https:\/\/flosslo.com\/products\/hanahs-farmhouse-milk-glass-scalloped-shade-ceiling-light","provider":"flosslo.com","version":"1.0","type":"link"}