{
  "version": 3,
  "sources": ["/cdn/shop/t/9/assets/product-prova.js?t=1787751704"],
  "sourcesContent": ["var SDT = window.SDT || function (k, d) { var m = window.SD_I18N || {}; return (m[k] != null && m[k] !== '') ? m[k] : d; };\n(function(){\n  function buildStars(){\n    var s = document.createElement('span'); s.className = 'pp-stars';\n    s.textContent = '\u2605\u2605\u2605\u2605\u2605';\n    return s;\n  }\n  function once(el, key){ if (el.dataset[key]) return false; el.dataset[key] = '1'; return true; }\n\n  // 1) Sposta titolo + costruisci #pp-head (full-width sopra alle 3 colonne)\n  document.addEventListener('DOMContentLoaded', function(){\n    var wrapper = document.querySelector('.product-block-list__wrapper');\n    var title = document.querySelector('.product-block-list__item--info .product-meta__title');\n    var galleryCol = document.querySelector('.product-block-list__item--gallery');\n    if (wrapper && title && once(wrapper, 'ppHeadInjected')) {\n      var ppd0 = window.__pp_data || {};\n      var subtitleText = ppd0.subtitle || '';\n      var subtitleHtml = subtitleText\n        ? '<p class=\"pp-subtitle\">' + subtitleText.replace(/&/g,'&amp;').replace(/</g,'&lt;') + '</p>'\n        : '';\n      // Recensioni + acquistato deterministici da product.id (vedi main-product.liquid).\n      // Stessa formula di product-item-collection.liquid \u2192 card e PDP coerenti.\n      // Se reviewCount non \u00E8 settato (es. assicurazione-pacco), non renderizzare meta-row.\n      var hasRating = (typeof ppd0.reviewCount === 'number');\n      var metaRowHtml = '';\n      if (hasRating) {\n        var reviewCount = ppd0.reviewCount;\n        var purchasedCount = (typeof ppd0.purchasedCount === 'number') ? ppd0.purchasedCount : 59;\n        var halfStarHtml = ppd0.showHalfStar\n          ? '<span class=\"pp-stars\">\u2605\u2605\u2605\u2605<span class=\"pp-star-half\">\u2605</span></span>'\n          : '<span class=\"pp-stars\">\u2605\u2605\u2605\u2605\u2605</span>';\n        metaRowHtml =\n          '<div class=\"pp-meta-row\">' +\n            halfStarHtml +\n            '<span class=\"pp-rev-link\">' + SDT('prodotto_recensioni', 'Recensioni') + ' ' + reviewCount + '+</span>' +\n            '<span class=\"pp-purchased\">' + SDT('prodotto_acquistato_da', 'Acquistato da') + ' <b>' + purchasedCount + '+</b> ' + SDT('prodotto_persone', 'persone') + '</span>' +\n          '</div>';\n      }\n      var head = document.createElement('div');\n      head.id = 'pp-head';\n      head.innerHTML =\n        '<h1 class=\"pp-title\">' + (title.textContent || '').trim() + '</h1>' +\n        subtitleHtml +\n        metaRowHtml;\n      // Inserisci HEAD dentro la col 1 (gallery) come primo figlio,\n      // cos\u00EC il titolo sta a sinistra sopra la galleria invece di full-width.\n      var target = galleryCol || wrapper;\n      target.insertBefore(head, target.firstChild);\n    }\n\n    // 1a-bis) La tabella + codici OE generati lato server da `prova-compact-css`\n    //         sostituiscono completamente il body_html del prodotto (che era\n    //         pieno di residui generati dallo script di enrichment: titolo\n    //         duplicato, box verde/arancione, sezione \"Caratteristiche\" vuota,\n    //         \"Spedizione e Garanzia\", EAN/TecDoc/MPN/Enrichment, ecc.).\n    //         Pulisco il rte SVUOTANDOLO e poi lo ripopolo con le sole nostre\n    //         iniezioni server-side.\n    var rte = document.querySelector('.product-block-list__item--description .card__section .rte');\n    if (rte && once(rte, 'ppSpecsInjected')) {\n      rte.innerHTML = '';\n\n      // Tabella SPECIFICHE: prendi quella generata server-side dal liquid block\n      // `prova-compact-css` (dentro #pp-server-specs > table.pp-specs), che la\n      // popola dai metafield del prodotto. Se manca o \u00E8 vuota, nessuna tabella.\n      var serverHost = document.getElementById('pp-server-specs');\n      var serverTable = serverHost ? serverHost.querySelector('table.pp-specs') : null;\n      if (serverTable && serverTable.querySelector('tbody tr')) {\n        var wrap = document.createElement('div');\n        wrap.className = 'pp-specs-wrap';\n        wrap.appendChild(serverTable);\n        rte.insertBefore(wrap, rte.firstChild);\n\n        // Sposta anche il blocco \"Codici OE equivalenti\" se generato lato server\n        var serverOem = serverHost.querySelector('.pp-codici-oem');\n        if (serverOem && serverOem.children.length > 0) {\n          rte.insertBefore(serverOem, wrap.nextSibling);\n        }\n      }\n      if (serverHost && serverHost.parentNode) serverHost.parentNode.removeChild(serverHost);\n\n      // Se dopo le iniezioni il rte \u00E8 vuoto (= prodotto senza metafield arricchiti)\n      // nascondi l'intera card \"Descrizione\" per evitare una sezione spoglia.\n      if (!rte.children.length && !rte.textContent.trim()) {\n        var descCard = rte.closest('.product-block-list__item--description');\n        if (descCard) descCard.style.display = 'none';\n      }\n    }\n\n    // 1c) Rifai colonna info stile AUTODOC\n    var info = document.querySelector('.product-block-list__item--info');\n    if (info && once(info, 'ppInfoAutodoc')) {\n      // Trova il form (per inserire la nuova UI sopra il form, e cambiare il bottone)\n      var form = info.querySelector('form.product-form, .product-form, form[action*=\"/cart/add\"]');\n\n      // Estrai prezzo corrente e compare\n      function parseEuro(s){ s = (s||'').replace(/[^0-9,.]/g,'').replace(/\\./g,'').replace(',','.'); var n=parseFloat(s); return isFinite(n) ? n : null; }\n      var ppd = window.__pp_data || {};\n      var priceVal = (typeof ppd.price === 'number' && ppd.price > 0) ? ppd.price :\n                     parseEuro((info.querySelector('.price__regular, .price__current, .price') || {}).textContent);\n      var compareVal = (typeof ppd.compare === 'number' && ppd.compare > 0) ? ppd.compare :\n                       parseEuro((info.querySelector('.price__compare') || {}).textContent);\n      // Fallback: se non c'\u00E8 compare reale, usa un PVC fittizio (-23% rispetto al PVC)\n      if (priceVal && !compareVal) compareVal = +(priceVal / 0.77).toFixed(2);\n      var discountPct = (priceVal && compareVal && compareVal > priceVal)\n        ? Math.round((1 - priceVal/compareVal) * 100) : null;\n      function fmtEur(n){\n        if (n == null) return '';\n        var s = n.toFixed(2).split('.');\n        return s[0] + ',<sup>' + s[1] + '</sup> \u20AC';\n      }\n      function fmtEurPlain(n){\n        if (n == null) return '';\n        return n.toFixed(2).replace('.', ',') + ' \u20AC';\n      }\n\n      // Spedizione reale: corriere Lun-Ven 10:30, consegna in 2 giorni lavorativi.\n      // - Lun-Ven prima delle 10:30 \u2192 spedizione oggi\n      // - Lun-Ven dopo le 10:30 / Sab / Dom \u2192 spedizione prossimo giorno lavorativo\n      // - Sab/Dom NON sono giorni lavorativi (n\u00E9 per spedizione n\u00E9 per consegna).\n      function isWorkingDay(dt) { var w = dt.getDay(); return w >= 1 && w <= 5; }\n      function addWorkingDays(date, n) {\n        var r = new Date(date); var added = 0;\n        while (added < n) {\n          r.setDate(r.getDate() + 1);\n          if (isWorkingDay(r)) added++;\n        }\n        return r;\n      }\n      function computeShipping(at) {\n        var co = new Date(at); co.setHours(10, 30, 0, 0);\n        var ship;\n        if (isWorkingDay(at) && at < co) {\n          ship = new Date(at);\n        } else {\n          ship = new Date(at);\n          do { ship.setDate(ship.getDate() + 1); } while (!isWorkingDay(ship));\n          co = new Date(ship); co.setHours(10, 30, 0, 0);\n        }\n        return { cutoff: co, shipDay: ship };\n      }\n      var now = new Date();\n      var shipInfo = computeShipping(now);\n      var cutoff = shipInfo.cutoff;\n      var shipDay = shipInfo.shipDay;\n      var d = addWorkingDays(shipDay, 2);\n      var giorni = ['domenica','luned\u00EC','marted\u00EC','mercoled\u00EC','gioved\u00EC','venerd\u00EC','sabato'];\n      var mesi = ['gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre'];\n      var dataConsegna = giorni[d.getDay()] + ', ' + d.getDate() + ' ' + mesi[d.getMonth()];\n      var todayMid = new Date(now); todayMid.setHours(0,0,0,0);\n      var shipMid = new Date(shipDay); shipMid.setHours(0,0,0,0);\n      var dayDiff = Math.round((shipMid - todayMid) / 86400000);\n      var shipLabel = dayDiff === 0 ? 'oggi' : dayDiff === 1 ? 'domani' : giorni[shipMid.getDay()];\n\n      // Disponibilit\u00E0: cerca il selected-variant disponibile\n      var soldOut = !!info.querySelector('.product-form__add-button.button--disabled, [disabled][data-action*=\"add\"]');\n      var availHtml = soldOut\n        ? '<span class=\"pp-avail pp-avail--out\">' + SDT('prodotto_non_disponibile', 'Non disponibile') + '</span>'\n        : '<span class=\"pp-avail\">' + SDT('prodotto_disponibile', 'Disponibilit\u00E0 immediata') + '</span>';\n\n      var savings = (priceVal && compareVal && compareVal > priceVal) ? (compareVal - priceVal) : 0;\n      var savingsLabel = savings ? '-' + savings.toFixed(2).replace('.', ',') + ' \u20AC' : '';\n      var discountHtml = (savings && compareVal)\n        ? '<div class=\"pp-discount-row\"><span class=\"pp-discount-pill\">' + savingsLabel + '</span><span>' + SDT('prodotto_offerta_scadenza', 'Offerta visualizzata in scadenza.') + '</span></div>'\n        : '';\n\n      var sdIt = (document.documentElement.lang || 'it').slice(0,2) === 'it';\n      var newUi = document.createElement('div');\n      newUi.className = 'pp-info-stack';\n      newUi.innerHTML =\n        // Prezzo + pill risparmio sulla STESSA riga anche su desktop (prima era solo mobile).\n        // Il badge sconto sta accanto al prezzo, non sotto il chip Verifica \u2192 il resto della colonna sale.\n        '<div class=\"pp-price-discount-row\"><div class=\"pp-price\">' + (fmtEur(priceVal) || '') + '</div>' + discountHtml + '</div>' +\n        '<div class=\"pp-tax-disclaimer\">' + SDT('prodotto_prezzo_iva', 'Prezzo incl. IVA 22% \u00B7 escl. spese di spedizione') + '</div>' +\n        // Micro-richiamo \"Verifica compatibilit\u00E0\" (test conversione 30/08): porta al box .svt in fondo.\n        '<button type=\"button\" class=\"pp-verify-chip\" id=\"sd-verify-chip\" aria-label=\"' + SDT('prodotto_verifica_aria', 'Verifica se questo ricambio \u00E8 compatibile con il tuo Iveco Daily \u2014 porta al riquadro verifica sotto') + '\">' +\n          '<span class=\"pp-vchip-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#21263c\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"11\" cy=\"11\" r=\"7\"/><path d=\"M21 21l-4.3-4.3\"/></svg></span>' +\n          '<span class=\"pp-vchip-tx\"><b>' + SDT('prodotto_verifica_titolo', 'Verifica se \u00E8 compatibile col tuo Daily') + '</b><span>' + SDT('prodotto_verifica_sotto', 'Targa o telaio \u2014 risposta in 3 secondi') + '</span></span>' +\n          '<span class=\"pp-vchip-go\">' + SDT('prodotto_verifica_btn', 'Verifica') + ' <span class=\"pp-vchip-arrow\" aria-hidden=\"true\">\u2193</span></span>' +\n        '</button>' +\n        '<hr class=\"pp-divider\">' +\n        '<div class=\"pp-shipping-row\">' +\n          '<svg class=\"pp-truck-icon\" viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"#16a34a\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"1\" y=\"6\" width=\"13\" height=\"11\" rx=\"1\"/><path d=\"M14 9h4l3 3v5h-7z\"/><circle cx=\"6\" cy=\"19\" r=\"2\"/><circle cx=\"18\" cy=\"19\" r=\"2\"/></svg>' +\n          '<div class=\"pp-shipping-text\">' +\n            (sdIt\n              ? '<div>Ordina entro <b id=\"pp-countdown\">--h:--m</b> per la spedizione di <b>' + shipLabel + '</b></div>' +\n                '<div class=\"pp-delivery\"><b>Consegna entro</b>: ' + dataConsegna + '</div>'\n              : '<div><b>' + SDT('prodotto_spedizione_estero', 'Spedizione in Francia') + '</b></div>') +\n          '</div>' +\n        '</div>' +\n        '<div class=\"pp-avail-wrap\">' + availHtml + '</div>';\n\n      if (form && form.parentNode) {\n        form.parentNode.insertBefore(newUi, form);\n      } else {\n        info.insertBefore(newUi, info.firstChild);\n      }\n\n      // Micro-richiamo Verifica: click \u2192 porta al box .svt (sotto il carrello) e lo evidenzia.\n      // NON sposta il box (resta Es.3). Misura: evento sd_verify_chip_click \u2192 GA4 + dataLayer.\n      (function(){\n        var chip = newUi.querySelector('#sd-verify-chip');\n        if (!chip) return;\n        chip.addEventListener('click', function(){\n          var box = document.querySelector('.svt');\n          if (box) {\n            box.classList.add('svt--pulse');\n            box.scrollIntoView({ behavior: 'smooth', block: 'center' });\n            box.classList.remove('svt--pulse'); void box.offsetWidth; box.classList.add('svt--pulse');\n            var inp = box.querySelector('input');\n            if (inp) setTimeout(function(){ try { inp.focus({ preventScroll: true }); } catch(e){} }, 480);\n          }\n          try {\n            var handle = (location.pathname.split('/products/')[1] || '').split('?')[0];\n            window.dataLayer = window.dataLayer || [];\n            window.dataLayer.push({ event: 'sd_verify_chip_click', product_handle: handle });\n            if (typeof window.gtag === 'function') {\n              window.gtag('event', 'sd_verify_chip_click', { send_to: 'G-5W5ZS6GMS8', product_handle: handle });\n            }\n          } catch(e){}\n        });\n      })();\n\n      // Relocate variant-picker into custom UI, sotto Disponibilit\u00E0 immediata.\n      // Senza questo step product-prova.js nasconde l'intero variant-selector block.\n      var picker = info.querySelector('variant-picker');\n      if (picker) {\n        var pickerRow = document.createElement('div');\n        pickerRow.className = 'pp-variant-row';\n        pickerRow.appendChild(picker);\n        newUi.appendChild(pickerRow);\n      }\n\n      // Dopo product:rerender Shopify ri-inietta il blocco variant-selector originale\n      // con un picker fresh + quantity + inventory. La nostra UI custom \u00E8 gi\u00E0\n      // popolata, quindi rimuoviamo i duplicati per evitare state conflict\n      // (es. due input name=\"id\" che confondono il form submit).\n      if (form) {\n        form.addEventListener('product:rerender', function(){\n          document.querySelectorAll('variant-picker').forEach(function(p){\n            if (!p.closest('.pp-variant-row')) p.remove();\n          });\n        });\n      }\n\n      // Aggiorna pp-price + pp-discount-row al cambio variante.\n      // Il variant-picker dispatcha 'variant:change' sul form con detail.variant.\n      if (form) {\n        form.addEventListener('variant:change', function(e){\n          var v = e.detail && e.detail.variant;\n          if (!v) return;\n          var newPrice = (typeof v.price === 'number') ? v.price / 100 : null;\n          var newCompare = (typeof v.compare_at_price === 'number' && v.compare_at_price > 0) ? v.compare_at_price / 100 : null;\n          var priceEl = newUi.querySelector('.pp-price');\n          if (priceEl && newPrice != null) priceEl.innerHTML = fmtEur(newPrice) || '';\n          var savings = (newPrice && newCompare && newCompare > newPrice) ? (newCompare - newPrice) : 0;\n          var discountRow = newUi.querySelector('.pp-discount-row');\n          if (savings) {\n            var label = '-' + savings.toFixed(2).replace('.', ',') + ' \u20AC';\n            if (discountRow) {\n              var pill = discountRow.querySelector('.pp-discount-pill');\n              if (pill) pill.textContent = label;\n              discountRow.style.display = '';\n            } else {\n              var dr = document.createElement('div');\n              dr.className = 'pp-discount-row';\n              dr.innerHTML = '<span class=\"pp-discount-pill\">' + label + '</span><span>' + SDT('prodotto_offerta_scadenza', 'Offerta visualizzata in scadenza.') + '</span>';\n              // Ricrea la riga sconto accanto al prezzo (dentro .pp-price-discount-row); fallback: prima del divider.\n              var pdr = newUi.querySelector('.pp-price-discount-row');\n              if (pdr) { pdr.appendChild(dr); }\n              else { var divider = newUi.querySelector('.pp-divider'); if (divider && divider.parentNode === newUi) newUi.insertBefore(dr, divider); }\n            }\n          } else if (discountRow) {\n            discountRow.style.display = 'none';\n          }\n          // Aggiorna disponibilit\u00E0 (sold out vs in stock)\n          var availWrap = newUi.querySelector('.pp-avail-wrap');\n          if (availWrap) {\n            availWrap.innerHTML = v.available\n              ? '<span class=\"pp-avail\">' + SDT('prodotto_disponibile', 'Disponibilit\u00E0 immediata') + '</span>'\n              : '<span class=\"pp-avail pp-avail--out\">' + SDT('prodotto_non_disponibile', 'Non disponibile') + '</span>';\n          }\n          // Aggiorna l'etichetta \"Predisposizione: <valore>\" nel picker rilocato.\n          // Il product-rerender Shopify rimpiazza il blocco variant-selector\n          // originale, ma il nostro picker \u00E8 fuori dal blocco, quindi serve un\n          // update manuale dei selected-value.\n          var pickerEl = newUi.querySelector('variant-picker');\n          if (pickerEl) {\n            pickerEl.querySelectorAll('.product-form__option').forEach(function(optEl, idx){\n              var selVal = optEl.querySelector('.product-form__selected-value');\n              var newValue = v['option' + (idx + 1)];\n              if (selVal && newValue) selVal.textContent = newValue;\n            });\n          }\n        });\n      }\n\n      // Cambia testo bottone \"Aggiungi al carrello\" + icona carrello (ghost blu)\n      var addBtn = info.querySelector('.product-form__add-button, .product-form__cart-submit');\n      var CART_HTML = '<svg class=\"pp-cart-icon\" viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" style=\"display:inline-block;width:18px;height:18px;flex:0 0 auto\"><circle cx=\"9\" cy=\"21\" r=\"1.2\"/><circle cx=\"19\" cy=\"21\" r=\"1.2\"/><path d=\"M2 3h3l2.6 12.6a2 2 0 0 0 2 1.6h9a2 2 0 0 0 2-1.5L23 7H6\"/></svg><span>' + SDT('prodotto_aggiungi_carrello', 'Aggiungi al carrello') + '</span>';\n      function applyCart(){\n        if (!addBtn) return;\n        if (addBtn.querySelector('.pp-cart-icon')) return;\n        addBtn.innerHTML = CART_HTML;\n      }\n      applyCart();\n      setTimeout(applyCart, 300);\n      setTimeout(applyCart, 1000);\n      if (addBtn && window.MutationObserver) {\n        new MutationObserver(applyCart).observe(addBtn, { childList: true, subtree: true });\n      }\n\n      // Crea bottone \"Acquista ora\" (navy, sotto al carrello, stesso parent del row)\n      function ensureBuyNow(){\n        if (info.querySelector('.pp-buy-now')) return;\n        var row = info.querySelector('.pp-qty-cta-row');\n        if (!row || !addBtn) return;\n        var buyNow = document.createElement('button');\n        buyNow.type = 'button';\n        buyNow.className = 'pp-buy-now';\n        buyNow.innerHTML = SDT('prodotto_acquista_ora', 'Acquista ora');\n        // Mettilo SOTTO la row, stesso parent del row\n        if (row.parentNode) row.parentNode.insertBefore(buyNow, row.nextSibling);\n        buyNow.addEventListener('click', function(e){\n          e.preventDefault();\n          var f = info.querySelector('form.product-form');\n          if (!f) return;\n          var fd = new FormData(f);\n          fetch('/cart/add.js', { method:'POST', body: fd })\n            .then(function(){ window.location.href = '/checkout'; })\n            .catch(function(){ window.location.href = '/cart'; });\n        });\n      }\n      ensureBuyNow();\n      setTimeout(ensureBuyNow, 400);\n      setTimeout(ensureBuyNow, 1100);\n\n      // Wrap qty + CTA in .pp-qty-cta-row.\n      // IMPORTANT: il wrap diventa figlio DIRETTO del card__section di info\n      // (non lasciato in sotto-container Dawn con padding/width diversi),\n      // cos\u00EC l'allineamento bordo-sx/bordo-dx combacia col bottone \"Acquista\n      // ora\" che \u00E8 sibling sullo stesso livello.\n      function wrapQtyCta(){\n        var qInput = info.querySelector('.quantity-selector');\n        var btnNative = info.querySelector('.product-form__add-button');\n        if (!qInput || !btnNative) return;\n        // Dawn wrappa il <button> dentro <buy-button> custom element: il\n        // click listener AJAX (theme.js BuyButton) sta su <buy-button>.\n        // Spostare solo il <button> fuori dal wrapper rompe l'add-to-cart\n        // (il form fa submit nativo \u2192 422 \"Required parameter: items\").\n        // Quindi spostiamo il wrapper <buy-button> intero.\n        var btn = btnNative.closest('buy-button') || btnNative;\n        var existing = info.querySelector('.pp-qty-cta-row');\n        var anchor = info.querySelector('form.product-form') || info.querySelector('.card__section') || info.querySelector('.card') || info;\n        var row = existing || document.createElement('div');\n        if (!existing) { row.className = 'pp-qty-cta-row'; }\n        if (row.parentNode !== anchor) anchor.appendChild(row);\n        if (!row.contains(qInput)) row.appendChild(qInput);\n        if (!row.contains(btn))   row.appendChild(btn);\n      }\n      wrapQtyCta();\n      setTimeout(wrapQtyCta, 300);\n      setTimeout(wrapQtyCta, 1000);\n      setTimeout(wrapQtyCta, 2500);\n\n      // Rimuovi (NON solo hide) i blocchi originali variant-selector e buy-buttons:\n      // - quantity, addBtn, picker sono stati gi\u00E0 spostati nella UI custom\n      // - se solo hide, dopo product:rerender Shopify rimpiazza i blocchi e i\n      //   nodi nuovi vengono ri-aggregati nella UI custom dai setTimeout(wrapQtyCta)\n      // - rimuovendoli, product-rerender (allow-partial-rerender) non trova\n      //   [data-block-type] in DOM e non fa nulla \u2192 niente duplicati\n      function purgeOriginalBlocks(){\n        var formEl = info.querySelector('form.product-form');\n        info.querySelectorAll('.product-info__block-item--variant-selector, .product-info__block-item--buy-buttons').forEach(function(b){\n          // safety: rimuovi solo se quantity/addBtn sono gi\u00E0 stati ricollocati\n          if (b.querySelector('.quantity-selector, .product-form__add-button')) return;\n          // CRITICAL: l'input <input type=\"hidden\" name=\"id\"> sta dentro al\n          // block variant-selector (snippets/product-variant-selector.liquid:162).\n          // Se lo rimuovo col block, Form.serialize() del <buy-button> fetch\n          // perde il variant id \u2192 cart/add.js 422 \"Required parameter: items\".\n          // Salvo gli input hidden form-bound spostandoli dentro al form.\n          if (formEl) {\n            b.querySelectorAll('input[type=\"hidden\"][form]').forEach(function(hi){\n              formEl.appendChild(hi);\n            });\n          }\n          b.remove();\n        });\n      }\n      purgeOriginalBlocks();\n      setTimeout(purgeOriginalBlocks, 300);\n      setTimeout(purgeOriginalBlocks, 1100);\n\n      // Tabella reso sotto i CTA (help box rimosso)\n      var footer = document.createElement('div');\n      footer.className = 'pp-info-footer';\n      footer.innerHTML =\n        '<table class=\"pp-policy\">' +\n          '<tr><td class=\"pp-policy__k\">' + SDT('prodotto_resi', 'Resi') + '</td><td class=\"pp-policy__v\">' + SDT('prodotto_resi_testo', 'Restituibile, se richiesto entro 14 giorni dalla consegna.') + '</td></tr>' +\n        '</table>';\n      info.appendChild(footer);\n\n      // Countdown al prossimo cutoff (10:30 di un giorno lavorativo).\n      function tickCountdown(){\n        var n = new Date();\n        var co = computeShipping(n).cutoff;\n        var diff = Math.max(0, co - n);\n        var h = Math.floor(diff / 3600000);\n        var m = Math.floor((diff % 3600000) / 60000);\n        var s = Math.floor((diff % 60000) / 1000);\n        var pad = function(x){ return (x<10?'0':'') + x; };\n        var el = document.getElementById('pp-countdown');\n        if (el) {\n          var isMobile = (window.innerWidth || document.documentElement.clientWidth) <= 1024;\n          el.textContent = pad(h) + 'h:' + pad(m) + 'm';\n        }\n      }\n      tickCountdown();\n      setInterval(tickCountdown, 1000);\n    }\n\n    // Applica class .vp-mobile al <body> se viewport \u22641024 (bypassa media query\n    // che a volte il theme editor non applica correttamente in iframe preview)\n    function applyVPClass(){\n      var w = window.innerWidth || document.documentElement.clientWidth;\n      document.body.classList.toggle('vp-mobile', w <= 1024);\n    }\n    applyVPClass();\n    window.addEventListener('resize', applyVPClass);\n\n    // Sposta il blocco \"Verifica adattabilit\u00E0\" (targa) sotto la galleria (col 1)\n    function moveVATargaUnderGallery(){\n      var gallery = document.querySelector('.product-block-list__item--gallery');\n      var vaBlock = document.querySelector('[data-block-id=\"39b0eb24-2d11-4bd2-ba3b-86b4d8b95ae0\"]');\n      if (!gallery || !vaBlock) return;\n      if (gallery.contains(vaBlock)) return;\n      gallery.appendChild(vaBlock);\n      vaBlock.classList.add('pp-va-in-gallery');\n    }\n    moveVATargaUnderGallery();\n    setTimeout(moveVATargaUnderGallery, 300);\n    setTimeout(moveVATargaUnderGallery, 1100);\n\n    // Copia la targa nella colonna info, come ultimo elemento del footer\n    function addTargaToInfo(){\n      var infoCol = document.querySelector('.product-block-list__item--info');\n      if (!infoCol || infoCol.querySelector('.pp-targa-copy')) return;\n      var originalTarga = document.querySelector('.va-targa');\n      var footer = infoCol.querySelector('.pp-info-footer');\n      if (!originalTarga || !footer) return;\n      var copy = originalTarga.cloneNode(true);\n      copy.classList.add('pp-targa-copy');\n      copy.removeAttribute('data-va-open');\n      copy.addEventListener('click', function(e){\n        e.preventDefault();\n        originalTarga.click();\n      });\n      footer.appendChild(copy);\n    }\n    addTargaToInfo();\n    setTimeout(addTargaToInfo, 400);\n    setTimeout(addTargaToInfo, 1200);\n    setTimeout(addTargaToInfo, 2500);\n\n    // Nascondi il vecchio blocco text \"Hi bisogno di aiuto\" (\u00E8 duplicato dalla nuova help box)\n    document.querySelectorAll('[data-block-id=\"d87c6220-13fc-4a53-b4a3-8065cff829ee\"]').forEach(function(el){\n      el.style.display = 'none';\n    });\n\n    // Nascondi label \"Prezzo:\" + riga \"IVA compresa | costi di spedizione...\" + \"Risparmi\"\n    // residue del prezzo Dawn nativo che il CSS selector non beccano sempre.\n    var info2 = document.querySelector('.product-block-list__item--info');\n    if (info2) {\n      var killText = [\n        /IVA\\s*compresa/i,\n        /costi\\s*di\\s*spedizione\\s*vengono\\s*calcolati/i,\n        /Risparmi/i,\n        /\\bIn\\s*stock\\b/i,\n        /\\bDisponibilit\u00E0\\b/i,\n        /\\bStock\\s*:/i,\n        /Taxes\\s*incluses/i,\n        /TVA\\s*incluse/i,\n        /Frais\\s*de\\s*port\\s*calcul/i,\n        /Frais\\s*d['\u2019]exp[\u00E9e]dition/i,\n        /calcul[\u00E9e]+s?\\s*(lors\\s*du\\s*paiement|au\\s*paiement|au\\s*moment\\s*de\\s*payer)/i,\n        /[\u00C9E]conomis/i,\n        /\\bEn\\s*stock\\b/i,\n        /Disponibilit[\u00E9e]/i,\n        // spagnolo e tedesco (09/10/2026): senza queste righe il vecchio blocco del tema (titolo + \"Ahorras/Du sparst\")\n        // restava visibile sotto la nuova scheda e allargava la pagina di 6 px sul telefono\n        /Ahorr(as|a|o)\\b/i,              // senza \\b davanti: la pagina incolla codice e risparmio (\"93924959Ahorras\")\n        /IVA\\s*incluid[oa]/i,\n        /Impuestos\\s*incluidos/i,\n        /gastos\\s*de\\s*env[i\u00ED]o/i,\n        /env[i\u00ED]o\\s*se\\s*calcula/i,\n        /En\\s*existencias?\\b/i,\n        /Disponibilidad/i,\n        /Du\\s*sparst/i,\n        /Sie\\s*sparen/i,\n        /inkl\\.?\\s*MwSt/i,\n        /Steuern\\s*(inbegriffen|inklusive)|inklusive\\s*Steuern/i,\n        /Versand(kosten)?\\s*(wird|werden)\\s*(beim|an\\s*der|im)/i,\n        /Auf\\s*Lager\\b/i,\n        /Verf[\u00FCu]gbarkeit/i\n      ];\n      // Visita tutti i nodi DENTRO info ma FUORI dalla nostra nuova UI/footer\n      var walker = document.createTreeWalker(info2, NodeFilter.SHOW_ELEMENT, {\n        acceptNode: function(n){\n          if (n.closest && (n.closest('.pp-info-stack') || n.closest('.pp-info-footer'))) return NodeFilter.FILTER_REJECT;\n          return NodeFilter.FILTER_ACCEPT;\n        }\n      });\n      var nodes = [];\n      while (walker.nextNode()) nodes.push(walker.currentNode);\n      nodes.forEach(function(n){\n        var txt = (n.textContent || '').trim();\n        if (!txt || txt.length > 200) return;\n        for (var i=0;i<killText.length;i++){\n          if (killText[i].test(txt) && n.children.length <= 6) {\n            n.classList.add('pp-hide');\n            return;\n          }\n        }\n        // label \"Prezzo:\" stand-alone (massimo 12 char)\n        if (txt.length <= 12 && /^(Prezzo|Prix)\\s*:?$/i.test(txt) && !n.querySelector('.pp-price, [class*=\"price\"]')) {\n          n.classList.add('pp-hide');\n        }\n      });\n    }\n\n    // 1b) Sposta il widget \"Acquistati Frequentemente Assieme\" sotto la barra benefits\n    function findFBT(){\n      var sels = [\n        '.fbt-app', '[id^=\"fbt\"]',\n        '[class*=\"frequently-bought\"]',\n        '[data-app-block-id*=\"frequently-bought\"]',\n        '[data-app-handle*=\"frequently-bought\"]'\n      ];\n      for (var i=0;i<sels.length;i++){\n        var el = document.querySelector(sels[i]);\n        if (el) return el;\n      }\n      var heads = document.querySelectorAll('h1,h2,h3,h4,.title,.heading');\n      for (var j=0;j<heads.length;j++){\n        if (/Acquistati\\s*Frequentemente|Frequently\\s*Bought|Souvent\\s*achet|Fr[\u00E9e]quemment\\s*achet|Achet[\u00E9e]s\\s*ensemble/i.test(heads[j].textContent||'')){\n          return heads[j].closest('section, .product-block-list__item, .product-info__block-item, .card, [data-app-block-id]') || heads[j].parentNode;\n        }\n      }\n      return null;\n    }\n    function placeFBT(){\n      if (window.__fbtMoved) return;\n      var fbt = findFBT();\n      if (!fbt) return;\n      var blockList = document.querySelector('.product-block-list');\n      var mainSection = blockList && blockList.closest('[id^=\"shopify-section\"]');\n      if (mainSection && mainSection.parentNode) {\n        mainSection.parentNode.insertBefore(fbt, mainSection.nextSibling);\n        fbt.classList.add('pp-fbt-moved');\n        window.__fbtMoved = true;\n      }\n    }\n\n    placeFBT();\n    setTimeout(placeFBT, 600);\n    setTimeout(placeFBT, 1500);\n    setTimeout(placeFBT, 3000);\n\n    // Aggiungi icona carrello al bottone \"Aggiungi la selezione al carrello\"\n    function addCartIconToFBT(){\n      var fbt = document.querySelector('.pp-fbt-moved');\n      if (!fbt) return;\n      var btns = fbt.querySelectorAll('button, [role=\"button\"], .button, [class*=\"add-button\"]');\n      var ICON = '<svg class=\"pp-fbt-cart-icon\" viewBox=\"0 0 24 24\" width=\"18\" height=\"18\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"9\" cy=\"21\" r=\"1.2\"/><circle cx=\"19\" cy=\"21\" r=\"1.2\"/><path d=\"M2 3h3l2.6 12.6a2 2 0 0 0 2 1.6h9a2 2 0 0 0 2-1.5L23 7H6\"/></svg>';\n      btns.forEach(function(b){\n        if (b.querySelector('.pp-fbt-cart-icon')) return;\n        // Solo se contiene testo cart-like\n        var t = (b.textContent || '').toLowerCase();\n        if (t.indexOf('carrello') < 0 && t.indexOf('cart') < 0 && t.indexOf('aggiungi') < 0 && t.indexOf('panier') < 0 && t.indexOf('ajouter') < 0) return;\n        b.insertAdjacentHTML('afterbegin', ICON);\n      });\n    }\n    addCartIconToFBT();\n    setTimeout(addCartIconToFBT, 800);\n    setTimeout(addCartIconToFBT, 2000);\n    setTimeout(addCartIconToFBT, 4000);\n\n    // 2) Aggiungi stelle alle card complementary/recommendations\n    document.querySelectorAll('.complementary-product-list .product-item, .product-recommendations .product-item, product-recommendations .product-item').forEach(function(card){\n      if (!once(card, 'ppRevInjected')) return;\n      var anchor = card.querySelector('.product-item__title, .product-item__info, .product-item__details') || card.firstElementChild;\n      if (!anchor) return;\n      var n = 5 + Math.floor(Math.random() * 140);\n      var div = document.createElement('div');\n      div.className = 'product-card__reviews-fake';\n      div.innerHTML = '<span class=\"pp-stars\">\u2605\u2605\u2605\u2605\u2605</span><span class=\"pp-rev-link\">' + SDT('prodotto_recensioni', 'Recensioni') + ' ' + n + '+</span>';\n      anchor.parentNode.insertBefore(div, anchor);\n    });\n  });\n})();\n\n// Bypassa Flickity su mobile: gestione manuale click thumbs\n(function(){\n  function setupMobileGallery(){\n    if (window.innerWidth > 1024) return;\n    var items = document.querySelectorAll('.product-gallery__carousel-item');\n    var thumbs = document.querySelectorAll('.product-gallery__thumbnail');\n    if (!items.length) return;\n    // Assicurati che il primo item sia selected se nessuno lo \u00E8\n    var hasSelected = Array.from(items).some(function(it){ return it.classList.contains('is-selected'); });\n    if (!hasSelected) items[0].classList.add('is-selected');\n    // Click handler sulle thumbs\n    thumbs.forEach(function(thumb, idx){\n      if (thumb.dataset.ppBound === '1') return;\n      thumb.dataset.ppBound = '1';\n      thumb.addEventListener('click', function(e){\n        e.preventDefault(); e.stopPropagation();\n        items.forEach(function(it, i){\n          it.classList.toggle('is-selected', i === idx);\n        });\n        thumbs.forEach(function(t){ t.classList.remove('is-nav-selected'); });\n        thumb.classList.add('is-nav-selected');\n      }, true);\n    });\n  }\n  document.addEventListener('DOMContentLoaded', setupMobileGallery);\n  setTimeout(setupMobileGallery, 600);\n  setTimeout(setupMobileGallery, 1500);\n})();\n\n/* Affordance scroll thumbnail (frecce dinamiche \u25C4\u25BA o \u25B2\u25BC) \u2014 qualsiasi viewport.\n   Salta se la list \u00E8 dentro .scroller__inner (mobile Dawn classico, gestito da altro IIFE). */\n(function(){\n  function setupThumbsScroll(){\n    var list = document.querySelector('.product-block-list__item--gallery .product-gallery__thumbnail-list');\n    if (!list || list.dataset.ppArrows === '1') return;\n    // Mobile gestito da IIFE separato (sotto)\n    if (window.innerWidth < 1000) return;\n    list.dataset.ppArrows = '1';\n\n    var wrap = document.createElement('div');\n    wrap.className = 'pp-thumbs-wrap';\n    list.parentNode.insertBefore(wrap, list);\n    wrap.appendChild(list);\n\n    function mkArrow(dir, label){\n      var b = document.createElement('button');\n      b.type = 'button';\n      b.className = 'pp-thumbs-arrow pp-thumbs-arrow--' + dir;\n      b.setAttribute('aria-label', label);\n      return b;\n    }\n    var prev = mkArrow('prev', SDT('prodotto_foto_precedenti', 'Foto precedenti'));\n    var next = mkArrow('next', SDT('prodotto_foto_successive', 'Foto successive'));\n    wrap.appendChild(prev);\n    wrap.appendChild(next);\n\n    function detectAxis(){\n      var v = list.scrollHeight - list.clientHeight;\n      var h = list.scrollWidth - list.clientWidth;\n      if (v > 2 && v >= h) return 'v';\n      if (h > 2) return 'h';\n      return null;\n    }\n    function update(){\n      var axis = detectAxis();\n      wrap.classList.toggle('pp-vertical', axis === 'v');\n      wrap.classList.toggle('pp-horizontal', axis === 'h');\n      var canPrev = false, canNext = false;\n      if (axis === 'v') {\n        var maxV = list.scrollHeight - list.clientHeight;\n        canPrev = list.scrollTop > 2;\n        canNext = list.scrollTop < maxV - 2;\n        prev.innerHTML = '&#9650;'; // \u25B2\n        next.innerHTML = '&#9660;'; // \u25BC\n      } else if (axis === 'h') {\n        var maxH = list.scrollWidth - list.clientWidth;\n        canPrev = list.scrollLeft > 2;\n        canNext = list.scrollLeft < maxH - 2;\n        prev.innerHTML = '&#9664;'; // \u25C4\n        next.innerHTML = '&#9654;'; // \u25BA\n      }\n      wrap.classList.toggle('pp-can-prev', canPrev);\n      wrap.classList.toggle('pp-can-next', canNext);\n    }\n    function doScroll(dir){\n      var axis = detectAxis();\n      var step;\n      if (axis === 'v') {\n        step = Math.max(80, list.clientHeight * 0.6) * (dir === 'next' ? 1 : -1);\n        list.scrollBy({ top: step, behavior: 'smooth' });\n      } else {\n        step = Math.max(100, list.clientWidth * 0.8) * (dir === 'next' ? 1 : -1);\n        list.scrollBy({ left: step, behavior: 'smooth' });\n      }\n    }\n    prev.addEventListener('click', function(e){ e.preventDefault(); doScroll('prev'); });\n    next.addEventListener('click', function(e){ e.preventDefault(); doScroll('next'); });\n    list.addEventListener('scroll', update, { passive: true });\n    window.addEventListener('resize', update);\n    if (window.ResizeObserver) { new ResizeObserver(update).observe(list); }\n    update();\n  }\n  document.addEventListener('DOMContentLoaded', setupThumbsScroll);\n  setTimeout(setupThumbsScroll, 600);\n  setTimeout(setupThumbsScroll, 1500);\n})();\n\n/* Mobile <1000px: frecce thumb SENZA ri-parentare (Dawn/Flickity safe).\n   Aggiunge solo classe + 2 button assoluti dentro il .scroller esistente.\n   Lo .scroller__inner (che fa lo scroll-x) NON viene mai toccato. */\n(function(){\n  var SCROLL_RATIO = 0.8;\n  function setupMobileThumbsArrows(){\n    if (window.innerWidth >= 1000) return;\n    var list = document.querySelector('.product-block-list__item--gallery .product-gallery__thumbnail-list');\n    if (!list) return;\n    var scroller = list.closest('.scroller');\n    var inner = scroller && scroller.querySelector('.scroller__inner');\n    if (!scroller || !inner) return;\n    if (scroller.dataset.ppMobArrows === '1') return;\n    scroller.dataset.ppMobArrows = '1';\n\n    scroller.classList.add('pp-has-thumb-arrows');\n\n    function mkArrow(dir, label){\n      var b = document.createElement('button');\n      b.type = 'button';\n      b.className = 'pp-thumbs-arrow pp-thumbs-arrow--' + dir;\n      b.setAttribute('aria-label', label);\n      return b;\n    }\n    var prev = mkArrow('prev', SDT('prodotto_foto_precedenti', 'Foto precedenti'));\n    var next = mkArrow('next', SDT('prodotto_foto_successive', 'Foto successive'));\n    // appendChild su .scroller: aggiunge fratelli a .scroller__inner senza spostarlo\n    scroller.appendChild(prev);\n    scroller.appendChild(next);\n\n    function axisIsVertical(){\n      // Con CSS mobile attivo, .scroller__inner ha scroll-y. Se per qualche\n      // motivo non match, fallback su check runtime.\n      return (inner.scrollHeight - inner.clientHeight) > 2;\n    }\n    function update(){\n      var vert = axisIsVertical();\n      var canPrev, canNext;\n      if (vert) {\n        var maxV = inner.scrollHeight - inner.clientHeight;\n        canPrev = inner.scrollTop > 2;\n        canNext = inner.scrollTop < maxV - 2;\n        prev.innerHTML = '&#9650;'; // \u25B2\n        next.innerHTML = '&#9660;'; // \u25BC\n      } else {\n        var maxH = inner.scrollWidth - inner.clientWidth;\n        canPrev = inner.scrollLeft > 2;\n        canNext = inner.scrollLeft < maxH - 2;\n        prev.innerHTML = '&#9664;'; // \u25C4\n        next.innerHTML = '&#9654;'; // \u25BA\n      }\n      scroller.classList.toggle('pp-can-prev', canPrev);\n      scroller.classList.toggle('pp-can-next', canNext);\n    }\n    function doScroll(dir){\n      var sign = dir === 'next' ? 1 : -1;\n      if (axisIsVertical()) {\n        inner.scrollBy({ top: sign * Math.max(80, inner.clientHeight * 0.6), behavior: 'smooth' });\n      } else {\n        inner.scrollBy({ left: sign * Math.max(100, inner.clientWidth * SCROLL_RATIO), behavior: 'smooth' });\n      }\n    }\n    prev.addEventListener('click', function(e){ e.preventDefault(); doScroll('prev'); });\n    next.addEventListener('click', function(e){ e.preventDefault(); doScroll('next'); });\n    inner.addEventListener('scroll', update, { passive: true });\n    window.addEventListener('resize', update);\n    if (window.ResizeObserver) { new ResizeObserver(update).observe(inner); }\n    update();\n  }\n  document.addEventListener('DOMContentLoaded', setupMobileThumbsArrows);\n  setTimeout(setupMobileThumbsArrows, 600);\n  setTimeout(setupMobileThumbsArrows, 1500);\n})();\n\n/* Mobile: prezzo + sconto-row sulla stessa riga */\n(function(){\n  function wrapPriceDiscount(){\n    if (window.innerWidth > 1024) return;\n    var price = document.querySelector('.pp-price');\n    var discount = document.querySelector('.pp-discount-row');\n    if (!price || !discount) return;\n    if (price.parentNode && price.parentNode.classList.contains('pp-price-discount-row')) return;\n    var wrap = document.createElement('div');\n    wrap.className = 'pp-price-discount-row';\n    price.parentNode.insertBefore(wrap, price);\n    wrap.appendChild(price);\n    wrap.appendChild(discount);\n  }\n  document.addEventListener('DOMContentLoaded', function(){\n    wrapPriceDiscount();\n    setTimeout(wrapPriceDiscount, 400);\n    setTimeout(wrapPriceDiscount, 1200);\n  });\n})();\n\n"],
  "mappings": "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",
  "names": ["parseEuro", "fmtEur", "fmtEurPlain", "isWorkingDay", "addWorkingDays", "computeShipping", "applyCart", "ensureBuyNow", "wrapQtyCta", "purgeOriginalBlocks", "tickCountdown", "savings", "footer"]
}
