{"product_id":"iphone-15-plus","title":"IPHONE 15 PLUS","description":"\u003c!-- ╔══════════════════════════════════════════════════════════════════════╗ --\u003e\n\u003c!-- ║   BLOCCO CONFIGURAZIONE TIMELINE PRODOTTO – MODIFICA SOLO QUESTO     ║ --\u003e\n\u003c!-- ╚══════════════════════════════════════════════════════════════════════╝ --\u003e\n\u003cscript\u003e\n\/\/ 🔧 Specifiche del prodotto (modifica liberamente)\nconst specs = [\n  { titolo: \"Display\", descrizione: \"Super Retina XDR OLED da 6,7″ · Risoluzione 2778 × 1284 · 460 ppi · HDR10 · Dolby Vision · True Tone · 1000 nit (tipico), 2000 nit (picco)\" },\n  { titolo: \"Processore\", descrizione: \"Chip A16 Bionic (5 nm) · 6-core CPU · 5-core GPU · 16-core Neural Engine\" },\n  { titolo: \"RAM \/ Archiviazione\", descrizione: \"6 GB RAM · Storage: 128 \/ 256 \/ 512 GB (non espandibile)\" },\n  { titolo: \"Fotocamere posteriori\", descrizione: \"Doppia 48 MP (grandangolo ƒ\/1.6, OIS) + 12 MP (ultra-grandangolo ƒ\/2.4, 120°) · Zoom ottico 2x · Modalità Notte e HDR Smart\" },\n  { titolo: \"Fotocamera anteriore\", descrizione: \"12 MP ƒ\/1.9 TrueDepth · Autofocus · Video 4K 60 fps · Modalità Ritratto e HDR\" },\n  { titolo: \"Batteria \/ Ricarica\", descrizione: \"≈ 4383 mAh · Ricarica rapida 20 W (50% in 30 min) · MagSafe e Qi wireless\" },\n  { titolo: \"Sistema operativo \/ Aggiornamenti\", descrizione: \"iOS 18 · Aggiornamenti di sistema pluriennali garantiti da Apple\" },\n  { titolo: \"Connettività \/ Reti\", descrizione: \"5G · Wi-Fi 6 · Bluetooth 5.3 · NFC · USB-C (USB 2.0) · Dual eSIM \/ nano-SIM\" },\n  { titolo: \"Sicurezza \/ Materiali\", descrizione: \"Face ID · Vetro anteriore Ceramic Shield · Vetro posteriore colorato in massa · Telaio in alluminio aerospaziale · IP68\" },\n  { titolo: \"Dimensioni \/ Peso\", descrizione: \"160,9 × 77,8 × 7,8 mm · Peso ≈ 201 g\" },\n  { titolo: \"Colori disponibili\", descrizione: \"Rosa, Giallo, Verde, Blu, Nero, (PRODUCT) RED\" },\n  { titolo: \"Contenuto confezione\", descrizione: \"iPhone 15 Plus · Cavo USB-C · Documentazione · Spilla SIM (in alcuni mercati)\" },\n  { titolo: \"Sintesi\", descrizione: \"iPhone 15 Plus combina il chip A16 Bionic con un grande display OLED da 6,7″, fotocamera da 48 MP e connettore USB-C in un design premium ed efficiente.\" }\n];\n\u003c\/script\u003e\n\u003c!-- ╔══════════════════════════════════════════════════════════════════════╗ --\u003e\n\u003c!-- ║   FINE BLOCCO CONFIGURAZIONE                                         ║ --\u003e\n\u003c!-- ╚══════════════════════════════════════════════════════════════════════╝ --\u003e\n\n\u003cstyle\u003e\n:root {\n  --accent: #4285f4;\n  --text: #111;\n}\n\n\/* ═══ STILI BASE ═════════════════════════════════════════════════════════ *\/\nbody {\n  margin: 0;\n  font-family: \"Segoe UI\", Roboto, system-ui, sans-serif;\n}\n\n\/* ═══ CONTENITORE TIMELINE ════════════════════════════════════════════════ *\/\n.product-timeline {\n  position: relative;\n  max-width: 700px;\n  margin: 80px auto;\n  padding: 30px;\n  color: var(--text);\n}\n\n\/* ═══ LINEA VERTICALE ═════════════════════════════════════════════════════ *\/\n.product-timeline::before {\n  content: \"\";\n  position: absolute;\n  left: 30px;\n  top: 0;\n  width: 3px;\n  height: 100%;\n  background: linear-gradient(to bottom, rgba(66,133,244,0.5), rgba(66,133,244,0.1));\n  box-shadow: 0 0 12px rgba(66,133,244,0.4);\n}\n\n\/* ═══ TITOLO PRINCIPALE ═══════════════════════════════════════════════════ *\/\n.product-timeline h1 {\n  text-align: center;\n  font-size: 2.8rem;\n  font-weight: 800;\n  color: var(--accent);\n  margin-bottom: 60px;\n}\n\n\/* ═══ ELEMENTI TIMELINE ═══════════════════════════════════════════════════ *\/\n.timeline-item {\n  position: relative;\n  padding-left: 70px;\n  margin-bottom: 45px;\n  opacity: 0;\n  transform: translateY(40px);\n  transition: all 0.8s ease;\n}\n.timeline-item.visible {\n  opacity: 1;\n  transform: translateY(0);\n}\n.timeline-item::before {\n  content: \"\";\n  position: absolute;\n  left: 22px;\n  top: 28px;\n  width: 16px;\n  height: 16px;\n  background: var(--accent);\n  border-radius: 50%;\n  box-shadow: 0 0 14px rgba(66,133,244,0.6);\n}\n\n\/* ═══ CARD INTERNA ════════════════════════════════════════════════════════ *\/\n.timeline-card {\n  padding: 20px 26px;\n  border-left: 3px solid rgba(66,133,244,0.2);\n  border-radius: 10px;\n  transition: transform 0.3s ease, box-shadow 0.3s ease;\n}\n.timeline-card:hover {\n  transform: translateY(-5px);\n  box-shadow: 0 8px 20px rgba(66,133,244,0.1);\n}\n.timeline-card h3 {\n  color: var(--accent);\n  margin: 0 0 8px 0;\n  font-size: 1.6rem;\n  font-weight: 700;\n}\n.timeline-card p {\n  margin: 0;\n  font-size: 1.2rem;\n  color: #222;\n  line-height: 1.6;\n}\n\n\/* ═══ TASTO ACQUISTA ══════════════════════════════════════════════════════ *\/\n.buy-button {\n  display: inline-block;\n  margin-top: 30px;\n  padding: 16px 32px;\n  background: var(--accent);\n  color: #fff;\n  font-weight: 700;\n  font-size: 1.3rem;\n  border: none;\n  border-radius: 8px;\n  cursor: pointer;\n  text-decoration: none;\n  transition: background 0.3s ease, transform 0.2s ease;\n}\n.buy-button:hover {\n  background: #2b6ce5;\n  transform: scale(1.04);\n}\n.buy-button.disabled {\n  background: #aaa;\n  cursor: not-allowed;\n  transform: none;\n}\n\n\/* ═══ RESPONSIVE ══════════════════════════════════════════════════════════ *\/\n@media (max-width: 600px) {\n  .product-timeline::before { left: 20px; }\n  .timeline-item { padding-left: 60px; }\n  .timeline-item::before { left: 14px; }\n  .timeline-card h3 { font-size: 1.4rem; }\n  .timeline-card p { font-size: 1.05rem; }\n  .product-timeline h1 { font-size: 2rem; }\n  .buy-button { font-size: 1.1rem; padding: 14px 26px; }\n}\n\u003c\/style\u003e\n\n\u003csection class=\"product-timeline\"\u003e\n  \u003ch1 id=\"product-title\"\u003e\u003c\/h1\u003e\n  \u003cdiv id=\"timeline\"\u003e\u003c\/div\u003e\n  \u003c!-- Bottone finale sempre visibile --\u003e\n  \u003cdiv style=\"text-align:center\"\u003e\n    \u003cbutton class=\"buy-button\" id=\"checkoutButton\"\u003eVerifica disponibilità...\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n\/* ═══ LOGICA JAVASCRIPT ═══════════════════════════════════════════════════ *\/\n\n\/* — Titolo automatico del prodotto — *\/\nconst productTitle =\n  document.querySelector('h1.product__title, h1.product-title, h1')?.textContent?.trim() ||\n  \"Prodotto Shopify\";\ndocument.getElementById(\"product-title\").textContent = productTitle;\n\n\/* — Genera la timeline dinamica — *\/\nconst container = document.getElementById(\"timeline\");\nspecs.forEach((item) =\u003e {\n  const el = document.createElement(\"div\");\n  el.className = \"timeline-item\";\n  el.innerHTML = `\n    \u003cdiv class=\"timeline-card\"\u003e\n      \u003ch3\u003e${item.titolo}\u003c\/h3\u003e\n      \u003cp\u003e${item.descrizione}\u003c\/p\u003e\n    \u003c\/div\u003e`;\n  container.appendChild(el);\n});\n\n\/* — Effetto di comparsa su scroll — *\/\nconst items = document.querySelectorAll(\".timeline-item\");\nconst observer = new IntersectionObserver((entries) =\u003e {\n  entries.forEach((entry) =\u003e {\n    if (entry.isIntersecting) entry.target.classList.add(\"visible\");\n  });\n});\nitems.forEach((el) =\u003e observer.observe(el));\n\n\/* — Pulsante checkout con disponibilità — *\/\ndocument.addEventListener(\"DOMContentLoaded\", () =\u003e {\n  const btn = document.getElementById(\"checkoutButton\");\n  const shopDomain = window.Shopify?.shop || window.location.hostname;\n  const variant = window.meta?.product?.variants?.[0];\n\n  if (!variant) {\n    btn.textContent = \"Prodotto non disponibile\";\n    btn.classList.add(\"disabled\");\n    return;\n  }\n\n  if (variant.available) {\n    btn.textContent = \"Acquista ora 🛒\";\n    btn.addEventListener(\"click\", () =\u003e {\n      const checkoutUrl = `https:\/\/${shopDomain}\/cart\/${variant.id}:1`;\n      window.location.href = checkoutUrl;\n    });\n  } else {\n    btn.textContent = \"Non disponibile\";\n    btn.classList.add(\"disabled\");\n  }\n});\n\u003c\/script\u003e\n","brand":"Centroriparo srl","offers":[{"title":"AZZURRO \/ 128GB","offer_id":51882404577608,"sku":null,"price":599.0,"currency_code":"EUR","in_stock":false},{"title":"AZZURRO \/ 256GB","offer_id":51882404610376,"sku":null,"price":649.0,"currency_code":"EUR","in_stock":false},{"title":"AZZURRO \/ 512GB","offer_id":51882404643144,"sku":null,"price":699.0,"currency_code":"EUR","in_stock":false},{"title":"giallo \/ 128GB","offer_id":51882404675912,"sku":null,"price":599.0,"currency_code":"EUR","in_stock":false},{"title":"giallo \/ 256GB","offer_id":51882404708680,"sku":null,"price":649.0,"currency_code":"EUR","in_stock":false},{"title":"giallo \/ 512GB","offer_id":51882404741448,"sku":null,"price":699.0,"currency_code":"EUR","in_stock":false},{"title":"ROSA \/ 128GB","offer_id":51882404774216,"sku":null,"price":599.0,"currency_code":"EUR","in_stock":false},{"title":"ROSA \/ 256GB","offer_id":51882404806984,"sku":null,"price":649.0,"currency_code":"EUR","in_stock":false},{"title":"ROSA \/ 512GB","offer_id":51882404839752,"sku":null,"price":699.0,"currency_code":"EUR","in_stock":false},{"title":"Verde \/ 128GB","offer_id":51882404872520,"sku":null,"price":599.0,"currency_code":"EUR","in_stock":false},{"title":"Verde \/ 256GB","offer_id":51882404905288,"sku":null,"price":649.0,"currency_code":"EUR","in_stock":false},{"title":"Verde \/ 512GB","offer_id":51882404938056,"sku":null,"price":699.0,"currency_code":"EUR","in_stock":false},{"title":"NERO \/ 128GB","offer_id":51882404970824,"sku":null,"price":599.0,"currency_code":"EUR","in_stock":false},{"title":"NERO \/ 256GB","offer_id":51882405003592,"sku":null,"price":649.0,"currency_code":"EUR","in_stock":false},{"title":"NERO \/ 512GB","offer_id":51882405036360,"sku":null,"price":699.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0799\/6663\/4312\/files\/Progettosenzatitolo_84_0e7cf9dc-e1a9-4463-8f4d-170be3036c50.png?v=1761760986","url":"https:\/\/www.centroriparo.it\/products\/iphone-15-plus","provider":"Centroriparo srl","version":"1.0","type":"link"}