{"product_id":"nintendo-switch","title":"NINTENDO SWITCH","description":"\u003c!-- ╔══════════════════════════════════════════════════════════════════════╗ --\u003e\n\u003c!-- ║   BLOCCO CONFIGURAZIONE TIMELINE PRODOTTO – MODIFICA SOLO QUESTO     ║ --\u003e\n\u003c!-- ╚══════════════════════════════════════════════════════════════════════╝ --\u003e\n\u003cscript\u003e\n\/\/ 🎮 Specifiche della linea Nintendo Switch (Standard, OLED, Switch 2) — formato corretto\nconst specs = [\n  {\n    titolo: \"Switch (Standard \/ Sports Edition)\",\n    descrizione: \"Console ibrida con modalità TV, tavolo e portatile.\u003cbr\u003eSchermo LCD da 6,2″ (720p nativo).\u003cbr\u003eJoy-Con rimovibili con vibrazione HD e sensori giroscopici.\u003cbr\u003eMemoria interna: 32 GB (espandibile via microSD).\u003cbr\u003eAutonomia stimata: ~4,5–9 ore (versione aggiornata).\u003cbr\u003eColori: Grigio \/ Neon (Rosso\/Blu) \/ Edizioni speciali \/ Sports Edition.\u003cbr\u003eIncluso: base TV, Joy-Con, cinghie, supporto, alimentatore.\u003cbr\u003eCompatibile con l'ampio catalogo di giochi Switch e accessori ufficiali.\"\n  },\n  {\n    titolo: \"Switch OLED\",\n    descrizione: \"Schermo OLED da 7″ con neri profondi e colori vividi.\u003cbr\u003eMemoria interna: 64 GB.\u003cbr\u003eAudio migliorato in modalità portatile.\u003cbr\u003eBase TV con porta LAN cablata integrata.\u003cbr\u003eCavalletto regolabile a tutta larghezza per maggiore stabilità.\u003cbr\u003eColori: Bianco \/ Neon Rosso-Blu \/ Edizioni speciali (Zelda, Pokémon, ecc.).\"\n  },\n  {\n    titolo: \"Switch 2 (console successiva)\",\n    descrizione: \"Console ibrida evoluta, compatibile con modalità portatile e dock per TV.\u003cbr\u003eSchermo LCD da 7,9″, risoluzione Full HD 1080p con supporto HDR e refresh fino a 120 Hz.\u003cbr\u003eMemoria interna: 256 GB (UFS).\u003cbr\u003eProcessore custom (collab. NVIDIA) per prestazioni potenziate.\u003cbr\u003eDock aggiornato con uscita 4K \/ 120 Hz (quando collegato).\u003cbr\u003eAutonomia stimata: ~2–6,5 ore a seconda del gioco.\u003cbr\u003eMemoria espandibile via microSD (slot sotto lo stand).\u003cbr\u003eJoy-Con 2 magnetici con sensori migliorati e nuove funzionalità.\u003cbr\u003eFunzionalità social potenziate, GameChat e retrocompatibilità con giochi Switch (alcuni con upgrade).\"\n  },\n  {\n    titolo: \"Sintesi\",\n    descrizione: \"La linea Nintendo Switch offre opzioni per ogni tipo di utente: la versione Standard\/Sports è la classica console ibrida, la OLED aggiunge un display premium e miglioramenti hardware, mentre la Switch 2 rappresenta la nuova generazione con supporto 4K docked, più memoria e prestazioni avanzate.\"\n  }\n];\n\u003c\/script\u003e\n\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":"NINTENDO SWITCH","offer_id":51892550402376,"sku":null,"price":299.99,"currency_code":"EUR","in_stock":true},{"title":"NINTENDO SWITCH SPORTS","offer_id":51892550435144,"sku":null,"price":319.0,"currency_code":"EUR","in_stock":true},{"title":"NINTENDO SWITCH 2","offer_id":51892550467912,"sku":null,"price":469.99,"currency_code":"EUR","in_stock":true},{"title":"NINTENDO SWITCH OLED","offer_id":51892550500680,"sku":null,"price":349.9,"currency_code":"EUR","in_stock":true},{"title":"NINTENDO SWITCH 3","offer_id":51892550533448,"sku":null,"price":499.0,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0799\/6663\/4312\/files\/Progettosenzatitolo-2025-10-30T173248.009.png?v=1761842054","url":"https:\/\/www.centroriparo.it\/products\/nintendo-switch","provider":"Centroriparo srl","version":"1.0","type":"link"}