{"title":"Kit binario","description":null,"products":[{"product_id":"kit-binario-220v-nero","title":"Kit Binario 220V trifase — Nero","description":"\u003cstyle\u003e\n#kitb-likht{color:#141414;margin:0}\n#kitb-likht *{box-sizing:border-box}\n.kitb-eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#8a8a8a;margin-bottom:8px}\n.kitb-h2{font-size:26px;line-height:1.15;margin:0 0 8px;font-weight:600}\n.kitb-sub{color:#5c5c5c;max-width:62ch;margin:0 0 6px;font-size:15px;line-height:1.5}\n.kitb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:26px;align-items:start}\n.kitb-b{margin-bottom:26px}\n.kitb-q{font-weight:600;font-size:16px;margin-bottom:11px;display:flex;align-items:center;gap:10px}\n.kitb-q span{width:23px;height:23px;border-radius:50%;background:#141414;color:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}\n.kitb-opts{display:flex;flex-wrap:wrap;gap:9px}\n.kitb-opt{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:11px 15px;cursor:pointer;font:inherit;font-size:15px;text-align:left;line-height:1.3;transition:border-color .15s,box-shadow .15s;color:#141414}\n.kitb-opt small{display:block;color:#8a8a8a;font-size:12px;margin-top:3px}\n.kitb-opt:hover{border-color:#b0b0b0}\n.kitb-opt.on{border-color:#141414;box-shadow:inset 0 0 0 1px #141414}\n.kitb-opt.kitb-off{opacity:.35;pointer-events:none}\n.kitb-len .kitb-opt{min-width:70px;text-align:center}\n.kitb-sub2{font-size:14px;color:#5c5c5c;margin:14px 0 9px}\n.kitb-hide{display:none}\n.kitb-mods{display:grid;gap:8px}\n.kitb-mod{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:10px 13px}\n.kitb-mi b{display:block;font-size:15px}\n.kitb-mi small{color:#8a8a8a;font-size:12.5px}\n.kitb-qty{display:flex;align-items:center;gap:4px;flex:0 0 auto}\n.kitb-qty button{width:30px;height:30px;border:1px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;color:#141414;padding:0}\n.kitb-qty button:hover{border-color:#141414}\n.kitb-qty span{min-width:26px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}\n.kitb-check{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:12px 13px;cursor:pointer;font-size:15px}\n.kitb-check input{width:17px;height:17px;flex:0 0 auto}\n.kitb-card{position:sticky;top:24px;background:#fafafa;border:1px solid #e6e6e6;border-radius:14px;padding:20px}\n.kitb-r{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:#5c5c5c;padding:5px 0;border-bottom:1px dashed #e6e6e6}\n.kitb-r i{font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap}\n.kitb-pot{margin:14px 0 4px;font-size:13.5px;color:#8a8a8a}\n.kitb-pot.kitb-ok{color:#2c7a4b}\n.kitb-pot.kitb-over{color:#b3261e}\n.kitb-tot{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 14px;padding-top:12px;border-top:1px solid #e0e0e0}\n.kitb-tot b{font-size:25px;font-variant-numeric:tabular-nums}\n.kitb-cta{width:100%;background:#141414;color:#fff;border:0;border-radius:10px;padding:14px 18px;font:inherit;font-weight:600;cursor:pointer}\n.kitb-cta:hover{background:#000}\n.kitb-cta:disabled{background:#c9c9c9;cursor:not-allowed}\n.kitb-msg{font-size:13px;margin-top:9px;color:#5c5c5c;min-height:1em}\n.kitb-msg.kitb-err{color:#b3261e}\n.kitb-safe{font-size:12.5px;color:#8a8a8a;margin:12px 0 0;line-height:1.45}\n\u003c\/style\u003e\n\n\u003cdiv id=\"kitb-likht\"\u003e\n  \u003cdiv class=\"kitb-eyebrow\"\u003eConfiguratore\u003c\/div\u003e\n  \u003ch2 class=\"kitb-h2\"\u003eKit Binario 220V trifase — Nero\u003c\/h2\u003e\n  \u003cp class=\"kitb-sub\"\u003eIl binario trifase va a 220V: \u003cstrong\u003enessun alimentatore\u003c\/strong\u003e, si collega direttamente alla rete. Scegli i metri e le luci: il prezzo si aggiorna mentre scegli e ti arriva tutto già abbinato, pronto da montare.\u003c\/p\u003e\n\n  \u003cdiv class=\"kitb-grid\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e1\u003c\/span\u003e Quanti metri di binario?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts kitb-len\" data-el=\"lung\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"2\"\u003e2 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"4\"\u003e4 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"6\"\u003e6 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"8\"\u003e8 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"10\"\u003e10 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"12\"\u003e12 m\u003c\/button\u003e\n        \u003c\/div\u003e\n        \u003cp class=\"kitb-sub2\"\u003eIl binario si vende in barre da 2 m ed è sezionabile: una giunzione ogni 2 metri, più la testata di alimentazione da un capo e il tappo di chiusura dall'altro. Li mettiamo noi nel kit.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e2\u003c\/span\u003e Quali faretti monti?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-mods\" data-el=\"mods\"\u003e\u003c\/div\u003e\n        \u003cp class=\"kitb-sub2\" data-el=\"cnt\"\u003e\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-card\"\u003e\n        \u003cdiv data-el=\"dist\"\u003e\u003c\/div\u003e\n        \u003cp class=\"kitb-pot\" data-el=\"pot\"\u003e\u003c\/p\u003e\n        \u003cdiv class=\"kitb-tot\"\u003e\n\u003cspan\u003eTotale\u003c\/span\u003e\u003cb data-el=\"tot\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cbutton type=\"button\" class=\"kitb-cta\" data-el=\"add\"\u003eAggiungi al carrello\u003c\/button\u003e\n        \u003cp class=\"kitb-msg\" data-el=\"msg\"\u003e\u003c\/p\u003e\n        \u003cp class=\"kitb-safe\"\u003ePrezzi IVA inclusa. Faretti 3000K (luce calda); 4000K su richiesta a info@likht.it. Prima di spedire ricontrolliamo tutto: compatibilità, misure e quantità. Se qualcosa non torna ti chiamiamo.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  function boot(){\n    var root = document.getElementById('kitb-likht');\n    if(!root || root.dataset.on) return;\n    root.dataset.on = '1';\n\n    \/* i prezzi NON sono scritti qui: si leggono dalle schede prodotto del sito *\/\n    var COMP = {\n      binario: 'gea-gbin02',\n      giunto:  'gea-gbic02',\n      testata: 'gea-gbit04',\n      tappo:   'gea-gbit02'\n    };\n    var NOMI = {\n      binario:'Binario trifase 2 m',\n      giunto:'Giunzione lineare',\n      testata:'Testata di alimentazione 220V',\n      tappo:'Tappo di chiusura'\n    };\n\n    var MODULI = [\n      {h:'gea-gfa1671c',  n:'Faretto orientabile', d:'fascio 40\\u00b0 \\u00b7 3000K', w:9},\n      {h:'gea-gfa1673c', n:'Faretto orientabile', d:'fascio 40\\u00b0 \\u00b7 3000K', w:15}\n    ];\n\n    var MAX_FARETTI = 20;\n    var METRI_BARRA = 2;\n\n    var P = {}, VID = {};\n    var S = { lung:2, qta:{} };\n    MODULI.forEach(function(m){ S.qta[m.h] = 0; });\n\n    function eur(n){ return n.toFixed(2).replace('.', ',') + ' \\u20ac'; }\n    function el(k){ return root.querySelector('[data-el=\"' + k + '\"]'); }\n\n    function barre(){ return Math.ceil(S.lung \/ METRI_BARRA); }\n\n    \/* una testata di alimentazione da un capo, un tappo dall'altro:\n       senza questi due il binario non funziona ed e' pericoloso *\/\n    function distinta(){\n      var n = barre(), d = [{k:'binario', q:n}];\n      if(n \u003e 1) d.push({k:'giunto', q:n - 1});\n      d.push({k:'testata', q:1});\n      d.push({k:'tappo', q:1});\n      return d;\n    }\n\n    function nFaretti(){\n      var t = 0;\n      MODULI.forEach(function(m){ t += S.qta[m.h]; });\n      return t;\n    }\n    function prezzoDi(h){ return (h \u0026\u0026 typeof P[h] === 'number') ? P[h] : null; }\n\n    function totale(){\n      var t = 0, mancante = false;\n      distinta().forEach(function(r){\n        var p = prezzoDi(COMP[r.k]);\n        if(p === null) mancante = true; else t += p * r.q;\n      });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          var p = prezzoDi(m.h);\n          if(p === null) mancante = true; else t += p * S.qta[m.h];\n        }\n      });\n      return mancante ? null : t;\n    }\n\n    function disegnaModuli(){\n      var box = el('mods');\n      box.innerHTML = MODULI.map(function(m){\n        var p = prezzoDi(m.h);\n        return '\u003cdiv class=\"kitb-mod\" data-h=\"' + m.h + '\"\u003e' +\n          '\u003cspan class=\"kitb-mi\"\u003e\u003cb\u003e' + m.n + ' ' + m.w + 'W\u003c\/b\u003e' +\n          '\u003csmall\u003e' + m.d + '\u003c\/small\u003e\u003c\/span\u003e' +\n          '\u003cspan class=\"kitb-qty\"\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"-1\" aria-label=\"Uno in meno\"\u003e\\u2013\u003c\/button\u003e' +\n            '\u003cspan data-q=\"' + m.h + '\"\u003e' + S.qta[m.h] + '\u003c\/span\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"1\" aria-label=\"Uno in piu\"\u003e+\u003c\/button\u003e' +\n          '\u003c\/span\u003e\u003c\/div\u003e';\n      }).join('');\n      box.querySelectorAll('button').forEach(function(b){\n        b.addEventListener('click', function(){\n          var h = b.closest('.kitb-mod').getAttribute('data-h');\n          var d = parseInt(b.getAttribute('data-d'), 10);\n          if(d \u003e 0 \u0026\u0026 nFaretti() \u003e= MAX_FARETTI) return;\n          S.qta[h] = Math.max(0, S.qta[h] + d);\n          render();\n        });\n      });\n    }\n\n    function render(){\n      el('lung').querySelectorAll('button').forEach(function(b){\n        b.className = 'kitb-opt' + (parseInt(b.getAttribute('data-v'), 10) === S.lung ? ' on' : '');\n      });\n\n      MODULI.forEach(function(m){\n        var q = root.querySelector('[data-q=\"' + m.h + '\"]');\n        if(q) q.textContent = S.qta[m.h];\n      });\n\n      var righe = [];\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eLunghezza\u003c\/span\u003e\u003ci\u003e' + S.lung + ' m\u003c\/i\u003e\u003c\/div\u003e');\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003e' + m.n + ' ' + m.w + 'W\u003c\/span\u003e\u003ci\u003e\\u00d7 ' + S.qta[m.h] + '\u003c\/i\u003e\u003c\/div\u003e');\n        }\n      });\n      el('dist').innerHTML = righe.join('');\n\n      var n = nFaretti(), pot = el('pot');\n      el('cnt').textContent = n === 0 ? 'Nessun faretto selezionato.'\n        : n + ' faretti su ' + MAX_FARETTI + ' selezionabili.' +\n          (n \u003e= MAX_FARETTI ? ' Per un binario con pi\\u00f9 faretti scrivici a info@likht.it.' : '');\n      if(n === 0){ pot.className = 'kitb-pot'; pot.textContent = ''; }\n      else {\n        pot.className = 'kitb-pot kitb-ok';\n        pot.textContent = 'Binario trifase 220V: niente alimentatore, va diretto a rete.';\n      }\n\n      var t = totale();\n      el('tot').textContent = t === null ? '\\u2014' : eur(t);\n      el('add').disabled = (t === null);\n    }\n\n    el('lung').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.lung = parseInt(b.getAttribute('data-v'), 10); render(); });\n    });\n\n    function carica(){\n      var tutti = MODULI.map(function(m){ return m.h; });\n      Object.keys(COMP).forEach(function(k){ tutti.push(COMP[k]); });\n      return Promise.all(tutti.map(function(h){\n        return fetch('\/products\/' + h + '.js')\n          .then(function(r){ return r.ok ? r.json() : null; })\n          .then(function(p){\n            if(p \u0026\u0026 p.variants \u0026\u0026 p.variants[0]){\n              VID[h] = p.variants[0].id;\n              P[h] = p.variants[0].price \/ 100;\n            }\n          })\n          .catch(function(){});\n      }));\n    }\n\n    el('add').addEventListener('click', function(){\n      var righe = distinta().map(function(r){ return {h:COMP[r.k], q:r.q, n:NOMI[r.k]}; });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0) righe.push({h:m.h, q:S.qta[m.h], n:m.n + ' ' + m.w + 'W'});\n      });\n      var mancanti = righe.filter(function(r){ return !VID[r.h]; });\n      if(mancanti.length){\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Componente non disponibile: ' + mancanti[0].n + '. Scrivici e lo sistemiamo subito.';\n        return;\n      }\n      var et = S.lung + ' m \\u00b7 nero \\u00b7 3000K';\n      var items = righe.map(function(r){\n        return { id: VID[r.h], quantity: r.q, properties: { 'Kit binario 220V': et } };\n      });\n      el('add').disabled = true;\n      el('msg').className = 'kitb-msg';\n      el('msg').textContent = 'Aggiungo al carrello\\u2026';\n      fetch('\/cart\/add.js', {\n        method:'POST', headers:{'Content-Type':'application\/json'},\n        body: JSON.stringify({ items: items })\n      })\n      .then(function(r){ return r.json().then(function(j){ return {ok:r.ok, j:j}; }); })\n      .then(function(res){\n        el('add').disabled = false;\n        if(res.ok){\n          el('msg').className = 'kitb-msg';\n          el('msg').textContent = 'Kit aggiunto al carrello.';\n          fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(c){\n            var b = document.querySelectorAll('.cart-count-bubble span:first-child');\n            for(var i = 0; i \u003c b.length; i++) b[i].textContent = c.item_count;\n          }).catch(function(){});\n        } else {\n          el('msg').className = 'kitb-msg kitb-err';\n          el('msg').textContent = (res.j \u0026\u0026 res.j.description) || 'Non sono riuscito ad aggiungerlo. Riprova.';\n        }\n      })\n      .catch(function(){\n        el('add').disabled = false;\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Non sono riuscito ad aggiungerlo. Riprova.';\n      });\n    });\n\n    \/* il configuratore vive nella descrizione, che il tema stampa sotto i bottoni\n       di acquisto: lo risaliamo sopra il modulo d'acquisto e nascondiamo prezzo e\n       bottone nativi (qui si compra dal configuratore) *\/\n    function spostaSopraCarrello(){\n      if(root.dataset.su) return;\n      var anc = null, s = ['product-form','.product-form','.product-form__buttons','.shopify-payment-button'];\n      for(var i = 0; i \u003c s.length \u0026\u0026 !anc; i++){\n        var e = document.querySelector(s[i]);\n        if(e \u0026\u0026 e.parentNode \u0026\u0026 !root.contains(e)) anc = e;\n      }\n      if(!anc) return;\n      anc.parentNode.insertBefore(root, anc);\n      root.dataset.su = '1';\n      var box = anc.closest('.product__info-container') || anc.parentNode;\n      \/* qui si compra dal configuratore: via prezzo, quantita' e i menu' delle\n         vecchie varianti (Lunghezza \/ Faretti), che confondono e basta *\/\n      box.querySelectorAll('product-form, .product-form, .price, .product__tax, noscript, ' +\n                           '.product-form__quantity, .quantity__label, quantity-input, .quantity, ' +\n                           'variant-selects, variant-radios, .product-form__input')\n         .forEach(function(n){ if(!root.contains(n)) n.style.display = 'none'; });\n    }\n\n    disegnaModuli();\n    render();\n    spostaSopraCarrello();\n    carica().then(function(){ disegnaModuli(); render(); spostaSopraCarrello(); });\n  }\n\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n})();\n\u003c\/script\u003e\n","brand":"Likht","offers":[{"title":"1-2 m \/ Senza faretti","offer_id":56401703469396,"sku":"KITBIN2202M-N-X0","price":71.85,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ Senza faretti","offer_id":56401703698772,"sku":"KITBIN2204M-N-X0","price":148.95,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ Senza faretti","offer_id":56401704124756,"sku":"KITBIN2206M-N-X0","price":226.05,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 1 faretto 9W","offer_id":56411935637844,"sku":"KITBIN2202M-N-9Wx01","price":140.17,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 2 faretti 9W","offer_id":56411935670612,"sku":"KITBIN2202M-N-9Wx02","price":208.49,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 3 faretti 9W","offer_id":56401703502164,"sku":"KITBIN2202M-N-9Wx03","price":276.81,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 4 faretti 9W","offer_id":56401703534932,"sku":"KITBIN2202M-N-9Wx04","price":345.13,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 5 faretti 9W","offer_id":56411935703380,"sku":"KITBIN2202M-N-9Wx05","price":413.45,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 6 faretti 9W","offer_id":56401703567700,"sku":"KITBIN2202M-N-9Wx06","price":481.77,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 7 faretti 9W","offer_id":56411935736148,"sku":"KITBIN2202M-N-9Wx07","price":550.09,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 8 faretti 9W","offer_id":56411935768916,"sku":"KITBIN2202M-N-9Wx08","price":618.41,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 9 faretti 9W","offer_id":56411935801684,"sku":"KITBIN2202M-N-9Wx09","price":686.73,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 10 faretti 9W","offer_id":56411935834452,"sku":"KITBIN2202M-N-9Wx10","price":755.05,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 11 faretti 9W","offer_id":56411935867220,"sku":"KITBIN2202M-N-9Wx11","price":823.37,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 12 faretti 9W","offer_id":56411935899988,"sku":"KITBIN2202M-N-9Wx12","price":891.69,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 13 faretti 9W","offer_id":56411935932756,"sku":"KITBIN2202M-N-9Wx13","price":960.01,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 14 faretti 9W","offer_id":56411935965524,"sku":"KITBIN2202M-N-9Wx14","price":1028.33,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 15 faretti 9W","offer_id":56411935998292,"sku":"KITBIN2202M-N-9Wx15","price":1096.65,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 16 faretti 9W","offer_id":56411936031060,"sku":"KITBIN2202M-N-9Wx16","price":1164.97,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 17 faretti 9W","offer_id":56411936063828,"sku":"KITBIN2202M-N-9Wx17","price":1233.29,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 18 faretti 9W","offer_id":56411936096596,"sku":"KITBIN2202M-N-9Wx18","price":1301.61,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 19 faretti 9W","offer_id":56411936129364,"sku":"KITBIN2202M-N-9Wx19","price":1369.93,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 20 faretti 9W","offer_id":56411936162132,"sku":"KITBIN2202M-N-9Wx20","price":1438.25,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 1 faretto 15W","offer_id":56411936194900,"sku":"KITBIN2202M-N-15Wx01","price":154.81,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 2 faretti 15W","offer_id":56411936227668,"sku":"KITBIN2202M-N-15Wx02","price":237.77,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 3 faretti 15W","offer_id":56401703600468,"sku":"KITBIN2202M-N-15Wx03","price":320.73,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 4 faretti 15W","offer_id":56401703633236,"sku":"KITBIN2202M-N-15Wx04","price":403.69,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 5 faretti 15W","offer_id":56411936260436,"sku":"KITBIN2202M-N-15Wx05","price":486.65,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 6 faretti 15W","offer_id":56401703666004,"sku":"KITBIN2202M-N-15Wx06","price":569.61,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 7 faretti 15W","offer_id":56411936293204,"sku":"KITBIN2202M-N-15Wx07","price":652.57,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 8 faretti 15W","offer_id":56411936325972,"sku":"KITBIN2202M-N-15Wx08","price":735.53,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 9 faretti 15W","offer_id":56411936358740,"sku":"KITBIN2202M-N-15Wx09","price":818.49,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 10 faretti 15W","offer_id":56411936391508,"sku":"KITBIN2202M-N-15Wx10","price":901.45,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 11 faretti 15W","offer_id":56411936424276,"sku":"KITBIN2202M-N-15Wx11","price":984.41,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 12 faretti 15W","offer_id":56411936457044,"sku":"KITBIN2202M-N-15Wx12","price":1067.37,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 13 faretti 15W","offer_id":56411936489812,"sku":"KITBIN2202M-N-15Wx13","price":1150.33,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 14 faretti 15W","offer_id":56411936522580,"sku":"KITBIN2202M-N-15Wx14","price":1233.29,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 15 faretti 15W","offer_id":56411936555348,"sku":"KITBIN2202M-N-15Wx15","price":1316.25,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 16 faretti 15W","offer_id":56411936588116,"sku":"KITBIN2202M-N-15Wx16","price":1399.21,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 17 faretti 15W","offer_id":56411936620884,"sku":"KITBIN2202M-N-15Wx17","price":1482.17,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 18 faretti 15W","offer_id":56411936653652,"sku":"KITBIN2202M-N-15Wx18","price":1565.13,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 19 faretti 15W","offer_id":56411936686420,"sku":"KITBIN2202M-N-15Wx19","price":1648.09,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 20 faretti 15W","offer_id":56411936719188,"sku":"KITBIN2202M-N-15Wx20","price":1731.05,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 1 faretto 9W","offer_id":56411936751956,"sku":"KITBIN2204M-N-9Wx01","price":217.27,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 2 faretti 9W","offer_id":56411936784724,"sku":"KITBIN2204M-N-9Wx02","price":285.59,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 3 faretti 9W","offer_id":56401703731540,"sku":"KITBIN2204M-N-9Wx03","price":353.91,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 4 faretti 9W","offer_id":56401703764308,"sku":"KITBIN2204M-N-9Wx04","price":422.23,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 5 faretti 9W","offer_id":56411936817492,"sku":"KITBIN2204M-N-9Wx05","price":490.55,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 6 faretti 9W","offer_id":56401703797076,"sku":"KITBIN2204M-N-9Wx06","price":558.87,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 7 faretti 9W","offer_id":56411936850260,"sku":"KITBIN2204M-N-9Wx07","price":627.19,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 8 faretti 9W","offer_id":56401703829844,"sku":"KITBIN2204M-N-9Wx08","price":695.51,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 9 faretti 9W","offer_id":56411936883028,"sku":"KITBIN2204M-N-9Wx09","price":763.83,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 10 faretti 9W","offer_id":56401703862612,"sku":"KITBIN2204M-N-9Wx10","price":832.15,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 11 faretti 9W","offer_id":56411936915796,"sku":"KITBIN2204M-N-9Wx11","price":900.47,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 12 faretti 9W","offer_id":56401703895380,"sku":"KITBIN2204M-N-9Wx12","price":968.79,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 13 faretti 9W","offer_id":56411936948564,"sku":"KITBIN2204M-N-9Wx13","price":1037.11,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 14 faretti 9W","offer_id":56411936981332,"sku":"KITBIN2204M-N-9Wx14","price":1105.43,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 15 faretti 9W","offer_id":56411937014100,"sku":"KITBIN2204M-N-9Wx15","price":1173.75,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 16 faretti 9W","offer_id":56411937046868,"sku":"KITBIN2204M-N-9Wx16","price":1242.07,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 17 faretti 9W","offer_id":56411937079636,"sku":"KITBIN2204M-N-9Wx17","price":1310.39,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 18 faretti 9W","offer_id":56411937112404,"sku":"KITBIN2204M-N-9Wx18","price":1378.71,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 19 faretti 9W","offer_id":56411937145172,"sku":"KITBIN2204M-N-9Wx19","price":1447.03,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 20 faretti 9W","offer_id":56411937177940,"sku":"KITBIN2204M-N-9Wx20","price":1515.35,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 1 faretto 15W","offer_id":56411937210708,"sku":"KITBIN2204M-N-15Wx01","price":231.91,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 2 faretti 15W","offer_id":56411937243476,"sku":"KITBIN2204M-N-15Wx02","price":314.87,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 3 faretti 15W","offer_id":56401703928148,"sku":"KITBIN2204M-N-15Wx03","price":397.83,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 4 faretti 15W","offer_id":56401703960916,"sku":"KITBIN2204M-N-15Wx04","price":480.79,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 5 faretti 15W","offer_id":56411937276244,"sku":"KITBIN2204M-N-15Wx05","price":563.75,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 6 faretti 15W","offer_id":56401703993684,"sku":"KITBIN2204M-N-15Wx06","price":646.71,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 7 faretti 15W","offer_id":56411937309012,"sku":"KITBIN2204M-N-15Wx07","price":729.67,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 8 faretti 15W","offer_id":56401704026452,"sku":"KITBIN2204M-N-15Wx08","price":812.63,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 9 faretti 15W","offer_id":56411937341780,"sku":"KITBIN2204M-N-15Wx09","price":895.59,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 10 faretti 15W","offer_id":56401704059220,"sku":"KITBIN2204M-N-15Wx10","price":978.55,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 11 faretti 15W","offer_id":56411937374548,"sku":"KITBIN2204M-N-15Wx11","price":1061.51,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 12 faretti 15W","offer_id":56401704091988,"sku":"KITBIN2204M-N-15Wx12","price":1144.47,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 13 faretti 15W","offer_id":56411937407316,"sku":"KITBIN2204M-N-15Wx13","price":1227.43,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 14 faretti 15W","offer_id":56411937440084,"sku":"KITBIN2204M-N-15Wx14","price":1310.39,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 15 faretti 15W","offer_id":56411937472852,"sku":"KITBIN2204M-N-15Wx15","price":1393.35,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 16 faretti 15W","offer_id":56411937505620,"sku":"KITBIN2204M-N-15Wx16","price":1476.31,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 17 faretti 15W","offer_id":56411937538388,"sku":"KITBIN2204M-N-15Wx17","price":1559.27,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 18 faretti 15W","offer_id":56411937571156,"sku":"KITBIN2204M-N-15Wx18","price":1642.23,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 19 faretti 15W","offer_id":56411937603924,"sku":"KITBIN2204M-N-15Wx19","price":1725.19,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 20 faretti 15W","offer_id":56411937636692,"sku":"KITBIN2204M-N-15Wx20","price":1808.15,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 1 faretto 9W","offer_id":56411937669460,"sku":"KITBIN2206M-N-9Wx01","price":294.37,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 2 faretti 9W","offer_id":56411937702228,"sku":"KITBIN2206M-N-9Wx02","price":362.69,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 3 faretti 9W","offer_id":56401704157524,"sku":"KITBIN2206M-N-9Wx03","price":431.01,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 4 faretti 9W","offer_id":56401704190292,"sku":"KITBIN2206M-N-9Wx04","price":499.33,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 5 faretti 9W","offer_id":56411937734996,"sku":"KITBIN2206M-N-9Wx05","price":567.65,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 6 faretti 9W","offer_id":56401704223060,"sku":"KITBIN2206M-N-9Wx06","price":635.97,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 7 faretti 9W","offer_id":56411937767764,"sku":"KITBIN2206M-N-9Wx07","price":704.29,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 8 faretti 9W","offer_id":56401704255828,"sku":"KITBIN2206M-N-9Wx08","price":772.61,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 9 faretti 9W","offer_id":56411937800532,"sku":"KITBIN2206M-N-9Wx09","price":840.93,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 10 faretti 9W","offer_id":56401704288596,"sku":"KITBIN2206M-N-9Wx10","price":909.25,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 11 faretti 9W","offer_id":56411937833300,"sku":"KITBIN2206M-N-9Wx11","price":977.57,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 12 faretti 9W","offer_id":56401704321364,"sku":"KITBIN2206M-N-9Wx12","price":1045.89,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 13 faretti 9W","offer_id":56411937866068,"sku":"KITBIN2206M-N-9Wx13","price":1114.21,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 14 faretti 9W","offer_id":56411937898836,"sku":"KITBIN2206M-N-9Wx14","price":1182.53,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 15 faretti 9W","offer_id":56401704354132,"sku":"KITBIN2206M-N-9Wx15","price":1250.85,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 16 faretti 9W","offer_id":56411937931604,"sku":"KITBIN2206M-N-9Wx16","price":1319.17,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 17 faretti 9W","offer_id":56411937964372,"sku":"KITBIN2206M-N-9Wx17","price":1387.49,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 18 faretti 9W","offer_id":56401704386900,"sku":"KITBIN2206M-N-9Wx18","price":1455.81,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 19 faretti 9W","offer_id":56411937997140,"sku":"KITBIN2206M-N-9Wx19","price":1524.13,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 20 faretti 9W","offer_id":56411938029908,"sku":"KITBIN2206M-N-9Wx20","price":1592.45,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 1 faretto 15W","offer_id":56411938062676,"sku":"KITBIN2206M-N-15Wx01","price":309.01,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 2 faretti 15W","offer_id":56411938095444,"sku":"KITBIN2206M-N-15Wx02","price":391.97,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 3 faretti 15W","offer_id":56401704419668,"sku":"KITBIN2206M-N-15Wx03","price":474.93,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 4 faretti 15W","offer_id":56401704452436,"sku":"KITBIN2206M-N-15Wx04","price":557.89,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 5 faretti 15W","offer_id":56411938128212,"sku":"KITBIN2206M-N-15Wx05","price":640.85,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 6 faretti 15W","offer_id":56401704485204,"sku":"KITBIN2206M-N-15Wx06","price":723.81,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 7 faretti 15W","offer_id":56411938160980,"sku":"KITBIN2206M-N-15Wx07","price":806.77,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 8 faretti 15W","offer_id":56401704517972,"sku":"KITBIN2206M-N-15Wx08","price":889.73,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 9 faretti 15W","offer_id":56411938193748,"sku":"KITBIN2206M-N-15Wx09","price":972.69,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 10 faretti 15W","offer_id":56401704550740,"sku":"KITBIN2206M-N-15Wx10","price":1055.65,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 11 faretti 15W","offer_id":56411938226516,"sku":"KITBIN2206M-N-15Wx11","price":1138.61,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 12 faretti 15W","offer_id":56401704583508,"sku":"KITBIN2206M-N-15Wx12","price":1221.57,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 13 faretti 15W","offer_id":56411938259284,"sku":"KITBIN2206M-N-15Wx13","price":1304.53,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 14 faretti 15W","offer_id":56411938292052,"sku":"KITBIN2206M-N-15Wx14","price":1387.49,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 15 faretti 15W","offer_id":56401704616276,"sku":"KITBIN2206M-N-15Wx15","price":1470.45,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 16 faretti 15W","offer_id":56411938324820,"sku":"KITBIN2206M-N-15Wx16","price":1553.41,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 17 faretti 15W","offer_id":56411938357588,"sku":"KITBIN2206M-N-15Wx17","price":1636.37,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 18 faretti 15W","offer_id":56401704649044,"sku":"KITBIN2206M-N-15Wx18","price":1719.33,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 19 faretti 15W","offer_id":56411938390356,"sku":"KITBIN2206M-N-15Wx19","price":1802.29,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 20 faretti 15W","offer_id":56411938423124,"sku":"KITBIN2206M-N-15Wx20","price":1885.25,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1048\/8227\/4644\/files\/COVER-220V-NERO.png?v=1783691464"},{"product_id":"kit-binario-220v-bianco","title":"Kit Binario 220V trifase — Bianco","description":"\u003cstyle\u003e\n#kitb-likht{color:#141414;margin:0}\n#kitb-likht *{box-sizing:border-box}\n.kitb-eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#8a8a8a;margin-bottom:8px}\n.kitb-h2{font-size:26px;line-height:1.15;margin:0 0 8px;font-weight:600}\n.kitb-sub{color:#5c5c5c;max-width:62ch;margin:0 0 6px;font-size:15px;line-height:1.5}\n.kitb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:26px;align-items:start}\n.kitb-b{margin-bottom:26px}\n.kitb-q{font-weight:600;font-size:16px;margin-bottom:11px;display:flex;align-items:center;gap:10px}\n.kitb-q span{width:23px;height:23px;border-radius:50%;background:#141414;color:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}\n.kitb-opts{display:flex;flex-wrap:wrap;gap:9px}\n.kitb-opt{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:11px 15px;cursor:pointer;font:inherit;font-size:15px;text-align:left;line-height:1.3;transition:border-color .15s,box-shadow .15s;color:#141414}\n.kitb-opt small{display:block;color:#8a8a8a;font-size:12px;margin-top:3px}\n.kitb-opt:hover{border-color:#b0b0b0}\n.kitb-opt.on{border-color:#141414;box-shadow:inset 0 0 0 1px #141414}\n.kitb-opt.kitb-off{opacity:.35;pointer-events:none}\n.kitb-len .kitb-opt{min-width:70px;text-align:center}\n.kitb-sub2{font-size:14px;color:#5c5c5c;margin:14px 0 9px}\n.kitb-hide{display:none}\n.kitb-mods{display:grid;gap:8px}\n.kitb-mod{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:10px 13px}\n.kitb-mi b{display:block;font-size:15px}\n.kitb-mi small{color:#8a8a8a;font-size:12.5px}\n.kitb-qty{display:flex;align-items:center;gap:4px;flex:0 0 auto}\n.kitb-qty button{width:30px;height:30px;border:1px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;color:#141414;padding:0}\n.kitb-qty button:hover{border-color:#141414}\n.kitb-qty span{min-width:26px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}\n.kitb-check{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:12px 13px;cursor:pointer;font-size:15px}\n.kitb-check input{width:17px;height:17px;flex:0 0 auto}\n.kitb-card{position:sticky;top:24px;background:#fafafa;border:1px solid #e6e6e6;border-radius:14px;padding:20px}\n.kitb-r{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:#5c5c5c;padding:5px 0;border-bottom:1px dashed #e6e6e6}\n.kitb-r i{font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap}\n.kitb-pot{margin:14px 0 4px;font-size:13.5px;color:#8a8a8a}\n.kitb-pot.kitb-ok{color:#2c7a4b}\n.kitb-pot.kitb-over{color:#b3261e}\n.kitb-tot{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 14px;padding-top:12px;border-top:1px solid #e0e0e0}\n.kitb-tot b{font-size:25px;font-variant-numeric:tabular-nums}\n.kitb-cta{width:100%;background:#141414;color:#fff;border:0;border-radius:10px;padding:14px 18px;font:inherit;font-weight:600;cursor:pointer}\n.kitb-cta:hover{background:#000}\n.kitb-cta:disabled{background:#c9c9c9;cursor:not-allowed}\n.kitb-msg{font-size:13px;margin-top:9px;color:#5c5c5c;min-height:1em}\n.kitb-msg.kitb-err{color:#b3261e}\n.kitb-safe{font-size:12.5px;color:#8a8a8a;margin:12px 0 0;line-height:1.45}\n\u003c\/style\u003e\n\n\u003cdiv id=\"kitb-likht\"\u003e\n  \u003cdiv class=\"kitb-eyebrow\"\u003eConfiguratore\u003c\/div\u003e\n  \u003ch2 class=\"kitb-h2\"\u003eKit Binario 220V trifase — Bianco\u003c\/h2\u003e\n  \u003cp class=\"kitb-sub\"\u003eIl binario trifase va a 220V: \u003cstrong\u003enessun alimentatore\u003c\/strong\u003e, si collega direttamente alla rete. Scegli i metri e le luci: il prezzo si aggiorna mentre scegli e ti arriva tutto già abbinato, pronto da montare.\u003c\/p\u003e\n\n  \u003cdiv class=\"kitb-grid\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e1\u003c\/span\u003e Quanti metri di binario?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts kitb-len\" data-el=\"lung\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"2\"\u003e2 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"4\"\u003e4 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"6\"\u003e6 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"8\"\u003e8 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"10\"\u003e10 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"12\"\u003e12 m\u003c\/button\u003e\n        \u003c\/div\u003e\n        \u003cp class=\"kitb-sub2\"\u003eIl binario si vende in barre da 2 m ed è sezionabile: una giunzione ogni 2 metri, più la testata di alimentazione da un capo e il tappo di chiusura dall'altro. Li mettiamo noi nel kit.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e2\u003c\/span\u003e Quali faretti monti?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-mods\" data-el=\"mods\"\u003e\u003c\/div\u003e\n        \u003cp class=\"kitb-sub2\" data-el=\"cnt\"\u003e\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-card\"\u003e\n        \u003cdiv data-el=\"dist\"\u003e\u003c\/div\u003e\n        \u003cp class=\"kitb-pot\" data-el=\"pot\"\u003e\u003c\/p\u003e\n        \u003cdiv class=\"kitb-tot\"\u003e\n\u003cspan\u003eTotale\u003c\/span\u003e\u003cb data-el=\"tot\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cbutton type=\"button\" class=\"kitb-cta\" data-el=\"add\"\u003eAggiungi al carrello\u003c\/button\u003e\n        \u003cp class=\"kitb-msg\" data-el=\"msg\"\u003e\u003c\/p\u003e\n        \u003cp class=\"kitb-safe\"\u003ePrezzi IVA inclusa. Faretti 3000K (luce calda); 4000K su richiesta a info@likht.it. Prima di spedire ricontrolliamo tutto: compatibilità, misure e quantità. Se qualcosa non torna ti chiamiamo.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  function boot(){\n    var root = document.getElementById('kitb-likht');\n    if(!root || root.dataset.on) return;\n    root.dataset.on = '1';\n\n    \/* i prezzi NON sono scritti qui: si leggono dalle schede prodotto del sito *\/\n    var COMP = {\n      binario: 'gea-gbin01',\n      giunto:  'gea-gbic01',\n      testata: 'gea-gbit03',\n      tappo:   'gea-gbit01'\n    };\n    var NOMI = {\n      binario:'Binario trifase 2 m',\n      giunto:'Giunzione lineare',\n      testata:'Testata di alimentazione 220V',\n      tappo:'Tappo di chiusura'\n    };\n\n    var MODULI = [\n      {h:'gea-gfa1670c',  n:'Faretto orientabile', d:'fascio 40\\u00b0 \\u00b7 3000K', w:9},\n      {h:'gea-gfa1672c', n:'Faretto orientabile', d:'fascio 40\\u00b0 \\u00b7 3000K', w:15}\n    ];\n\n    var MAX_FARETTI = 20;\n    var METRI_BARRA = 2;\n\n    var P = {}, VID = {};\n    var S = { lung:2, qta:{} };\n    MODULI.forEach(function(m){ S.qta[m.h] = 0; });\n\n    function eur(n){ return n.toFixed(2).replace('.', ',') + ' \\u20ac'; }\n    function el(k){ return root.querySelector('[data-el=\"' + k + '\"]'); }\n\n    function barre(){ return Math.ceil(S.lung \/ METRI_BARRA); }\n\n    \/* una testata di alimentazione da un capo, un tappo dall'altro:\n       senza questi due il binario non funziona ed e' pericoloso *\/\n    function distinta(){\n      var n = barre(), d = [{k:'binario', q:n}];\n      if(n \u003e 1) d.push({k:'giunto', q:n - 1});\n      d.push({k:'testata', q:1});\n      d.push({k:'tappo', q:1});\n      return d;\n    }\n\n    function nFaretti(){\n      var t = 0;\n      MODULI.forEach(function(m){ t += S.qta[m.h]; });\n      return t;\n    }\n    function prezzoDi(h){ return (h \u0026\u0026 typeof P[h] === 'number') ? P[h] : null; }\n\n    function totale(){\n      var t = 0, mancante = false;\n      distinta().forEach(function(r){\n        var p = prezzoDi(COMP[r.k]);\n        if(p === null) mancante = true; else t += p * r.q;\n      });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          var p = prezzoDi(m.h);\n          if(p === null) mancante = true; else t += p * S.qta[m.h];\n        }\n      });\n      return mancante ? null : t;\n    }\n\n    function disegnaModuli(){\n      var box = el('mods');\n      box.innerHTML = MODULI.map(function(m){\n        var p = prezzoDi(m.h);\n        return '\u003cdiv class=\"kitb-mod\" data-h=\"' + m.h + '\"\u003e' +\n          '\u003cspan class=\"kitb-mi\"\u003e\u003cb\u003e' + m.n + ' ' + m.w + 'W\u003c\/b\u003e' +\n          '\u003csmall\u003e' + m.d + '\u003c\/small\u003e\u003c\/span\u003e' +\n          '\u003cspan class=\"kitb-qty\"\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"-1\" aria-label=\"Uno in meno\"\u003e\\u2013\u003c\/button\u003e' +\n            '\u003cspan data-q=\"' + m.h + '\"\u003e' + S.qta[m.h] + '\u003c\/span\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"1\" aria-label=\"Uno in piu\"\u003e+\u003c\/button\u003e' +\n          '\u003c\/span\u003e\u003c\/div\u003e';\n      }).join('');\n      box.querySelectorAll('button').forEach(function(b){\n        b.addEventListener('click', function(){\n          var h = b.closest('.kitb-mod').getAttribute('data-h');\n          var d = parseInt(b.getAttribute('data-d'), 10);\n          if(d \u003e 0 \u0026\u0026 nFaretti() \u003e= MAX_FARETTI) return;\n          S.qta[h] = Math.max(0, S.qta[h] + d);\n          render();\n        });\n      });\n    }\n\n    function render(){\n      el('lung').querySelectorAll('button').forEach(function(b){\n        b.className = 'kitb-opt' + (parseInt(b.getAttribute('data-v'), 10) === S.lung ? ' on' : '');\n      });\n\n      MODULI.forEach(function(m){\n        var q = root.querySelector('[data-q=\"' + m.h + '\"]');\n        if(q) q.textContent = S.qta[m.h];\n      });\n\n      var righe = [];\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eLunghezza\u003c\/span\u003e\u003ci\u003e' + S.lung + ' m\u003c\/i\u003e\u003c\/div\u003e');\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003e' + m.n + ' ' + m.w + 'W\u003c\/span\u003e\u003ci\u003e\\u00d7 ' + S.qta[m.h] + '\u003c\/i\u003e\u003c\/div\u003e');\n        }\n      });\n      el('dist').innerHTML = righe.join('');\n\n      var n = nFaretti(), pot = el('pot');\n      el('cnt').textContent = n === 0 ? 'Nessun faretto selezionato.'\n        : n + ' faretti su ' + MAX_FARETTI + ' selezionabili.' +\n          (n \u003e= MAX_FARETTI ? ' Per un binario con pi\\u00f9 faretti scrivici a info@likht.it.' : '');\n      if(n === 0){ pot.className = 'kitb-pot'; pot.textContent = ''; }\n      else {\n        pot.className = 'kitb-pot kitb-ok';\n        pot.textContent = 'Binario trifase 220V: niente alimentatore, va diretto a rete.';\n      }\n\n      var t = totale();\n      el('tot').textContent = t === null ? '\\u2014' : eur(t);\n      el('add').disabled = (t === null);\n    }\n\n    el('lung').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.lung = parseInt(b.getAttribute('data-v'), 10); render(); });\n    });\n\n    function carica(){\n      var tutti = MODULI.map(function(m){ return m.h; });\n      Object.keys(COMP).forEach(function(k){ tutti.push(COMP[k]); });\n      return Promise.all(tutti.map(function(h){\n        return fetch('\/products\/' + h + '.js')\n          .then(function(r){ return r.ok ? r.json() : null; })\n          .then(function(p){\n            if(p \u0026\u0026 p.variants \u0026\u0026 p.variants[0]){\n              VID[h] = p.variants[0].id;\n              P[h] = p.variants[0].price \/ 100;\n            }\n          })\n          .catch(function(){});\n      }));\n    }\n\n    el('add').addEventListener('click', function(){\n      var righe = distinta().map(function(r){ return {h:COMP[r.k], q:r.q, n:NOMI[r.k]}; });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0) righe.push({h:m.h, q:S.qta[m.h], n:m.n + ' ' + m.w + 'W'});\n      });\n      var mancanti = righe.filter(function(r){ return !VID[r.h]; });\n      if(mancanti.length){\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Componente non disponibile: ' + mancanti[0].n + '. Scrivici e lo sistemiamo subito.';\n        return;\n      }\n      var et = S.lung + ' m \\u00b7 bianco \\u00b7 3000K';\n      var items = righe.map(function(r){\n        return { id: VID[r.h], quantity: r.q, properties: { 'Kit binario 220V': et } };\n      });\n      el('add').disabled = true;\n      el('msg').className = 'kitb-msg';\n      el('msg').textContent = 'Aggiungo al carrello\\u2026';\n      fetch('\/cart\/add.js', {\n        method:'POST', headers:{'Content-Type':'application\/json'},\n        body: JSON.stringify({ items: items })\n      })\n      .then(function(r){ return r.json().then(function(j){ return {ok:r.ok, j:j}; }); })\n      .then(function(res){\n        el('add').disabled = false;\n        if(res.ok){\n          el('msg').className = 'kitb-msg';\n          el('msg').textContent = 'Kit aggiunto al carrello.';\n          fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(c){\n            var b = document.querySelectorAll('.cart-count-bubble span:first-child');\n            for(var i = 0; i \u003c b.length; i++) b[i].textContent = c.item_count;\n          }).catch(function(){});\n        } else {\n          el('msg').className = 'kitb-msg kitb-err';\n          el('msg').textContent = (res.j \u0026\u0026 res.j.description) || 'Non sono riuscito ad aggiungerlo. Riprova.';\n        }\n      })\n      .catch(function(){\n        el('add').disabled = false;\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Non sono riuscito ad aggiungerlo. Riprova.';\n      });\n    });\n\n    \/* il configuratore vive nella descrizione, che il tema stampa sotto i bottoni\n       di acquisto: lo risaliamo sopra il modulo d'acquisto e nascondiamo prezzo e\n       bottone nativi (qui si compra dal configuratore) *\/\n    function spostaSopraCarrello(){\n      if(root.dataset.su) return;\n      var anc = null, s = ['product-form','.product-form','.product-form__buttons','.shopify-payment-button'];\n      for(var i = 0; i \u003c s.length \u0026\u0026 !anc; i++){\n        var e = document.querySelector(s[i]);\n        if(e \u0026\u0026 e.parentNode \u0026\u0026 !root.contains(e)) anc = e;\n      }\n      if(!anc) return;\n      anc.parentNode.insertBefore(root, anc);\n      root.dataset.su = '1';\n      var box = anc.closest('.product__info-container') || anc.parentNode;\n      \/* qui si compra dal configuratore: via prezzo, quantita' e i menu' delle\n         vecchie varianti (Lunghezza \/ Faretti), che confondono e basta *\/\n      box.querySelectorAll('product-form, .product-form, .price, .product__tax, noscript, ' +\n                           '.product-form__quantity, .quantity__label, quantity-input, .quantity, ' +\n                           'variant-selects, variant-radios, .product-form__input')\n         .forEach(function(n){ if(!root.contains(n)) n.style.display = 'none'; });\n    }\n\n    disegnaModuli();\n    render();\n    spostaSopraCarrello();\n    carica().then(function(){ disegnaModuli(); render(); spostaSopraCarrello(); });\n  }\n\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n})();\n\u003c\/script\u003e\n","brand":"Likht","offers":[{"title":"1-2 m \/ Senza faretti","offer_id":56401711202644,"sku":"KITBIN2202M-B-X0","price":71.85,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ Senza faretti","offer_id":56401711432020,"sku":"KITBIN2204M-B-X0","price":148.95,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ Senza faretti","offer_id":56401711858004,"sku":"KITBIN2206M-B-X0","price":226.05,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 1 faretto 9W","offer_id":56411938849108,"sku":"KITBIN2202M-B-9Wx01","price":140.17,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 2 faretti 9W","offer_id":56411938881876,"sku":"KITBIN2202M-B-9Wx02","price":208.49,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 3 faretti 9W","offer_id":56401711235412,"sku":"KITBIN2202M-B-9Wx03","price":276.81,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 4 faretti 9W","offer_id":56401711268180,"sku":"KITBIN2202M-B-9Wx04","price":345.13,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 5 faretti 9W","offer_id":56411938914644,"sku":"KITBIN2202M-B-9Wx05","price":413.45,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 6 faretti 9W","offer_id":56401711300948,"sku":"KITBIN2202M-B-9Wx06","price":481.77,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 7 faretti 9W","offer_id":56411938947412,"sku":"KITBIN2202M-B-9Wx07","price":550.09,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 8 faretti 9W","offer_id":56411938980180,"sku":"KITBIN2202M-B-9Wx08","price":618.41,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 9 faretti 9W","offer_id":56411939012948,"sku":"KITBIN2202M-B-9Wx09","price":686.73,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 10 faretti 9W","offer_id":56411939045716,"sku":"KITBIN2202M-B-9Wx10","price":755.05,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 11 faretti 9W","offer_id":56411939078484,"sku":"KITBIN2202M-B-9Wx11","price":823.37,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 12 faretti 9W","offer_id":56411939111252,"sku":"KITBIN2202M-B-9Wx12","price":891.69,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 13 faretti 9W","offer_id":56411939144020,"sku":"KITBIN2202M-B-9Wx13","price":960.01,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 14 faretti 9W","offer_id":56411939176788,"sku":"KITBIN2202M-B-9Wx14","price":1028.33,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 15 faretti 9W","offer_id":56411939209556,"sku":"KITBIN2202M-B-9Wx15","price":1096.65,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 16 faretti 9W","offer_id":56411939242324,"sku":"KITBIN2202M-B-9Wx16","price":1164.97,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 17 faretti 9W","offer_id":56411939275092,"sku":"KITBIN2202M-B-9Wx17","price":1233.29,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 18 faretti 9W","offer_id":56411939307860,"sku":"KITBIN2202M-B-9Wx18","price":1301.61,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 19 faretti 9W","offer_id":56411939340628,"sku":"KITBIN2202M-B-9Wx19","price":1369.93,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 20 faretti 9W","offer_id":56411939373396,"sku":"KITBIN2202M-B-9Wx20","price":1438.25,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 1 faretto 15W","offer_id":56411939406164,"sku":"KITBIN2202M-B-15Wx01","price":154.81,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 2 faretti 15W","offer_id":56411939438932,"sku":"KITBIN2202M-B-15Wx02","price":237.77,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 3 faretti 15W","offer_id":56401711333716,"sku":"KITBIN2202M-B-15Wx03","price":320.73,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 4 faretti 15W","offer_id":56401711366484,"sku":"KITBIN2202M-B-15Wx04","price":403.69,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 5 faretti 15W","offer_id":56411939471700,"sku":"KITBIN2202M-B-15Wx05","price":486.65,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 6 faretti 15W","offer_id":56401711399252,"sku":"KITBIN2202M-B-15Wx06","price":569.61,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 7 faretti 15W","offer_id":56411939504468,"sku":"KITBIN2202M-B-15Wx07","price":652.57,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 8 faretti 15W","offer_id":56411939537236,"sku":"KITBIN2202M-B-15Wx08","price":735.53,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 9 faretti 15W","offer_id":56411939570004,"sku":"KITBIN2202M-B-15Wx09","price":818.49,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 10 faretti 15W","offer_id":56411939602772,"sku":"KITBIN2202M-B-15Wx10","price":901.45,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 11 faretti 15W","offer_id":56411939635540,"sku":"KITBIN2202M-B-15Wx11","price":984.41,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 12 faretti 15W","offer_id":56411939668308,"sku":"KITBIN2202M-B-15Wx12","price":1067.37,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 13 faretti 15W","offer_id":56411939701076,"sku":"KITBIN2202M-B-15Wx13","price":1150.33,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 14 faretti 15W","offer_id":56411939733844,"sku":"KITBIN2202M-B-15Wx14","price":1233.29,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 15 faretti 15W","offer_id":56411939766612,"sku":"KITBIN2202M-B-15Wx15","price":1316.25,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 16 faretti 15W","offer_id":56411939799380,"sku":"KITBIN2202M-B-15Wx16","price":1399.21,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 17 faretti 15W","offer_id":56411939832148,"sku":"KITBIN2202M-B-15Wx17","price":1482.17,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 18 faretti 15W","offer_id":56411939864916,"sku":"KITBIN2202M-B-15Wx18","price":1565.13,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 19 faretti 15W","offer_id":56411939897684,"sku":"KITBIN2202M-B-15Wx19","price":1648.09,"currency_code":"EUR","in_stock":true},{"title":"1-2 m \/ 20 faretti 15W","offer_id":56411939930452,"sku":"KITBIN2202M-B-15Wx20","price":1731.05,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 1 faretto 9W","offer_id":56411939963220,"sku":"KITBIN2204M-B-9Wx01","price":217.27,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 2 faretti 9W","offer_id":56411939995988,"sku":"KITBIN2204M-B-9Wx02","price":285.59,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 3 faretti 9W","offer_id":56401711464788,"sku":"KITBIN2204M-B-9Wx03","price":353.91,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 4 faretti 9W","offer_id":56401711497556,"sku":"KITBIN2204M-B-9Wx04","price":422.23,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 5 faretti 9W","offer_id":56411940028756,"sku":"KITBIN2204M-B-9Wx05","price":490.55,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 6 faretti 9W","offer_id":56401711530324,"sku":"KITBIN2204M-B-9Wx06","price":558.87,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 7 faretti 9W","offer_id":56411940061524,"sku":"KITBIN2204M-B-9Wx07","price":627.19,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 8 faretti 9W","offer_id":56401711563092,"sku":"KITBIN2204M-B-9Wx08","price":695.51,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 9 faretti 9W","offer_id":56411940094292,"sku":"KITBIN2204M-B-9Wx09","price":763.83,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 10 faretti 9W","offer_id":56401711595860,"sku":"KITBIN2204M-B-9Wx10","price":832.15,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 11 faretti 9W","offer_id":56411940127060,"sku":"KITBIN2204M-B-9Wx11","price":900.47,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 12 faretti 9W","offer_id":56401711628628,"sku":"KITBIN2204M-B-9Wx12","price":968.79,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 13 faretti 9W","offer_id":56411940159828,"sku":"KITBIN2204M-B-9Wx13","price":1037.11,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 14 faretti 9W","offer_id":56411940192596,"sku":"KITBIN2204M-B-9Wx14","price":1105.43,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 15 faretti 9W","offer_id":56411940225364,"sku":"KITBIN2204M-B-9Wx15","price":1173.75,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 16 faretti 9W","offer_id":56411940258132,"sku":"KITBIN2204M-B-9Wx16","price":1242.07,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 17 faretti 9W","offer_id":56411940290900,"sku":"KITBIN2204M-B-9Wx17","price":1310.39,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 18 faretti 9W","offer_id":56411940323668,"sku":"KITBIN2204M-B-9Wx18","price":1378.71,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 19 faretti 9W","offer_id":56411940356436,"sku":"KITBIN2204M-B-9Wx19","price":1447.03,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 20 faretti 9W","offer_id":56411940389204,"sku":"KITBIN2204M-B-9Wx20","price":1515.35,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 1 faretto 15W","offer_id":56411940421972,"sku":"KITBIN2204M-B-15Wx01","price":231.91,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 2 faretti 15W","offer_id":56411940454740,"sku":"KITBIN2204M-B-15Wx02","price":314.87,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 3 faretti 15W","offer_id":56401711661396,"sku":"KITBIN2204M-B-15Wx03","price":397.83,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 4 faretti 15W","offer_id":56401711694164,"sku":"KITBIN2204M-B-15Wx04","price":480.79,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 5 faretti 15W","offer_id":56411940487508,"sku":"KITBIN2204M-B-15Wx05","price":563.75,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 6 faretti 15W","offer_id":56401711726932,"sku":"KITBIN2204M-B-15Wx06","price":646.71,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 7 faretti 15W","offer_id":56411940520276,"sku":"KITBIN2204M-B-15Wx07","price":729.67,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 8 faretti 15W","offer_id":56401711759700,"sku":"KITBIN2204M-B-15Wx08","price":812.63,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 9 faretti 15W","offer_id":56411940553044,"sku":"KITBIN2204M-B-15Wx09","price":895.59,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 10 faretti 15W","offer_id":56401711792468,"sku":"KITBIN2204M-B-15Wx10","price":978.55,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 11 faretti 15W","offer_id":56411940585812,"sku":"KITBIN2204M-B-15Wx11","price":1061.51,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 12 faretti 15W","offer_id":56401711825236,"sku":"KITBIN2204M-B-15Wx12","price":1144.47,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 13 faretti 15W","offer_id":56411940618580,"sku":"KITBIN2204M-B-15Wx13","price":1227.43,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 14 faretti 15W","offer_id":56411940651348,"sku":"KITBIN2204M-B-15Wx14","price":1310.39,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 15 faretti 15W","offer_id":56411940684116,"sku":"KITBIN2204M-B-15Wx15","price":1393.35,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 16 faretti 15W","offer_id":56411940716884,"sku":"KITBIN2204M-B-15Wx16","price":1476.31,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 17 faretti 15W","offer_id":56411940749652,"sku":"KITBIN2204M-B-15Wx17","price":1559.27,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 18 faretti 15W","offer_id":56411940782420,"sku":"KITBIN2204M-B-15Wx18","price":1642.23,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 19 faretti 15W","offer_id":56411940815188,"sku":"KITBIN2204M-B-15Wx19","price":1725.19,"currency_code":"EUR","in_stock":true},{"title":"3-4 m \/ 20 faretti 15W","offer_id":56411940847956,"sku":"KITBIN2204M-B-15Wx20","price":1808.15,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 1 faretto 9W","offer_id":56411940880724,"sku":"KITBIN2206M-B-9Wx01","price":294.37,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 2 faretti 9W","offer_id":56411940913492,"sku":"KITBIN2206M-B-9Wx02","price":362.69,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 3 faretti 9W","offer_id":56401711890772,"sku":"KITBIN2206M-B-9Wx03","price":431.01,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 4 faretti 9W","offer_id":56401711923540,"sku":"KITBIN2206M-B-9Wx04","price":499.33,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 5 faretti 9W","offer_id":56411940946260,"sku":"KITBIN2206M-B-9Wx05","price":567.65,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 6 faretti 9W","offer_id":56401711956308,"sku":"KITBIN2206M-B-9Wx06","price":635.97,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 7 faretti 9W","offer_id":56411940979028,"sku":"KITBIN2206M-B-9Wx07","price":704.29,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 8 faretti 9W","offer_id":56401711989076,"sku":"KITBIN2206M-B-9Wx08","price":772.61,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 9 faretti 9W","offer_id":56411941011796,"sku":"KITBIN2206M-B-9Wx09","price":840.93,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 10 faretti 9W","offer_id":56401712021844,"sku":"KITBIN2206M-B-9Wx10","price":909.25,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 11 faretti 9W","offer_id":56411941044564,"sku":"KITBIN2206M-B-9Wx11","price":977.57,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 12 faretti 9W","offer_id":56401712054612,"sku":"KITBIN2206M-B-9Wx12","price":1045.89,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 13 faretti 9W","offer_id":56411941077332,"sku":"KITBIN2206M-B-9Wx13","price":1114.21,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 14 faretti 9W","offer_id":56411941110100,"sku":"KITBIN2206M-B-9Wx14","price":1182.53,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 15 faretti 9W","offer_id":56401712087380,"sku":"KITBIN2206M-B-9Wx15","price":1250.85,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 16 faretti 9W","offer_id":56411941142868,"sku":"KITBIN2206M-B-9Wx16","price":1319.17,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 17 faretti 9W","offer_id":56411941175636,"sku":"KITBIN2206M-B-9Wx17","price":1387.49,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 18 faretti 9W","offer_id":56401712120148,"sku":"KITBIN2206M-B-9Wx18","price":1455.81,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 19 faretti 9W","offer_id":56411941208404,"sku":"KITBIN2206M-B-9Wx19","price":1524.13,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 20 faretti 9W","offer_id":56411941241172,"sku":"KITBIN2206M-B-9Wx20","price":1592.45,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 1 faretto 15W","offer_id":56411941273940,"sku":"KITBIN2206M-B-15Wx01","price":309.01,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 2 faretti 15W","offer_id":56411941306708,"sku":"KITBIN2206M-B-15Wx02","price":391.97,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 3 faretti 15W","offer_id":56401712152916,"sku":"KITBIN2206M-B-15Wx03","price":474.93,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 4 faretti 15W","offer_id":56401712185684,"sku":"KITBIN2206M-B-15Wx04","price":557.89,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 5 faretti 15W","offer_id":56411941339476,"sku":"KITBIN2206M-B-15Wx05","price":640.85,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 6 faretti 15W","offer_id":56401712218452,"sku":"KITBIN2206M-B-15Wx06","price":723.81,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 7 faretti 15W","offer_id":56411941372244,"sku":"KITBIN2206M-B-15Wx07","price":806.77,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 8 faretti 15W","offer_id":56401712251220,"sku":"KITBIN2206M-B-15Wx08","price":889.73,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 9 faretti 15W","offer_id":56411941405012,"sku":"KITBIN2206M-B-15Wx09","price":972.69,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 10 faretti 15W","offer_id":56401712283988,"sku":"KITBIN2206M-B-15Wx10","price":1055.65,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 11 faretti 15W","offer_id":56411941437780,"sku":"KITBIN2206M-B-15Wx11","price":1138.61,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 12 faretti 15W","offer_id":56401712316756,"sku":"KITBIN2206M-B-15Wx12","price":1221.57,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 13 faretti 15W","offer_id":56411941470548,"sku":"KITBIN2206M-B-15Wx13","price":1304.53,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 14 faretti 15W","offer_id":56411941503316,"sku":"KITBIN2206M-B-15Wx14","price":1387.49,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 15 faretti 15W","offer_id":56401712349524,"sku":"KITBIN2206M-B-15Wx15","price":1470.45,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 16 faretti 15W","offer_id":56411941536084,"sku":"KITBIN2206M-B-15Wx16","price":1553.41,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 17 faretti 15W","offer_id":56411941568852,"sku":"KITBIN2206M-B-15Wx17","price":1636.37,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 18 faretti 15W","offer_id":56401712382292,"sku":"KITBIN2206M-B-15Wx18","price":1719.33,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 19 faretti 15W","offer_id":56411941601620,"sku":"KITBIN2206M-B-15Wx19","price":1802.29,"currency_code":"EUR","in_stock":true},{"title":"5-6 m \/ 20 faretti 15W","offer_id":56411941634388,"sku":"KITBIN2206M-B-15Wx20","price":1885.25,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1048\/8227\/4644\/files\/COVER-220V-BIANCO.png?v=1783691464"},{"product_id":"kit-binario-ultrasottile-48v","title":"Kit Binario Ultrasottile 48V - Nero","description":"\u003cstyle\u003e\n#kitb-likht{color:#141414;margin:0}\n#kitb-likht *{box-sizing:border-box}\n.kitb-eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#8a8a8a;margin-bottom:8px}\n.kitb-h2{font-size:26px;line-height:1.15;margin:0 0 8px;font-weight:600}\n.kitb-sub{color:#5c5c5c;max-width:62ch;margin:0 0 6px;font-size:15px;line-height:1.5}\n.kitb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:26px;align-items:start}\n.kitb-b{margin-bottom:26px}\n.kitb-q{font-weight:600;font-size:16px;margin-bottom:11px;display:flex;align-items:center;gap:10px}\n.kitb-q span{width:23px;height:23px;border-radius:50%;background:#141414;color:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}\n.kitb-opts{display:flex;flex-wrap:wrap;gap:9px}\n.kitb-opt{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:11px 15px;cursor:pointer;font:inherit;font-size:15px;text-align:left;line-height:1.3;transition:border-color .15s,box-shadow .15s;color:#141414}\n.kitb-opt small{display:block;color:#8a8a8a;font-size:12px;margin-top:3px}\n.kitb-opt:hover{border-color:#b0b0b0}\n.kitb-opt.on{border-color:#141414;box-shadow:inset 0 0 0 1px #141414}\n.kitb-opt.kitb-off{opacity:.35;pointer-events:none}\n.kitb-len .kitb-opt{min-width:70px;text-align:center}\n.kitb-sub2{font-size:14px;color:#5c5c5c;margin:14px 0 9px}\n.kitb-hide{display:none}\n.kitb-mods{display:grid;gap:8px}\n.kitb-mod{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:10px 13px}\n.kitb-mi b{display:block;font-size:15px}\n.kitb-mi small{color:#8a8a8a;font-size:12.5px}\n.kitb-qty{display:flex;align-items:center;gap:4px;flex:0 0 auto}\n.kitb-qty button{width:30px;height:30px;border:1px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;color:#141414;padding:0}\n.kitb-qty button:hover{border-color:#141414}\n.kitb-qty span{min-width:26px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}\n.kitb-check{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:12px 13px;cursor:pointer;font-size:15px}\n.kitb-check input{width:17px;height:17px;flex:0 0 auto}\n.kitb-card{position:sticky;top:24px;background:#fafafa;border:1px solid #e6e6e6;border-radius:14px;padding:20px}\n.kitb-r{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:#5c5c5c;padding:5px 0;border-bottom:1px dashed #e6e6e6}\n.kitb-r i{font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap}\n.kitb-pot{margin:14px 0 4px;font-size:13.5px;color:#8a8a8a}\n.kitb-pot.kitb-ok{color:#2c7a4b}\n.kitb-pot.kitb-over{color:#b3261e}\n.kitb-tot{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 14px;padding-top:12px;border-top:1px solid #e0e0e0}\n.kitb-tot b{font-size:25px;font-variant-numeric:tabular-nums}\n.kitb-cta{width:100%;background:#141414;color:#fff;border:0;border-radius:10px;padding:14px 18px;font:inherit;font-weight:600;cursor:pointer}\n.kitb-cta:hover{background:#000}\n.kitb-cta:disabled{background:#c9c9c9;cursor:not-allowed}\n.kitb-msg{font-size:13px;margin-top:9px;color:#5c5c5c;min-height:1em}\n.kitb-msg.kitb-err{color:#b3261e}\n.kitb-safe{font-size:12.5px;color:#8a8a8a;margin:12px 0 0;line-height:1.45}\n\u003c\/style\u003e\n\n\u003cdiv id=\"kitb-likht\"\u003e\n  \u003cdiv class=\"kitb-eyebrow\"\u003eConfiguratore\u003c\/div\u003e\n  \u003ch2 class=\"kitb-h2\"\u003eKit Binario Ultrasottile 48V\u003c\/h2\u003e\n  \u003cp class=\"kitb-sub\"\u003eComponi il tuo binario: scegli forma, metri e luci. Il prezzo si aggiorna mentre scegli e ti arriva tutto già abbinato, pronto da montare.\u003c\/p\u003e\n\n  \u003cdiv class=\"kitb-grid\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e1\u003c\/span\u003e Che forma ha il binario?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts\" data-el=\"forma\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"lineare\"\u003eLineare\u003csmall\u003etutto dritto\u003c\/small\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"elle\"\u003eA L\u003csmall\u003econ angolo a 90°\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e2\u003c\/span\u003e Quanti metri in totale?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts kitb-len\" data-el=\"lung\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"2\"\u003e2 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"4\"\u003e4 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"6\"\u003e6 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"8\"\u003e8 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"10\"\u003e10 m\u003c\/button\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"kitb-hide\" data-el=\"bracciBox\"\u003e\n          \u003cp class=\"kitb-sub2\"\u003eCome dividiamo i due bracci della L? \u003cb\u003eScelta obbligatoria\u003c\/b\u003e\u003c\/p\u003e\n          \u003cdiv class=\"kitb-opts\" data-el=\"bracci\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e3\u003c\/span\u003e Alimentatore\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts\" data-el=\"alim\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"bordo\"\u003eA bordo 100W\u003csmall\u003ecompatto, sul binario\u003c\/small\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"remoto\"\u003eRemoto 120W\u003csmall data-el=\"remLabel\"\u003enascosto\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e4\u003c\/span\u003e Quali luci monti?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-mods\" data-el=\"mods\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e5\u003c\/span\u003e Cover copri-pista\u003c\/div\u003e\n        \u003clabel class=\"kitb-check\"\u003e\u003cinput type=\"checkbox\" data-el=\"cover\"\u003e Sì, nascondi le piste elettrificate \u003cspan data-el=\"coverLabel\"\u003e\u003c\/span\u003e\u003c\/label\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-card\"\u003e\n        \u003cdiv data-el=\"dist\"\u003e\u003c\/div\u003e\n        \u003cp class=\"kitb-pot\" data-el=\"pot\"\u003e\u003c\/p\u003e\n        \u003cdiv class=\"kitb-tot\"\u003e\n\u003cspan\u003eTotale\u003c\/span\u003e\u003cb data-el=\"tot\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cbutton type=\"button\" class=\"kitb-cta\" data-el=\"add\"\u003eAggiungi al carrello\u003c\/button\u003e\n        \u003cp class=\"kitb-msg\" data-el=\"msg\"\u003e\u003c\/p\u003e\n        \u003cp class=\"kitb-safe\"\u003ePrezzi IVA inclusa. Prima di spedire ricontrolliamo tutto: compatibilità, potenze e quantità. Se qualcosa non torna ti chiamiamo.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  function boot(){\n    var root = document.getElementById('kitb-likht');\n    if(!root || root.dataset.on) return;\n    root.dataset.on = '1';\n\n    \/* i prezzi NON sono scritti qui: si leggono dalle schede prodotto del sito *\/\n    var COMP = {\n      binario:  'gea-gbin30',\n      giuntoL:  'gea-gbigl1',\n      giuntoA:  'gea-gbiga1',\n      testata:  'gea-gbigr1',\n      alimBordo:'gea-gbitr5',\n      alimRem:  'gea-gaeta-tr-r2',\n      cover:    'gea-gbicov'\n    };\n    var NOMI = {\n      binario:'Binario 2 m', giuntoL:'Giunzione lineare', giuntoA:'Giunzione angolare 90\\u00b0',\n      testata:'Connessione di testata', alimBordo:'Alimentatore a bordo 100W',\n      alimRem:'Alimentatore remoto 120W', cover:'Cover copri-pista 1 m'\n    };\n\n    \/* raggruppati per famiglia: le varianti dello stesso apparecchio stanno vicine *\/\n    var MODULI = [\n      {h:'gea-gfa1540', n:'Cilindro orientabile',     d:'\\u00d83,5 cm \\u00b7 fascio 38\\u00b0', w:8},\n      {h:'gea-gfa1541', n:'Cilindro orientabile',     d:'\\u00d85,5 cm \\u00b7 fascio 38\\u00b0', w:18},\n      {h:'gea-gfa1520', n:'Linea luce diffusa',       d:'29 cm', w:12},\n      {h:'gea-gfa1521', n:'Linea luce diffusa',       d:'49 cm', w:24},\n      {h:'gea-gfa1530', n:'Riga micro antiabbaglio',  d:'20 cm', w:12},\n      {h:'gea-gfa1531', n:'Riga micro antiabbaglio',  d:'39 cm', w:24},\n      {h:'gea-gfa1550', n:'Candela',                  d:'\\u00d83,5 cm \\u00b7 fascio 38\\u00b0', w:10},\n      {h:'gea-gfa1560', n:'Sfera \\u00d812 cm',        d:'luce diffusa 110\\u00b0', w:6}\n    ];\n\n    var P = {};    \/* prezzi letti dal sito, in euro *\/\n    var VID = {};  \/* id variante *\/\n    var S = { forma:'lineare', lung:2, alim:'bordo', cover:false, bracci:null, qta:{} };\n    MODULI.forEach(function(m){ S.qta[m.h] = 0; });\n\n    function eur(n){ return n.toFixed(2).replace('.', ',') + ' \\u20ac'; }\n    function el(k){ return root.querySelector('[data-el=\"' + k + '\"]'); }\n    function els(k){ return root.querySelectorAll('[data-el=\"' + k + '\"]'); }\n\n    \/* --- divisioni possibili della L: il binario si taglia, quindi i bracci\n           vanno a passi di 1 m (2 m si puo' dividere 1+1) --- *\/\n    function divisioni(m){\n      var out = [];\n      for(var a = 1; a \u003c= m - 1; a++) out.push([a, m - a]);\n      return out;\n    }\n\n    function sezioni(m){ return m \/ 2; }\n\n    \/* pezzi in cui si compone un braccio lungo L: si usano barre intere da 2 m\n       e al massimo un mezzo spezzone, quindi ceil(L\/2) *\/\n    function pezzi(L){ return Math.ceil(L \/ 2); }\n\n    function giuntiLineari(){\n      if(S.forma !== 'elle'){ return sezioni(S.lung) - 1; }\n      if(!S.bracci) return 0;\n      var b = S.bracci.split('+').map(Number);\n      return (pezzi(b[0]) - 1) + (pezzi(b[1]) - 1);\n    }\n\n    function distinta(){\n      var N = sezioni(S.lung), d = [];\n      d.push({k:'binario', q:N});\n      if(S.forma === 'elle'){\n        d.push({k:'giuntoA', q:1});\n        var gl = giuntiLineari();\n        if(gl \u003e 0) d.push({k:'giuntoL', q:gl});\n      } else if(N \u003e 1){\n        d.push({k:'giuntoL', q:N - 1});\n      }\n      if(S.alim === 'remoto'){\n        d.push({k:'alimRem', q:1});\n        d.push({k:'testata', q:1});\n      } else {\n        d.push({k:'alimBordo', q:1});\n      }\n      if(S.cover) d.push({k:'cover', q:2 * S.lung});\n      return d;\n    }\n\n    function watt(){\n      var t = 0;\n      MODULI.forEach(function(m){ t += S.qta[m.h] * m.w; });\n      return t;\n    }\n    function maxWatt(){ return S.alim === 'remoto' ? 120 : 100; }\n    var MAX_ASSOLUTO = 120;   \/* il piu' potente disponibile: oltre serve un progetto *\/\n\n    function prezzoDi(h){ return typeof P[h] === 'number' ? P[h] : null; }\n\n    function totale(){\n      var t = 0, mancante = false;\n      distinta().forEach(function(r){\n        var p = prezzoDi(COMP[r.k]);\n        if(p === null) mancante = true; else t += p * r.q;\n      });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          var p = prezzoDi(m.h);\n          if(p === null) mancante = true; else t += p * S.qta[m.h];\n        }\n      });\n      return mancante ? null : t;\n    }\n\n    \/* --- interfaccia --- *\/\n\n    function disegnaModuli(){\n      var box = el('mods');\n      box.innerHTML = MODULI.map(function(m){\n        var p = prezzoDi(m.h);\n        return '\u003cdiv class=\"kitb-mod\" data-h=\"' + m.h + '\"\u003e' +\n          '\u003cspan class=\"kitb-mi\"\u003e\u003cb\u003e' + m.n + ' ' + m.w + 'W\u003c\/b\u003e' +\n          '\u003csmall\u003e' + m.d + '\u003c\/small\u003e\u003c\/span\u003e' +\n          '\u003cspan class=\"kitb-qty\"\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"-1\" aria-label=\"Uno in meno\"\u003e\\u2013\u003c\/button\u003e' +\n            '\u003cspan data-q=\"' + m.h + '\"\u003e0\u003c\/span\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"1\" aria-label=\"Uno in piu\"\u003e+\u003c\/button\u003e' +\n          '\u003c\/span\u003e\u003c\/div\u003e';\n      }).join('');\n      box.querySelectorAll('button').forEach(function(b){\n        b.addEventListener('click', function(){\n          var h = b.closest('.kitb-mod').getAttribute('data-h');\n          S.qta[h] = Math.max(0, S.qta[h] + parseInt(b.getAttribute('data-d'), 10));\n          render();\n        });\n      });\n    }\n\n    function disegnaBracci(){\n      var box = el('bracciBox'), opt = el('bracci');\n      if(S.forma !== 'elle'){ box.className = 'kitb-hide'; return; }\n      box.className = '';\n      var div = divisioni(S.lung);\n      opt.innerHTML = div.map(function(d){\n        var v = d[0] + '+' + d[1];\n        var on = (S.bracci === v) ? ' on' : '';\n        return '\u003cbutton type=\"button\" class=\"kitb-opt' + on + '\" data-v=\"' + v + '\"\u003e' +\n               d[0] + ' m + ' + d[1] + ' m\u003c\/button\u003e';\n      }).join('');\n      opt.querySelectorAll('button').forEach(function(b){\n        b.addEventListener('click', function(){\n          S.bracci = b.getAttribute('data-v');\n          render();\n        });\n      });\n    }\n\n    function render(){\n      els('forma')[0].querySelectorAll('button').forEach(function(b){\n        b.className = 'kitb-opt' + (b.getAttribute('data-v') === S.forma ? ' on' : '');\n      });\n      el('lung').querySelectorAll('button').forEach(function(b){\n        var m = parseInt(b.getAttribute('data-v'), 10);\n        b.className = 'kitb-opt' + (m === S.lung ? ' on' : '');\n      });\n      el('alim').querySelectorAll('button').forEach(function(b){\n        b.className = 'kitb-opt' + (b.getAttribute('data-v') === S.alim ? ' on' : '');\n      });\n\n      \/* se cambio metri, la divisione scelta prima potrebbe non esistere piu' *\/\n      if(S.forma === 'elle' \u0026\u0026 S.bracci){\n        var ok = divisioni(S.lung).some(function(d){ return d[0] + '+' + d[1] === S.bracci; });\n        if(!ok) S.bracci = null;\n      }\n      disegnaBracci();\n\n      MODULI.forEach(function(m){\n        var q = root.querySelector('[data-q=\"' + m.h + '\"]');\n        if(q) q.textContent = S.qta[m.h];\n      });\n\n      el('remLabel').textContent = 'nascosto';\n      el('coverLabel').textContent = '';\n\n      var righe = [];\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eForma\u003c\/span\u003e\u003ci\u003e' + (S.forma === 'elle' ? 'A L' : 'Lineare') + '\u003c\/i\u003e\u003c\/div\u003e');\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eLunghezza\u003c\/span\u003e\u003ci\u003e' + S.lung + ' m\u003c\/i\u003e\u003c\/div\u003e');\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eAlimentatore\u003c\/span\u003e\u003ci\u003e' + (S.alim === 'remoto' ? 'Remoto 120W' : 'A bordo 100W') + '\u003c\/i\u003e\u003c\/div\u003e');\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003e' + m.n + ' ' + m.w + 'W\u003c\/span\u003e\u003ci\u003e\\u00d7 ' + S.qta[m.h] + '\u003c\/i\u003e\u003c\/div\u003e');\n        }\n      });\n      if(S.cover) righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eCover copri-pista\u003c\/span\u003e\u003ci\u003eS\\u00ec\u003c\/i\u003e\u003c\/div\u003e');\n      el('dist').innerHTML = righe.join('');\n\n      var w = watt(), mx = maxWatt(), pot = el('pot');\n      if(w === 0){\n        pot.className = 'kitb-pot';\n        pot.textContent = 'Nessuna luce selezionata.';\n      } else if(w \u003e MAX_ASSOLUTO){\n        \/* nemmeno il 120W basta: qui non c'e' scelta che tenga, serve un progetto *\/\n        pot.className = 'kitb-pot kitb-over';\n        pot.textContent = 'Carico ' + w + 'W: superi il massimo di ' + MAX_ASSOLUTO +\n          'W di un solo alimentatore. Scrivici a info@likht.it e ti prepariamo il progetto ' +\n          'con pi\\u00f9 linee o alimentatori pi\\u00f9 potenti.';\n      } else if(w \u003e mx){\n        pot.className = 'kitb-pot kitb-over';\n        pot.textContent = 'Carico ' + w + 'W su ' + mx + 'W: passa all\\'alimentatore remoto da ' +\n          MAX_ASSOLUTO + 'W, oppure togli qualche luce.';\n      } else {\n        pot.className = 'kitb-pot kitb-ok';\n        pot.textContent = 'Carico ' + w + 'W su ' + mx + 'W disponibili.';\n      }\n\n      var t = totale();\n      el('tot').textContent = t === null ? '\\u2014' : eur(t);\n\n      var bloccoL = (S.forma === 'elle' \u0026\u0026 !S.bracci);\n      var btn = el('add');\n      btn.disabled = (t === null) || (w \u003e mx) || bloccoL;\n      btn.textContent = bloccoL ? 'Scegli come dividere la L' : 'Aggiungi al carrello';\n    }\n\n    \/* --- eventi --- *\/\n    el('forma').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.forma = b.getAttribute('data-v'); S.bracci = null; render(); });\n    });\n    el('lung').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.lung = parseInt(b.getAttribute('data-v'), 10); render(); });\n    });\n    el('alim').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.alim = b.getAttribute('data-v'); render(); });\n    });\n    el('cover').addEventListener('change', function(e){ S.cover = e.target.checked; render(); });\n\n    \/* --- carico prezzi e id variante dalle schede del sito --- *\/\n    function carica(){\n      var tutti = MODULI.map(function(m){ return m.h; });\n      Object.keys(COMP).forEach(function(k){ tutti.push(COMP[k]); });\n      return Promise.all(tutti.map(function(h){\n        return fetch('\/products\/' + h + '.js')\n          .then(function(r){ return r.ok ? r.json() : null; })\n          .then(function(p){\n            if(p \u0026\u0026 p.variants \u0026\u0026 p.variants[0]){\n              VID[h] = p.variants[0].id;\n              P[h] = p.variants[0].price \/ 100;\n            }\n          })\n          .catch(function(){});\n      }));\n    }\n\n    el('add').addEventListener('click', function(){\n      var righe = distinta().map(function(r){ return {h:COMP[r.k], q:r.q, n:NOMI[r.k]}; });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0) righe.push({h:m.h, q:S.qta[m.h], n:m.n + ' ' + m.w + 'W'});\n      });\n      var mancanti = righe.filter(function(r){ return !VID[r.h]; });\n      if(mancanti.length){\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Componente non disponibile: ' + mancanti[0].n + '. Scrivici e lo sistemiamo subito.';\n        return;\n      }\n      var etichetta = (S.forma === 'elle' ? 'A L' : 'Lineare') + ' \\u00b7 ' + S.lung + ' m \\u00b7 ' +\n                      (S.alim === 'remoto' ? 'alim. remoto 120W' : 'alim. a bordo 100W');\n      var items = righe.map(function(r){\n        var pr = { 'Kit binario': etichetta };\n        if(S.forma === 'elle' \u0026\u0026 S.bracci) pr['Bracci'] = S.bracci.replace('+', ' m + ') + ' m';\n        return { id: VID[r.h], quantity: r.q, properties: pr };\n      });\n      el('add').disabled = true;\n      el('msg').className = 'kitb-msg';\n      el('msg').textContent = 'Aggiungo al carrello\\u2026';\n      fetch('\/cart\/add.js', {\n        method:'POST', headers:{'Content-Type':'application\/json'},\n        body: JSON.stringify({ items: items })\n      })\n      .then(function(r){ return r.json().then(function(j){ return {ok:r.ok, j:j}; }); })\n      .then(function(res){\n        el('add').disabled = false;\n        if(res.ok){\n          el('msg').className = 'kitb-msg';\n          el('msg').textContent = 'Kit aggiunto al carrello.';\n          fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(c){\n            var b = document.querySelectorAll('.cart-count-bubble span:first-child');\n            for(var i = 0; i \u003c b.length; i++) b[i].textContent = c.item_count;\n          }).catch(function(){});\n        } else {\n          el('msg').className = 'kitb-msg kitb-err';\n          el('msg').textContent = (res.j \u0026\u0026 res.j.description) || 'Non sono riuscito ad aggiungerlo. Riprova.';\n        }\n      })\n      .catch(function(){\n        el('add').disabled = false;\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Non sono riuscito ad aggiungerlo. Riprova.';\n      });\n    });\n\n    \/* --- il configuratore vive nella descrizione, che il tema stampa sotto i\n           bottoni di acquisto: lo risaliamo sopra il modulo d'acquisto, e\n           nascondiamo prezzo e bottone nativi (qui si compra dal configuratore,\n           il prezzo fisso della scheda non vuol dire niente) --- *\/\n    function spostaSopraCarrello(){\n      if(root.dataset.su) return;\n      var anc = null, s = ['product-form','.product-form','.product-form__buttons','.shopify-payment-button'];\n      for(var i = 0; i \u003c s.length \u0026\u0026 !anc; i++){\n        var e = document.querySelector(s[i]);\n        if(e \u0026\u0026 e.parentNode \u0026\u0026 !root.contains(e)) anc = e;\n      }\n      if(!anc) return;\n      anc.parentNode.insertBefore(root, anc);\n      root.dataset.su = '1';\n      var box = anc.closest('.product__info-container') || anc.parentNode;\n      box.querySelectorAll('product-form, .product-form, .price, .product__tax, noscript, ' +\n                           '.product-form__quantity, .quantity__label, quantity-input, .quantity')\n         .forEach(function(n){ if(!root.contains(n)) n.style.display = 'none'; });\n    }\n\n    disegnaModuli();\n    render();\n    spostaSopraCarrello();\n    carica().then(function(){ disegnaModuli(); render(); spostaSopraCarrello(); });\n  }\n\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n})();\n\u003c\/script\u003e\n","brand":"Likht","offers":[{"title":"Default Title","offer_id":56528377282900,"sku":"KITBIN-48V-CFG","price":114.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1048\/8227\/4644\/files\/PHOTO-2026-07-21-16-49-11.jpg?v=1784647595"},{"product_id":"kit-binario-ultrasottile-48v-bianco","title":"Kit Binario Ultrasottile 48V - Bianco","description":"\u003cstyle\u003e\n#kitb-likht{color:#141414;margin:0}\n#kitb-likht *{box-sizing:border-box}\n.kitb-eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#8a8a8a;margin-bottom:8px}\n.kitb-h2{font-size:26px;line-height:1.15;margin:0 0 8px;font-weight:600}\n.kitb-sub{color:#5c5c5c;max-width:62ch;margin:0 0 6px;font-size:15px;line-height:1.5}\n.kitb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:30px;margin-top:26px;align-items:start}\n.kitb-b{margin-bottom:26px}\n.kitb-q{font-weight:600;font-size:16px;margin-bottom:11px;display:flex;align-items:center;gap:10px}\n.kitb-q span{width:23px;height:23px;border-radius:50%;background:#141414;color:#fff;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}\n.kitb-opts{display:flex;flex-wrap:wrap;gap:9px}\n.kitb-opt{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:11px 15px;cursor:pointer;font:inherit;font-size:15px;text-align:left;line-height:1.3;transition:border-color .15s,box-shadow .15s;color:#141414}\n.kitb-opt small{display:block;color:#8a8a8a;font-size:12px;margin-top:3px}\n.kitb-opt:hover{border-color:#b0b0b0}\n.kitb-opt.on{border-color:#141414;box-shadow:inset 0 0 0 1px #141414}\n.kitb-opt.kitb-off{opacity:.35;pointer-events:none}\n.kitb-len .kitb-opt{min-width:70px;text-align:center}\n.kitb-sub2{font-size:14px;color:#5c5c5c;margin:14px 0 9px}\n.kitb-hide{display:none}\n.kitb-mods{display:grid;gap:8px}\n.kitb-mod{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:10px 13px}\n.kitb-mi b{display:block;font-size:15px}\n.kitb-mi small{color:#8a8a8a;font-size:12.5px}\n.kitb-qty{display:flex;align-items:center;gap:4px;flex:0 0 auto}\n.kitb-qty button{width:30px;height:30px;border:1px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:16px;line-height:1;color:#141414;padding:0}\n.kitb-qty button:hover{border-color:#141414}\n.kitb-qty span{min-width:26px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600}\n.kitb-check{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #ececec;border-radius:10px;padding:12px 13px;cursor:pointer;font-size:15px}\n.kitb-check input{width:17px;height:17px;flex:0 0 auto}\n.kitb-card{position:sticky;top:24px;background:#fafafa;border:1px solid #e6e6e6;border-radius:14px;padding:20px}\n.kitb-r{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;color:#5c5c5c;padding:5px 0;border-bottom:1px dashed #e6e6e6}\n.kitb-r i{font-style:normal;font-variant-numeric:tabular-nums;white-space:nowrap}\n.kitb-pot{margin:14px 0 4px;font-size:13.5px;color:#8a8a8a}\n.kitb-pot.kitb-ok{color:#2c7a4b}\n.kitb-pot.kitb-over{color:#b3261e}\n.kitb-tot{display:flex;justify-content:space-between;align-items:baseline;margin:12px 0 14px;padding-top:12px;border-top:1px solid #e0e0e0}\n.kitb-tot b{font-size:25px;font-variant-numeric:tabular-nums}\n.kitb-cta{width:100%;background:#141414;color:#fff;border:0;border-radius:10px;padding:14px 18px;font:inherit;font-weight:600;cursor:pointer}\n.kitb-cta:hover{background:#000}\n.kitb-cta:disabled{background:#c9c9c9;cursor:not-allowed}\n.kitb-msg{font-size:13px;margin-top:9px;color:#5c5c5c;min-height:1em}\n.kitb-msg.kitb-err{color:#b3261e}\n.kitb-safe{font-size:12.5px;color:#8a8a8a;margin:12px 0 0;line-height:1.45}\n\u003c\/style\u003e\n\n\u003cdiv id=\"kitb-likht\"\u003e\n  \u003cdiv class=\"kitb-eyebrow\"\u003eConfiguratore\u003c\/div\u003e\n  \u003ch2 class=\"kitb-h2\"\u003eKit Binario Ultrasottile 48V — Bianco\u003c\/h2\u003e\n  \u003cp class=\"kitb-sub\"\u003eVersione in finitura bianca. Componi il tuo binario: scegli forma, metri e luci. Il prezzo si aggiorna mentre scegli e ti arriva tutto già abbinato, pronto da montare.\u003c\/p\u003e\n\n  \u003cdiv class=\"kitb-grid\"\u003e\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e1\u003c\/span\u003e Che forma ha il binario?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts\" data-el=\"forma\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"lineare\"\u003eLineare\u003csmall\u003etutto dritto\u003c\/small\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"elle\"\u003eA L\u003csmall\u003econ angolo a 90°\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e2\u003c\/span\u003e Quanti metri in totale?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts kitb-len\" data-el=\"lung\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"2\"\u003e2 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"4\"\u003e4 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"6\"\u003e6 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"8\"\u003e8 m\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"10\"\u003e10 m\u003c\/button\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"kitb-hide\" data-el=\"bracciBox\"\u003e\n          \u003cp class=\"kitb-sub2\"\u003eCome dividiamo i due bracci della L? \u003cb\u003eScelta obbligatoria\u003c\/b\u003e\u003c\/p\u003e\n          \u003cdiv class=\"kitb-opts\" data-el=\"bracci\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e3\u003c\/span\u003e Alimentatore\u003c\/div\u003e\n        \u003cdiv class=\"kitb-opts\" data-el=\"alim\"\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt on\" data-v=\"bordo\"\u003eA bordo 100W\u003csmall\u003ecompatto, sul binario\u003c\/small\u003e\u003c\/button\u003e\n          \u003cbutton type=\"button\" class=\"kitb-opt\" data-v=\"remoto\"\u003eRemoto 120W\u003csmall data-el=\"remLabel\"\u003enascosto\u003c\/small\u003e\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e4\u003c\/span\u003e Quali luci monti?\u003c\/div\u003e\n        \u003cdiv class=\"kitb-mods\" data-el=\"mods\"\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"kitb-b\"\u003e\n        \u003cdiv class=\"kitb-q\"\u003e\n\u003cspan\u003e5\u003c\/span\u003e Cover copri-pista\u003c\/div\u003e\n        \u003clabel class=\"kitb-check\"\u003e\u003cinput type=\"checkbox\" data-el=\"cover\"\u003e Sì, nascondi le piste elettrificate \u003cspan data-el=\"coverLabel\"\u003e\u003c\/span\u003e\u003c\/label\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv\u003e\n      \u003cdiv class=\"kitb-card\"\u003e\n        \u003cdiv data-el=\"dist\"\u003e\u003c\/div\u003e\n        \u003cp class=\"kitb-pot\" data-el=\"pot\"\u003e\u003c\/p\u003e\n        \u003cdiv class=\"kitb-tot\"\u003e\n\u003cspan\u003eTotale\u003c\/span\u003e\u003cb data-el=\"tot\"\u003e—\u003c\/b\u003e\n\u003c\/div\u003e\n        \u003cbutton type=\"button\" class=\"kitb-cta\" data-el=\"add\"\u003eAggiungi al carrello\u003c\/button\u003e\n        \u003cp class=\"kitb-msg\" data-el=\"msg\"\u003e\u003c\/p\u003e\n        \u003cp class=\"kitb-safe\"\u003ePrezzi IVA inclusa. Prima di spedire ricontrolliamo tutto: compatibilità, potenze e quantità. Se qualcosa non torna ti chiamiamo.\u003c\/p\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  function boot(){\n    var root = document.getElementById('kitb-likht');\n    if(!root || root.dataset.on) return;\n    root.dataset.on = '1';\n\n    \/* i prezzi NON sono scritti qui: si leggono dalle schede prodotto del sito *\/\n    var COMP = {\n      binario:  'binario-ultrasottile-48v-8212-2-m-8212-bianco',\n      giuntoL:  'giunzione-lineare-per-binario-48v-bianco',\n      giuntoA:  'giunzione-angolare-90-176-per-binario-48v-bianco',\n      testata:  'connessione-di-testata-per-alimentatore-remoto-48v-nero-opaco-copia',\n      alimBordo:'alimentatore-a-bordo-100w-per-binario-48v-bianco',\n      alimRem:  'gea-gaeta-tr-r2',\n      cover:    'cover-copri-pista-per-binario-48v-8212-1-m-bianco'\n    };\n    var NOMI = {\n      binario:'Binario 2 m', giuntoL:'Giunzione lineare', giuntoA:'Giunzione angolare 90\\u00b0',\n      testata:'Connessione di testata', alimBordo:'Alimentatore a bordo 100W',\n      alimRem:'Alimentatore remoto 120W', cover:'Cover copri-pista 1 m'\n    };\n\n    \/* raggruppati per famiglia: le varianti dello stesso apparecchio stanno vicine *\/\n    var MODULI = [\n      {h:'faretto-orientabile-8w-o3-5-cm-binario-48v-bianco',              n:'Cilindro orientabile',    d:'\\u00d83,5 cm \\u00b7 fascio 38\\u00b0', w:8},\n      {h:'faretto-orientabile-18w-o5-5-cm-binario-48v-nero-opaco-copia',   n:'Cilindro orientabile',    d:'\\u00d85,5 cm \\u00b7 fascio 38\\u00b0', w:18},\n      {h:'barra-a-luce-diffusa-24w-49-cm-binario-48v-bianco',              n:'Linea luce diffusa',      d:'49 cm', w:24},\n      {h:'barra-antiabbaglio-12w-20-cm-binario-48v-bianco',                n:'Riga micro antiabbaglio', d:'10 cm', w:6},\n      {h:'sospensione-10w-8212-216-3-5-cm-8212-binario-48v-nero-opaco-copia', n:'Candela',              d:'\\u00d83,5 cm \\u00b7 fascio 38\\u00b0', w:10}\n    ];\n\n    var P = {};    \/* prezzi letti dal sito, in euro *\/\n    var VID = {};  \/* id variante *\/\n    var S = { forma:'lineare', lung:2, alim:'bordo', cover:false, bracci:null, qta:{} };\n    MODULI.forEach(function(m){ S.qta[m.h] = 0; });\n\n    function eur(n){ return n.toFixed(2).replace('.', ',') + ' \\u20ac'; }\n    function el(k){ return root.querySelector('[data-el=\"' + k + '\"]'); }\n    function els(k){ return root.querySelectorAll('[data-el=\"' + k + '\"]'); }\n\n    \/* --- divisioni possibili della L: il binario si taglia, quindi i bracci\n           vanno a passi di 1 m (2 m si puo' dividere 1+1) --- *\/\n    function divisioni(m){\n      var out = [];\n      for(var a = 1; a \u003c= m - 1; a++) out.push([a, m - a]);\n      return out;\n    }\n\n    function sezioni(m){ return m \/ 2; }\n\n    \/* pezzi in cui si compone un braccio lungo L: si usano barre intere da 2 m\n       e al massimo un mezzo spezzone, quindi ceil(L\/2) *\/\n    function pezzi(L){ return Math.ceil(L \/ 2); }\n\n    function giuntiLineari(){\n      if(S.forma !== 'elle'){ return sezioni(S.lung) - 1; }\n      if(!S.bracci) return 0;\n      var b = S.bracci.split('+').map(Number);\n      return (pezzi(b[0]) - 1) + (pezzi(b[1]) - 1);\n    }\n\n    function distinta(){\n      var N = sezioni(S.lung), d = [];\n      d.push({k:'binario', q:N});\n      if(S.forma === 'elle'){\n        d.push({k:'giuntoA', q:1});\n        var gl = giuntiLineari();\n        if(gl \u003e 0) d.push({k:'giuntoL', q:gl});\n      } else if(N \u003e 1){\n        d.push({k:'giuntoL', q:N - 1});\n      }\n      if(S.alim === 'remoto'){\n        d.push({k:'alimRem', q:1});\n        d.push({k:'testata', q:1});\n      } else {\n        d.push({k:'alimBordo', q:1});\n      }\n      if(S.cover) d.push({k:'cover', q:2 * S.lung});\n      return d;\n    }\n\n    function watt(){\n      var t = 0;\n      MODULI.forEach(function(m){ t += S.qta[m.h] * m.w; });\n      return t;\n    }\n    function maxWatt(){ return S.alim === 'remoto' ? 120 : 100; }\n    var MAX_ASSOLUTO = 120;   \/* il piu' potente disponibile: oltre serve un progetto *\/\n\n    function prezzoDi(h){ return typeof P[h] === 'number' ? P[h] : null; }\n\n    function totale(){\n      var t = 0, mancante = false;\n      distinta().forEach(function(r){\n        var p = prezzoDi(COMP[r.k]);\n        if(p === null) mancante = true; else t += p * r.q;\n      });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          var p = prezzoDi(m.h);\n          if(p === null) mancante = true; else t += p * S.qta[m.h];\n        }\n      });\n      return mancante ? null : t;\n    }\n\n    \/* --- interfaccia --- *\/\n\n    function disegnaModuli(){\n      var box = el('mods');\n      box.innerHTML = MODULI.map(function(m){\n        var p = prezzoDi(m.h);\n        return '\u003cdiv class=\"kitb-mod\" data-h=\"' + m.h + '\"\u003e' +\n          '\u003cspan class=\"kitb-mi\"\u003e\u003cb\u003e' + m.n + ' ' + m.w + 'W\u003c\/b\u003e' +\n          '\u003csmall\u003e' + m.d + '\u003c\/small\u003e\u003c\/span\u003e' +\n          '\u003cspan class=\"kitb-qty\"\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"-1\" aria-label=\"Uno in meno\"\u003e\\u2013\u003c\/button\u003e' +\n            '\u003cspan data-q=\"' + m.h + '\"\u003e0\u003c\/span\u003e' +\n            '\u003cbutton type=\"button\" data-d=\"1\" aria-label=\"Uno in piu\"\u003e+\u003c\/button\u003e' +\n          '\u003c\/span\u003e\u003c\/div\u003e';\n      }).join('');\n      box.querySelectorAll('button').forEach(function(b){\n        b.addEventListener('click', function(){\n          var h = b.closest('.kitb-mod').getAttribute('data-h');\n          S.qta[h] = Math.max(0, S.qta[h] + parseInt(b.getAttribute('data-d'), 10));\n          render();\n        });\n      });\n    }\n\n    function disegnaBracci(){\n      var box = el('bracciBox'), opt = el('bracci');\n      if(S.forma !== 'elle'){ box.className = 'kitb-hide'; return; }\n      box.className = '';\n      var div = divisioni(S.lung);\n      opt.innerHTML = div.map(function(d){\n        var v = d[0] + '+' + d[1];\n        var on = (S.bracci === v) ? ' on' : '';\n        return '\u003cbutton type=\"button\" class=\"kitb-opt' + on + '\" data-v=\"' + v + '\"\u003e' +\n               d[0] + ' m + ' + d[1] + ' m\u003c\/button\u003e';\n      }).join('');\n      opt.querySelectorAll('button').forEach(function(b){\n        b.addEventListener('click', function(){\n          S.bracci = b.getAttribute('data-v');\n          render();\n        });\n      });\n    }\n\n    function render(){\n      els('forma')[0].querySelectorAll('button').forEach(function(b){\n        b.className = 'kitb-opt' + (b.getAttribute('data-v') === S.forma ? ' on' : '');\n      });\n      el('lung').querySelectorAll('button').forEach(function(b){\n        var m = parseInt(b.getAttribute('data-v'), 10);\n        b.className = 'kitb-opt' + (m === S.lung ? ' on' : '');\n      });\n      el('alim').querySelectorAll('button').forEach(function(b){\n        b.className = 'kitb-opt' + (b.getAttribute('data-v') === S.alim ? ' on' : '');\n      });\n\n      \/* se cambio metri, la divisione scelta prima potrebbe non esistere piu' *\/\n      if(S.forma === 'elle' \u0026\u0026 S.bracci){\n        var ok = divisioni(S.lung).some(function(d){ return d[0] + '+' + d[1] === S.bracci; });\n        if(!ok) S.bracci = null;\n      }\n      disegnaBracci();\n\n      MODULI.forEach(function(m){\n        var q = root.querySelector('[data-q=\"' + m.h + '\"]');\n        if(q) q.textContent = S.qta[m.h];\n      });\n\n      el('remLabel').textContent = 'nascosto';\n      el('coverLabel').textContent = '';\n\n      var righe = [];\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eForma\u003c\/span\u003e\u003ci\u003e' + (S.forma === 'elle' ? 'A L' : 'Lineare') + '\u003c\/i\u003e\u003c\/div\u003e');\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eLunghezza\u003c\/span\u003e\u003ci\u003e' + S.lung + ' m\u003c\/i\u003e\u003c\/div\u003e');\n      righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eAlimentatore\u003c\/span\u003e\u003ci\u003e' + (S.alim === 'remoto' ? 'Remoto 120W' : 'A bordo 100W') + '\u003c\/i\u003e\u003c\/div\u003e');\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0){\n          righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003e' + m.n + ' ' + m.w + 'W\u003c\/span\u003e\u003ci\u003e\\u00d7 ' + S.qta[m.h] + '\u003c\/i\u003e\u003c\/div\u003e');\n        }\n      });\n      if(S.cover) righe.push('\u003cdiv class=\"kitb-r\"\u003e\u003cspan\u003eCover copri-pista\u003c\/span\u003e\u003ci\u003eS\\u00ec\u003c\/i\u003e\u003c\/div\u003e');\n      el('dist').innerHTML = righe.join('');\n\n      var w = watt(), mx = maxWatt(), pot = el('pot');\n      if(w === 0){\n        pot.className = 'kitb-pot';\n        pot.textContent = 'Nessuna luce selezionata.';\n      } else if(w \u003e MAX_ASSOLUTO){\n        \/* nemmeno il 120W basta: qui non c'e' scelta che tenga, serve un progetto *\/\n        pot.className = 'kitb-pot kitb-over';\n        pot.textContent = 'Carico ' + w + 'W: superi il massimo di ' + MAX_ASSOLUTO +\n          'W di un solo alimentatore. Scrivici a info@likht.it e ti prepariamo il progetto ' +\n          'con pi\\u00f9 linee o alimentatori pi\\u00f9 potenti.';\n      } else if(w \u003e mx){\n        pot.className = 'kitb-pot kitb-over';\n        pot.textContent = 'Carico ' + w + 'W su ' + mx + 'W: passa all\\'alimentatore remoto da ' +\n          MAX_ASSOLUTO + 'W, oppure togli qualche luce.';\n      } else {\n        pot.className = 'kitb-pot kitb-ok';\n        pot.textContent = 'Carico ' + w + 'W su ' + mx + 'W disponibili.';\n      }\n\n      var t = totale();\n      el('tot').textContent = t === null ? '\\u2014' : eur(t);\n\n      var bloccoL = (S.forma === 'elle' \u0026\u0026 !S.bracci);\n      var btn = el('add');\n      btn.disabled = (t === null) || (w \u003e mx) || bloccoL;\n      btn.textContent = bloccoL ? 'Scegli come dividere la L' : 'Aggiungi al carrello';\n    }\n\n    \/* --- eventi --- *\/\n    el('forma').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.forma = b.getAttribute('data-v'); S.bracci = null; render(); });\n    });\n    el('lung').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.lung = parseInt(b.getAttribute('data-v'), 10); render(); });\n    });\n    el('alim').querySelectorAll('button').forEach(function(b){\n      b.addEventListener('click', function(){ S.alim = b.getAttribute('data-v'); render(); });\n    });\n    el('cover').addEventListener('change', function(e){ S.cover = e.target.checked; render(); });\n\n    \/* --- carico prezzi e id variante dalle schede del sito --- *\/\n    function carica(){\n      var tutti = MODULI.map(function(m){ return m.h; });\n      Object.keys(COMP).forEach(function(k){ tutti.push(COMP[k]); });\n      return Promise.all(tutti.map(function(h){\n        return fetch('\/products\/' + h + '.js')\n          .then(function(r){ return r.ok ? r.json() : null; })\n          .then(function(p){\n            if(p \u0026\u0026 p.variants \u0026\u0026 p.variants[0]){\n              VID[h] = p.variants[0].id;\n              P[h] = p.variants[0].price \/ 100;\n            }\n          })\n          .catch(function(){});\n      }));\n    }\n\n    el('add').addEventListener('click', function(){\n      var righe = distinta().map(function(r){ return {h:COMP[r.k], q:r.q, n:NOMI[r.k]}; });\n      MODULI.forEach(function(m){\n        if(S.qta[m.h] \u003e 0) righe.push({h:m.h, q:S.qta[m.h], n:m.n + ' ' + m.w + 'W'});\n      });\n      var mancanti = righe.filter(function(r){ return !VID[r.h]; });\n      if(mancanti.length){\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Componente non disponibile: ' + mancanti[0].n + '. Scrivici e lo sistemiamo subito.';\n        return;\n      }\n      var etichetta = (S.forma === 'elle' ? 'A L' : 'Lineare') + ' \\u00b7 ' + S.lung + ' m \\u00b7 ' +\n                      (S.alim === 'remoto' ? 'alim. remoto 120W' : 'alim. a bordo 100W');\n      var items = righe.map(function(r){\n        var pr = { 'Kit binario': etichetta };\n        if(S.forma === 'elle' \u0026\u0026 S.bracci) pr['Bracci'] = S.bracci.replace('+', ' m + ') + ' m';\n        return { id: VID[r.h], quantity: r.q, properties: pr };\n      });\n      el('add').disabled = true;\n      el('msg').className = 'kitb-msg';\n      el('msg').textContent = 'Aggiungo al carrello\\u2026';\n      fetch('\/cart\/add.js', {\n        method:'POST', headers:{'Content-Type':'application\/json'},\n        body: JSON.stringify({ items: items })\n      })\n      .then(function(r){ return r.json().then(function(j){ return {ok:r.ok, j:j}; }); })\n      .then(function(res){\n        el('add').disabled = false;\n        if(res.ok){\n          el('msg').className = 'kitb-msg';\n          el('msg').textContent = 'Kit aggiunto al carrello.';\n          fetch('\/cart.js').then(function(r){ return r.json(); }).then(function(c){\n            var b = document.querySelectorAll('.cart-count-bubble span:first-child');\n            for(var i = 0; i \u003c b.length; i++) b[i].textContent = c.item_count;\n          }).catch(function(){});\n        } else {\n          el('msg').className = 'kitb-msg kitb-err';\n          el('msg').textContent = (res.j \u0026\u0026 res.j.description) || 'Non sono riuscito ad aggiungerlo. Riprova.';\n        }\n      })\n      .catch(function(){\n        el('add').disabled = false;\n        el('msg').className = 'kitb-msg kitb-err';\n        el('msg').textContent = 'Non sono riuscito ad aggiungerlo. Riprova.';\n      });\n    });\n\n    \/* --- il configuratore vive nella descrizione, che il tema stampa sotto i\n           bottoni di acquisto: lo risaliamo sopra il modulo d'acquisto, e\n           nascondiamo prezzo e bottone nativi (qui si compra dal configuratore,\n           il prezzo fisso della scheda non vuol dire niente) --- *\/\n    function spostaSopraCarrello(){\n      if(root.dataset.su) return;\n      var anc = null, s = ['product-form','.product-form','.product-form__buttons','.shopify-payment-button'];\n      for(var i = 0; i \u003c s.length \u0026\u0026 !anc; i++){\n        var e = document.querySelector(s[i]);\n        if(e \u0026\u0026 e.parentNode \u0026\u0026 !root.contains(e)) anc = e;\n      }\n      if(!anc) return;\n      anc.parentNode.insertBefore(root, anc);\n      root.dataset.su = '1';\n      var box = anc.closest('.product__info-container') || anc.parentNode;\n      box.querySelectorAll('product-form, .product-form, .price, .product__tax, noscript, ' +\n                           '.product-form__quantity, .quantity__label, quantity-input, .quantity')\n         .forEach(function(n){ if(!root.contains(n)) n.style.display = 'none'; });\n    }\n\n    disegnaModuli();\n    render();\n    spostaSopraCarrello();\n    carica().then(function(){ disegnaModuli(); render(); spostaSopraCarrello(); });\n  }\n\n  if(document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n})();\n\u003c\/script\u003e\n","brand":"Likht","offers":[{"title":"Default Title","offer_id":56643485991252,"sku":"KITBIN-48V-CFG","price":114.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1048\/8227\/4644\/files\/ChatGPTImage3ago2026_11_12_25.png?v=1785749338"}],"url":"https:\/\/likht.it\/collections\/kit-binario.oembed","provider":"Likht","version":"1.0","type":"link"}