{"product_id":"furbopet","title":"FurboPet - Polvere Dentale per Cani con Enzimi e Probiotici","description":"\n\u003cstyle\u003e\n  .fp-pdp {\n    --green:#0D5033;\n    --mint:#EAF3EE;\n    --cream:#FAF8F2;\n    --white:#FFFFFF;\n    --text:#243129;\n    --muted:#69736D;\n    --border:rgba(13,80,51,.14);\n    --shadow:0 14px 34px rgba(28,46,36,.09);\n    background:var(--cream);\n    color:var(--text);\n    font-family:inherit;\n    padding:10px 0 38px;\n  }\n\n  .fp-pdp * { box-sizing:border-box; }\n\n  .fp-shell {\n    width:min(760px, calc(100% - 24px));\n    margin:0 auto;\n  }\n\n  .fp-card {\n    background:var(--white);\n    border:1px solid var(--border);\n    border-radius:22px;\n    box-shadow:var(--shadow);\n    overflow:hidden;\n  }\n\n  .fp-product-image-wrap { padding:10px; }\n\n  .fp-product-image {\n    display:block;\n    width:100%;\n    aspect-ratio:1\/1;\n    object-fit:cover;\n    border-radius:16px;\n    background:#F1F2EC;\n  }\n\n  .fp-buybox {\n    padding:16px 18px 18px;\n    border-top:1px solid rgba(13,80,51,.08);\n  }\n\n  .fp-kicker {\n    display:inline-flex;\n    padding:6px 10px;\n    margin-bottom:7px;\n    border-radius:999px;\n    background:var(--mint);\n    color:var(--green);\n    font-size:10px;\n    font-weight:900;\n    letter-spacing:.06em;\n    text-transform:uppercase;\n  }\n\n  .fp-title {\n    margin:0 0 7px;\n    color:var(--green);\n    font-size:clamp(27px,5vw,38px);\n    line-height:1.08;\n    letter-spacing:-.03em;\n  }\n\n  .fp-subtitle {\n    margin:0 0 12px;\n    color:var(--muted);\n    font-size:14px;\n    line-height:1.5;\n  }\n\n  .fp-benefits {\n    display:grid;\n    gap:7px;\n    margin:0 0 16px;\n    padding:0;\n    list-style:none;\n  }\n\n  .fp-benefits li {\n    position:relative;\n    padding-left:27px;\n    font-size:13px;\n    font-weight:700;\n    line-height:1.4;\n  }\n\n  .fp-benefits li::before {\n    content:\"✓\";\n    position:absolute;\n    left:0;\n    top:0;\n    display:grid;\n    place-items:center;\n    width:19px;\n    height:19px;\n    border-radius:50%;\n    background:var(--green);\n    color:#fff;\n    font-size:10px;\n  }\n\n  .fp-bundle-title {\n    margin:0 0 4px;\n    color:var(--green);\n    font-size:20px;\n    line-height:1.2;\n  }\n\n  .fp-bundle-intro {\n    margin:0 0 10px;\n    color:var(--muted);\n    font-size:12px;\n  }\n\n  .fp-bundle-options {\n    display:grid;\n    gap:9px;\n  }\n\n  .fp-bundle-radio {\n    position:absolute;\n    opacity:0;\n    pointer-events:none;\n  }\n\n  .fp-bundle-card {\n    position:relative;\n    display:grid;\n    grid-template-columns:auto 1fr auto;\n    gap:9px;\n    align-items:center;\n    width:100%;\n    padding:13px 11px;\n    border:1.5px solid var(--border);\n    border-radius:16px;\n    background:#fff;\n    cursor:pointer;\n    transition:.16s ease;\n  }\n\n  .fp-bundle-radio:checked + .fp-bundle-card {\n    border-color:var(--green);\n    background:#F2F8F4;\n    box-shadow:0 0 0 2px rgba(13,80,51,.07);\n  }\n\n  .fp-bundle-radio:disabled + .fp-bundle-card {\n    opacity:.55;\n    cursor:not-allowed;\n  }\n\n  .fp-radio-ui {\n    width:19px;\n    height:19px;\n    display:grid;\n    place-items:center;\n    border:2px solid rgba(13,80,51,.35);\n    border-radius:50%;\n    background:#fff;\n  }\n\n  .fp-bundle-radio:checked + .fp-bundle-card .fp-radio-ui::after {\n    content:\"\";\n    width:9px;\n    height:9px;\n    border-radius:50%;\n    background:var(--green);\n  }\n\n  .fp-bundle-copy strong {\n    display:block;\n    color:var(--green);\n    font-size:14px;\n  }\n\n  .fp-bundle-copy span {\n    display:block;\n    margin-top:3px;\n    color:var(--muted);\n    font-size:11px;\n  }\n\n  .fp-bundle-price {\n    text-align:right;\n  }\n\n  .fp-bundle-price strong {\n    display:block;\n    color:var(--green);\n    font-size:17px;\n  }\n\n  .fp-bundle-price span,\n  .fp-bundle-price del {\n    display:block;\n    color:var(--muted);\n    font-size:10px;\n  }\n\n  .fp-save {\n    display:none !important;\n    margin-top:4px !important;\n    padding:3px 6px;\n    border-radius:999px;\n    background:var(--mint);\n    color:var(--green) !important;\n    font-size:9px !important;\n    font-weight:900;\n  }\n\n  .fp-bundle-tag {\n    position:absolute;\n    top:-8px;\n    right:10px;\n    padding:4px 8px;\n    border-radius:999px;\n    background:var(--green);\n    color:#fff;\n    font-size:8px;\n    font-weight:900;\n    letter-spacing:.05em;\n    white-space:nowrap;\n  }\n\n  .fp-bundle-tag--save {\n    background:#DDAE12;\n    color:#211D09;\n  }\n\n  .fp-summary {\n    display:grid;\n    gap:5px;\n    margin-top:10px;\n    padding:11px 12px;\n    border-radius:13px;\n    background:#F7F2E9;\n    font-size:12px;\n  }\n\n  .fp-summary-row {\n    display:flex;\n    justify-content:space-between;\n    gap:12px;\n  }\n\n  .fp-summary-row strong { color:var(--green); }\n\n  .fp-add {\n    width:100%;\n    min-height:52px;\n    margin-top:10px;\n    border:0;\n    border-radius:14px;\n    background:var(--green);\n    color:#fff;\n    font:inherit;\n    font-size:14px;\n    font-weight:900;\n    cursor:pointer;\n    box-shadow:0 10px 20px rgba(13,80,51,.18);\n  }\n\n  .fp-add[disabled] {\n    opacity:.6;\n    cursor:not-allowed;\n  }\n\n  .fp-mini-note {\n    margin:7px 0 0;\n    color:var(--muted);\n    font-size:9px;\n    line-height:1.35;\n    text-align:center;\n  }\n\n  .fp-cart-error {\n    display:none;\n    margin:8px 0 0;\n    padding:9px 10px;\n    border-radius:10px;\n    background:#FFF2F0;\n    color:#8B2F24;\n    font-size:11px;\n  }\n\n  .fp-shipping {\n    display:grid;\n    gap:9px;\n    margin-top:12px;\n  }\n\n  .fp-shipping-card {\n    padding:11px;\n    border:1px solid rgba(13,80,51,.16);\n    border-radius:15px;\n    background:#fff;\n  }\n\n  .fp-shipping-card--express {\n    background:#F1F7F3;\n    border-color:rgba(13,80,51,.24);\n  }\n\n  .fp-shipping-head {\n    display:flex;\n    justify-content:space-between;\n    gap:10px;\n    margin-bottom:5px;\n  }\n\n  .fp-shipping-name {\n    color:var(--green);\n    font-size:12px;\n    font-weight:900;\n  }\n\n  .fp-shipping-time {\n    color:var(--muted);\n    font-size:11px;\n    font-weight:800;\n  }\n\n  .fp-shipping-explain {\n    margin:0 0 9px;\n    color:var(--muted);\n    font-size:10px;\n  }\n\n  .fp-shipping-explain strong { color:var(--green); }\n\n  .fp-timeline {\n    position:relative;\n    display:grid;\n    grid-template-columns:1fr 1fr 1fr;\n    gap:5px;\n  }\n\n  .fp-timeline::before {\n    content:\"\";\n    position:absolute;\n    left:16.7%;\n    right:16.7%;\n    top:8px;\n    height:2px;\n    background:rgba(13,80,51,.21);\n  }\n\n  .fp-timeline-step {\n    position:relative;\n    z-index:2;\n    text-align:center;\n  }\n\n  .fp-timeline-dot {\n    width:14px;\n    height:14px;\n    margin:1px auto 5px;\n    border-radius:50%;\n    border:3px solid #DCEAE2;\n    background:var(--green);\n    box-shadow:0 0 0 2px #fff;\n  }\n\n  .fp-timeline-step:first-child .fp-timeline-dot { background:#2E9B5F; }\n\n  .fp-timeline-title {\n    display:block;\n    color:var(--green);\n    font-size:10px;\n    font-weight:900;\n  }\n\n  .fp-timeline-sub {\n    display:block;\n    margin-top:2px;\n    color:var(--muted);\n    font-size:9px;\n  }\n\n  .fp-timeline-arrival {\n    color:var(--green);\n    font-weight:900;\n  }\n\n  .fp-description {\n    display:grid;\n    gap:12px;\n    margin-top:14px;\n  }\n\n  .fp-description-section {\n    padding:18px;\n    background:#fff;\n    border:1px solid var(--border);\n    border-radius:20px;\n  }\n\n  .fp-description-section--green { background:#F0F7F3; }\n\n  .fp-description h2 {\n    margin:0 0 7px;\n    color:var(--green);\n    font-size:22px;\n  }\n\n  .fp-description h3 {\n    margin:0 0 5px;\n    color:var(--green);\n    font-size:16px;\n  }\n\n  .fp-description p {\n    margin:0;\n    font-size:14px;\n    line-height:1.6;\n  }\n\n  .fp-description-grid {\n    display:grid;\n    grid-template-columns:repeat(3,1fr);\n    gap:10px;\n    margin-top:12px;\n  }\n\n  .fp-step,\n  .fp-info-card {\n    padding:14px;\n    border-radius:15px;\n    background:#fff;\n    border:1px solid var(--border);\n  }\n\n  .fp-step-num {\n    width:28px;\n    height:28px;\n    display:grid;\n    place-items:center;\n    margin-bottom:8px;\n    border-radius:50%;\n    background:var(--green);\n    color:#fff;\n    font-size:12px;\n    font-weight:900;\n  }\n\n  .fp-two-col {\n    display:grid;\n    grid-template-columns:repeat(2,1fr);\n    gap:10px;\n    margin-top:12px;\n  }\n\n  .fp-description-image {\n    display:block;\n    width:100%;\n    max-width:620px;\n    margin:14px auto 0;\n    border-radius:16px;\n  }\n\n  .fp-accordion {\n    display:grid;\n    gap:7px;\n    margin-top:10px;\n  }\n\n  .fp-accordion details {\n    overflow:hidden;\n    border:1px solid var(--border);\n    border-radius:13px;\n    background:#fff;\n  }\n\n  .fp-accordion summary {\n    cursor:pointer;\n    list-style:none;\n    padding:13px;\n    color:var(--green);\n    font-size:13px;\n    font-weight:800;\n  }\n\n  .fp-accordion details p {\n    padding:0 13px 13px;\n    color:var(--muted);\n    font-size:12px;\n  }\n\n  @media(max-width:680px) {\n    .fp-shell { width:min(100% - 18px, 760px); }\n    .fp-product-image-wrap { padding:7px; }\n    .fp-buybox { padding:14px; }\n    .fp-description-grid,\n    .fp-two-col { grid-template-columns:1fr; }\n  }\n\u003c\/style\u003e\n\n\u003csection class=\"fp-pdp\"\u003e\n  \u003cdiv class=\"fp-shell\"\u003e\n\n    \u003cdiv class=\"fp-card\"\u003e\n      \u003cdiv class=\"fp-product-image-wrap\"\u003e\n        \u003cimg class=\"fp-product-image\" id=\"fpProductImage\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1080\/7119\/0858\/files\/ChatGPTImage18set2026_13_51_22.png?v=1789732539\" alt=\"FurboPet - Polvere Dentale per Cani\"\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fp-buybox\"\u003e\n        \u003cspan class=\"fp-kicker\"\u003eRoutine orale quotidiana\u003c\/span\u003e\n        \u003ch1 class=\"fp-title\" id=\"fpProductTitle\"\u003eFurboPet™ – Polvere Dentale per Cani\u003c\/h1\u003e\n\n        \u003cp class=\"fp-subtitle\"\u003e\n          Una polvere con enzimi e probiotici da aggiungere direttamente al pasto del tuo cane.\n          Semplice da inserire nella routine quotidiana, senza applicazione diretta nella bocca.\n        \u003c\/p\u003e\n\n        \u003cul class=\"fp-benefits\"\u003e\n          \u003cli\u003eAiuta a mantenere l’alito più fresco\u003c\/li\u003e\n          \u003cli\u003eSupporta l’igiene orale quotidiana\u003c\/li\u003e\n          \u003cli\u003eCon Papaina e Bacillus subtilis\u003c\/li\u003e\n          \u003cli\u003eSi aggiunge direttamente al normale pasto\u003c\/li\u003e\n        \u003c\/ul\u003e\n\n        \u003ch2 class=\"fp-bundle-title\"\u003eScegli la tua scorta\u003c\/h2\u003e\n        \u003cp class=\"fp-bundle-intro\"\u003eSeleziona il bundle che preferisci. Verrà aggiunta al carrello la variante Shopify corrispondente.\u003c\/p\u003e\n\n        \u003cdiv class=\"fp-bundle-options\"\u003e\n\n          \u003cdiv\u003e\n            \u003cinput class=\"fp-bundle-radio\" type=\"radio\" name=\"fp_bundle\" id=\"fp_bundle_1\" disabled\u003e\n            \u003clabel class=\"fp-bundle-card\" for=\"fp_bundle_1\"\u003e\n              \u003cspan class=\"fp-radio-ui\"\u003e\u003c\/span\u003e\n              \u003cspan class=\"fp-bundle-copy\"\u003e\n                \u003cstrong\u003e1 Barattolo\u003c\/strong\u003e\n                \u003cspan\u003e30 giorni di routine*\u003c\/span\u003e\n              \u003c\/span\u003e\n              \u003cspan class=\"fp-bundle-price\"\u003e\n                \u003cstrong data-price-total\u003eCaricamento…\u003c\/strong\u003e\n                \u003cspan data-price-unit\u003e\u003c\/span\u003e\n              \u003c\/span\u003e\n            \u003c\/label\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv\u003e\n            \u003cinput class=\"fp-bundle-radio\" type=\"radio\" name=\"fp_bundle\" id=\"fp_bundle_2\" disabled checked\u003e\n            \u003clabel class=\"fp-bundle-card\" for=\"fp_bundle_2\"\u003e\n              \u003cspan class=\"fp-bundle-tag\"\u003ePIÙ CONVENIENTE\u003c\/span\u003e\n              \u003cspan class=\"fp-radio-ui\"\u003e\u003c\/span\u003e\n              \u003cspan class=\"fp-bundle-copy\"\u003e\n                \u003cstrong\u003e2 Barattoli\u003c\/strong\u003e\n                \u003cspan\u003e60 giorni di routine*\u003c\/span\u003e\n                \u003cspan class=\"fp-save\" data-save\u003eRisparmi\u003c\/span\u003e\n              \u003c\/span\u003e\n              \u003cspan class=\"fp-bundle-price\"\u003e\n                \u003cstrong data-price-total\u003eCaricamento…\u003c\/strong\u003e\n                \u003cdel data-price-regular style=\"display:none;\"\u003e\u003c\/del\u003e\n                \u003cspan data-price-unit\u003e\u003c\/span\u003e\n              \u003c\/span\u003e\n            \u003c\/label\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv\u003e\n            \u003cinput class=\"fp-bundle-radio\" type=\"radio\" name=\"fp_bundle\" id=\"fp_bundle_3\" disabled\u003e\n            \u003clabel class=\"fp-bundle-card\" for=\"fp_bundle_3\"\u003e\n              \u003cspan class=\"fp-bundle-tag fp-bundle-tag--save\"\u003eMASSIMO RISPARMIO\u003c\/span\u003e\n              \u003cspan class=\"fp-radio-ui\"\u003e\u003c\/span\u003e\n              \u003cspan class=\"fp-bundle-copy\"\u003e\n                \u003cstrong\u003e3 Barattoli\u003c\/strong\u003e\n                \u003cspan\u003e90 giorni di routine*\u003c\/span\u003e\n                \u003cspan class=\"fp-save\" data-save\u003eRisparmi\u003c\/span\u003e\n              \u003c\/span\u003e\n              \u003cspan class=\"fp-bundle-price\"\u003e\n                \u003cstrong data-price-total\u003eCaricamento…\u003c\/strong\u003e\n                \u003cdel data-price-regular style=\"display:none;\"\u003e\u003c\/del\u003e\n                \u003cspan data-price-unit\u003e\u003c\/span\u003e\n              \u003c\/span\u003e\n            \u003c\/label\u003e\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fp-summary\"\u003e\n          \u003cdiv class=\"fp-summary-row\"\u003e\n            \u003cspan\u003eHai scelto\u003c\/span\u003e\n            \u003cstrong data-summary-label\u003e2 barattoli\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-summary-row\"\u003e\n            \u003cspan\u003eDurata indicativa\u003c\/span\u003e\n            \u003cstrong data-summary-days\u003e60 giorni\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-summary-row\"\u003e\n            \u003cspan\u003eRisparmio\u003c\/span\u003e\n            \u003cstrong data-summary-save\u003e—\u003c\/strong\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-summary-row\"\u003e\n            \u003cspan\u003eTotale offerta\u003c\/span\u003e\n            \u003cstrong data-summary-total\u003eCaricamento…\u003c\/strong\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cbutton type=\"button\" class=\"fp-add\" id=\"fpAddToCart\" disabled\u003e\n          Caricamento offerte…\n        \u003c\/button\u003e\n\n        \u003cp class=\"fp-mini-note\"\u003e\n          *Durata indicativa calcolata su 30 giorni per barattolo. La durata reale può variare in base al dosaggio previsto per il peso del cane.\n        \u003c\/p\u003e\n\n        \u003cdiv class=\"fp-cart-error\" id=\"fpCartError\"\u003e\u003c\/div\u003e\n\n        \u003cdiv class=\"fp-shipping\" data-fp-shipping\u003e\n          \u003cdiv class=\"fp-shipping-card fp-shipping-card--express\"\u003e\n            \u003cdiv class=\"fp-shipping-head\"\u003e\n              \u003cspan class=\"fp-shipping-name\"\u003eEXPRESS\u003c\/span\u003e\n              \u003cspan class=\"fp-shipping-time\"\u003e3–8 giorni lavorativi\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"fp-shipping-explain\"\u003e\u003cstrong\u003eTempi stimati di consegna.\u003c\/strong\u003e Elaborazione dell’ordine entro 12 e 24 ore.\u003c\/p\u003e\n\n            \u003cdiv class=\"fp-timeline\"\u003e\n              \u003cdiv class=\"fp-timeline-step\"\u003e\n                \u003cdiv class=\"fp-timeline-dot\"\u003e\u003c\/div\u003e\n                \u003cspan class=\"fp-timeline-title\"\u003eOrdini ora\u003c\/span\u003e\n                \u003cspan class=\"fp-timeline-sub\" data-fp-order-date\u003eoggi\u003c\/span\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"fp-timeline-step\"\u003e\n                \u003cdiv class=\"fp-timeline-dot\"\u003e\u003c\/div\u003e\n                \u003cspan class=\"fp-timeline-title\"\u003eElaborazione\u003c\/span\u003e\n                \u003cspan class=\"fp-timeline-sub\"\u003eentro 12 e 24 ore\u003c\/span\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"fp-timeline-step\"\u003e\n                \u003cdiv class=\"fp-timeline-dot\"\u003e\u003c\/div\u003e\n                \u003cspan class=\"fp-timeline-title\"\u003eArrivo stimato\u003c\/span\u003e\n                \u003cspan class=\"fp-timeline-sub fp-timeline-arrival\" data-fp-express\u003ecalcolo…\u003c\/span\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"fp-shipping-card\"\u003e\n            \u003cdiv class=\"fp-shipping-head\"\u003e\n              \u003cspan class=\"fp-shipping-name\"\u003eSTANDARD\u003c\/span\u003e\n              \u003cspan class=\"fp-shipping-time\"\u003e5–10 giorni lavorativi\u003c\/span\u003e\n            \u003c\/div\u003e\n            \u003cp class=\"fp-shipping-explain\"\u003e\u003cstrong\u003eTempi stimati di consegna.\u003c\/strong\u003e Elaborazione dell’ordine entro 24 e 48 ore.\u003c\/p\u003e\n\n            \u003cdiv class=\"fp-timeline\"\u003e\n              \u003cdiv class=\"fp-timeline-step\"\u003e\n                \u003cdiv class=\"fp-timeline-dot\"\u003e\u003c\/div\u003e\n                \u003cspan class=\"fp-timeline-title\"\u003eOrdini ora\u003c\/span\u003e\n                \u003cspan class=\"fp-timeline-sub\" data-fp-order-date\u003eoggi\u003c\/span\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"fp-timeline-step\"\u003e\n                \u003cdiv class=\"fp-timeline-dot\"\u003e\u003c\/div\u003e\n                \u003cspan class=\"fp-timeline-title\"\u003eElaborazione\u003c\/span\u003e\n                \u003cspan class=\"fp-timeline-sub\"\u003eentro 24 e 48 ore\u003c\/span\u003e\n              \u003c\/div\u003e\n              \u003cdiv class=\"fp-timeline-step\"\u003e\n                \u003cdiv class=\"fp-timeline-dot\"\u003e\u003c\/div\u003e\n                \u003cspan class=\"fp-timeline-title\"\u003eArrivo stimato\u003c\/span\u003e\n                \u003cspan class=\"fp-timeline-sub fp-timeline-arrival\" data-fp-standard\u003ecalcolo…\u003c\/span\u003e\n              \u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"fp-description\"\u003e\n      \u003csection class=\"fp-description-section fp-description-section--green\"\u003e\n        \u003ch2\u003eUna routine più semplice per prenderti cura della sua bocca\u003c\/h2\u003e\n        \u003cp\u003e\n          FurboPet™ è pensato per rendere l’igiene orale quotidiana più facile da mantenere.\n          La polvere viene aggiunta al normale pasto del cane una volta al giorno, seguendo\n          il dosaggio indicato, senza dover applicare il prodotto direttamente nella bocca.\n        \u003c\/p\u003e\n      \u003c\/section\u003e\n\n      \u003csection class=\"fp-description-section\"\u003e\n        \u003ch2\u003eCome si usa?\u003c\/h2\u003e\n        \u003cdiv class=\"fp-description-grid\"\u003e\n          \u003cdiv class=\"fp-step\"\u003e\n            \u003cdiv class=\"fp-step-num\"\u003e1\u003c\/div\u003e\n            \u003ch3\u003ePrepara il pasto\u003c\/h3\u003e\n            \u003cp\u003eUsa il cibo che il tuo cane mangia normalmente.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-step\"\u003e\n            \u003cdiv class=\"fp-step-num\"\u003e2\u003c\/div\u003e\n            \u003ch3\u003eAggiungi FurboPet™\u003c\/h3\u003e\n            \u003cp\u003eUtilizza la quantità indicata in base al peso del cane.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-step\"\u003e\n            \u003cdiv class=\"fp-step-num\"\u003e3\u003c\/div\u003e\n            \u003ch3\u003eLascia che mangi\u003c\/h3\u003e\n            \u003cp\u003eLa routine orale entra semplicemente nel momento del pasto.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cimg class=\"fp-description-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1080\/7119\/0858\/files\/shopify6.png?v=1789897866\" alt=\"Come utilizzare FurboPet\" loading=\"lazy\"\u003e\n      \u003c\/section\u003e\n\n      \u003csection class=\"fp-description-section\"\u003e\n        \u003ch2\u003ePerché inserirlo nella routine?\u003c\/h2\u003e\n        \u003cdiv class=\"fp-two-col\"\u003e\n          \u003cdiv class=\"fp-info-card\"\u003e\n            \u003ch3\u003eRoutine quotidiana semplice\u003c\/h3\u003e\n            \u003cp\u003eSi aggiunge direttamente al cibo e non richiede applicazione diretta nella bocca.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-info-card\"\u003e\n            \u003ch3\u003eAlito più fresco\u003c\/h3\u003e\n            \u003cp\u003eAiuta a mantenere l’alito più fresco nell’ambito di una corretta routine di igiene orale.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-info-card\"\u003e\n            \u003ch3\u003eSupporto alla routine orale\u003c\/h3\u003e\n            \u003cp\u003eAiuta a limitare l’accumulo di placca nell’ambito di una corretta routine quotidiana.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-info-card\"\u003e\n            \u003ch3\u003eEnzimi e probiotici\u003c\/h3\u003e\n            \u003cp\u003eLa formula contiene Papaina e Bacillus subtilis.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cimg class=\"fp-description-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1080\/7119\/0858\/files\/shopify9.png?v=1789899956\" alt=\"Benefici FurboPet\" loading=\"lazy\"\u003e\n      \u003c\/section\u003e\n\n      \u003csection class=\"fp-description-section fp-description-section--green\"\u003e\n        \u003ch2\u003eCosa contiene?\u003c\/h2\u003e\n        \u003cdiv class=\"fp-two-col\"\u003e\n          \u003cdiv class=\"fp-info-card\"\u003e\n            \u003ch3\u003ePapaina — Enzima\u003c\/h3\u003e\n            \u003cp\u003eUtilizzata nella formula per supportare la routine quotidiana di igiene orale.\u003c\/p\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"fp-info-card\"\u003e\n            \u003ch3\u003eBacillus subtilis — Probiotico\u003c\/h3\u003e\n            \u003cp\u003eUtilizzato nella formula per supportare l’equilibrio del microbiota orale.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cimg class=\"fp-description-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1080\/7119\/0858\/files\/7.png?v=1789827733\" alt=\"Papaina e Bacillus subtilis\" loading=\"lazy\"\u003e\n      \u003c\/section\u003e\n\n      \u003csection class=\"fp-description-section\"\u003e\n        \u003ch2\u003eQuanto devo utilizzare?\u003c\/h2\u003e\n        \u003cp\u003eLa quantità cambia in base al peso del cane. Utilizza sempre il misurino e segui le indicazioni riportate sulla confezione.\u003c\/p\u003e\n\n        \u003cimg class=\"fp-description-image\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/1080\/7119\/0858\/files\/shopify7.png?v=1789898234\" alt=\"Dosaggio FurboPet\" loading=\"lazy\"\u003e\n      \u003c\/section\u003e\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n(function () {\n  var state = {\n    product:null,\n    bundles:{}\n  };\n\n  function centsToEuro(cents) {\n    return \"€\" + (Number(cents || 0) \/ 100).toFixed(2).replace(\".\", \",\");\n  }\n\n  function normalize(text) {\n    return String(text || \"\")\n      .toLowerCase()\n      .normalize(\"NFD\")\n      .replace(\/[\\u0300-\\u036f]\/g, \"\")\n      .trim();\n  }\n\n  function bundleCountFromTitle(title) {\n    var t = normalize(title);\n\n    if (\n      \/\\b1\\b\/.test(t) ||\n      t.indexOf(\"un barattolo\") !== -1 ||\n      t.indexOf(\"uno barattolo\") !== -1\n    ) return 1;\n\n    if (\n      \/\\b2\\b\/.test(t) ||\n      t.indexOf(\"due barattoli\") !== -1\n    ) return 2;\n\n    if (\n      \/\\b3\\b\/.test(t) ||\n      t.indexOf(\"tre barattoli\") !== -1\n    ) return 3;\n\n    return null;\n  }\n\n  function findBundles(product) {\n    var bundles = {};\n\n    product.variants.forEach(function (variant) {\n      var count = bundleCountFromTitle(variant.title);\n      if (count \u0026\u0026 !bundles[count]) {\n        bundles[count] = variant;\n      }\n    });\n\n    \/* Fallback: prime 3 varianti nell'ordine Shopify *\/\n    if (!bundles[1] \u0026\u0026 product.variants[0]) bundles[1] = product.variants[0];\n    if (!bundles[2] \u0026\u0026 product.variants[1]) bundles[2] = product.variants[1];\n    if (!bundles[3] \u0026\u0026 product.variants[2]) bundles[3] = product.variants[2];\n\n    return bundles;\n  }\n\n  function setupBundle(count, variant, basePrice) {\n    var radio = document.getElementById(\"fp_bundle_\" + count);\n    if (!radio || !variant) return;\n\n    radio.value = variant.id;\n    radio.dataset.count = count;\n    radio.dataset.title = variant.title;\n    radio.dataset.totalCents = variant.price;\n    radio.dataset.days = count * 30;\n    radio.dataset.available = variant.available ? \"true\" : \"false\";\n    radio.disabled = !variant.available;\n\n    var regular = Number(basePrice || 0) * count;\n    var save = Math.max(0, regular - Number(variant.price || 0));\n    radio.dataset.saveCents = save;\n\n    var wrapper = radio.parentElement;\n    var totalEl = wrapper.querySelector(\"[data-price-total]\");\n    var unitEl = wrapper.querySelector(\"[data-price-unit]\");\n    var regularEl = wrapper.querySelector(\"[data-price-regular]\");\n    var saveEl = wrapper.querySelector(\"[data-save]\");\n\n    if (totalEl) totalEl.textContent = centsToEuro(variant.price);\n    if (unitEl) unitEl.textContent = centsToEuro(Math.round(variant.price \/ count)) + \" \/ barattolo\";\n\n    if (regularEl) {\n      if (save \u003e 0) {\n        regularEl.textContent = centsToEuro(regular);\n        regularEl.style.display = \"block\";\n      } else {\n        regularEl.style.display = \"none\";\n      }\n    }\n\n    if (saveEl) {\n      if (save \u003e 0) {\n        saveEl.textContent = \"Risparmi \" + centsToEuro(save);\n        saveEl.style.setProperty(\"display\", \"inline-block\", \"important\");\n      } else {\n        saveEl.style.setProperty(\"display\", \"none\", \"important\");\n      }\n    }\n  }\n\n  function getSelectedRadio() {\n    return document.querySelector('.fp-bundle-radio[name=\"fp_bundle\"]:checked');\n  }\n\n  function updateSummary() {\n    var radio = getSelectedRadio();\n    if (!radio || !radio.value) return;\n\n    var count = Number(radio.dataset.count || 1);\n    var total = Number(radio.dataset.totalCents || 0);\n    var save = Number(radio.dataset.saveCents || 0);\n    var days = Number(radio.dataset.days || (count * 30));\n    var available = radio.dataset.available === \"true\";\n\n    var labelEl = document.querySelector(\"[data-summary-label]\");\n    var daysEl = document.querySelector(\"[data-summary-days]\");\n    var saveEl = document.querySelector(\"[data-summary-save]\");\n    var totalEl = document.querySelector(\"[data-summary-total]\");\n    var button = document.getElementById(\"fpAddToCart\");\n\n    if (labelEl) labelEl.textContent = count + (count === 1 ? \" barattolo\" : \" barattoli\");\n    if (daysEl) daysEl.textContent = days + \" giorni\";\n    if (saveEl) saveEl.textContent = save \u003e 0 ? centsToEuro(save) : \"—\";\n    if (totalEl) totalEl.textContent = centsToEuro(total);\n\n    if (button) {\n      button.disabled = !available;\n      button.textContent = available\n        ? \"Aggiungi \" + count + (count === 1 ? \" barattolo\" : \" barattoli\") + \" · \" + centsToEuro(total)\n        : \"Opzione non disponibile\";\n    }\n  }\n\n  function productJsonUrl() {\n    var path = window.location.pathname.replace(\/\\\/$\/, \"\");\n    return path + \".js\";\n  }\n\n  function loadProduct() {\n    return fetch(productJsonUrl(), {\n      headers:{ \"Accept\":\"application\/json\" }\n    })\n    .then(function (response) {\n      if (!response.ok) throw new Error(\"Non riesco a leggere le varianti Shopify.\");\n      return response.json();\n    })\n    .then(function (product) {\n      state.product = product;\n      state.bundles = findBundles(product);\n\n      if (product.featured_image) {\n        document.getElementById(\"fpProductImage\").src = product.featured_image;\n      }\n\n      setupBundle(1, state.bundles[1], state.bundles[1] ? state.bundles[1].price : 0);\n      setupBundle(2, state.bundles[2], state.bundles[1] ? state.bundles[1].price : 0);\n      setupBundle(3, state.bundles[3], state.bundles[1] ? state.bundles[1].price : 0);\n\n      var defaultRadio =\n        (state.bundles[2] \u0026\u0026 state.bundles[2].available \u0026\u0026 document.getElementById(\"fp_bundle_2\")) ||\n        (state.bundles[1] \u0026\u0026 state.bundles[1].available \u0026\u0026 document.getElementById(\"fp_bundle_1\")) ||\n        (state.bundles[3] \u0026\u0026 state.bundles[3].available \u0026\u0026 document.getElementById(\"fp_bundle_3\"));\n\n      if (defaultRadio) {\n        defaultRadio.checked = true;\n      }\n\n      updateSummary();\n    });\n  }\n\n  document.addEventListener(\"change\", function (event) {\n    if (event.target \u0026\u0026 event.target.matches('.fp-bundle-radio[name=\"fp_bundle\"]')) {\n      updateSummary();\n    }\n  });\n\n  document.getElementById(\"fpAddToCart\").addEventListener(\"click\", function () {\n    var radio = getSelectedRadio();\n    var button = this;\n    var errorBox = document.getElementById(\"fpCartError\");\n\n    if (!radio || !radio.value) return;\n\n    var variantId = Number(radio.value);\n\n    button.disabled = true;\n    var oldText = button.textContent;\n    button.textContent = \"Aggiungo al carrello…\";\n\n    errorBox.style.display = \"none\";\n    errorBox.textContent = \"\";\n\n    fetch(\"\/cart\/add.js\", {\n      method:\"POST\",\n      headers:{\n        \"Content-Type\":\"application\/json\",\n        \"Accept\":\"application\/json\"\n      },\n      body:JSON.stringify({\n        items:[{\n          id:variantId,\n          quantity:1\n        }]\n      })\n    })\n    .then(function (response) {\n      if (!response.ok) {\n        return response.json().then(function (data) {\n          throw new Error(data.description || \"Impossibile aggiungere il prodotto al carrello.\");\n        });\n      }\n      return response.json();\n    })\n    .then(function () {\n      window.location.href = \"\/cart\";\n    })\n    .catch(function (error) {\n      button.disabled = false;\n      button.textContent = oldText;\n      errorBox.textContent = error.message;\n      errorBox.style.display = \"block\";\n    });\n  });\n\n  function addBusinessDays(startDate, businessDays) {\n    var d = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), 12,0,0);\n    var added = 0;\n\n    while (added \u003c businessDays) {\n      d.setDate(d.getDate() + 1);\n      var day = d.getDay();\n      if (day !== 0 \u0026\u0026 day !== 6) added++;\n    }\n\n    return d;\n  }\n\n  function formatDate(date, includeYear) {\n    var options = { day:\"numeric\", month:\"short\" };\n    if (includeYear) options.year = \"numeric\";\n\n    return new Intl.DateTimeFormat(\"it-IT\", options)\n      .format(date)\n      .replace(\".\", \"\");\n  }\n\n  function formatRange(start, end) {\n    var year = new Date().getFullYear();\n    var includeYear = start.getFullYear() !== year || end.getFullYear() !== year;\n    return formatDate(start, includeYear) + \" – \" + formatDate(end, includeYear);\n  }\n\n  function updateShipping() {\n    var now = new Date();\n    var processed = new Date(now.getTime() + 24 * 60 * 60 * 1000);\n\n    var expressMin = addBusinessDays(processed, 3);\n    var expressMax = addBusinessDays(processed, 8);\n    var standardMin = addBusinessDays(processed, 5);\n    var standardMax = addBusinessDays(processed, 10);\n\n    document.querySelectorAll(\"[data-fp-shipping]\").forEach(function (badge) {\n      badge.querySelectorAll(\"[data-fp-order-date]\").forEach(function (el) {\n        el.textContent = formatDate(now, false);\n      });\n\n      var express = badge.querySelector(\"[data-fp-express]\");\n      var standard = badge.querySelector(\"[data-fp-standard]\");\n\n      if (express) express.textContent = formatRange(expressMin, expressMax);\n      if (standard) standard.textContent = formatRange(standardMin, standardMax);\n    });\n  }\n\n  loadProduct().catch(function (error) {\n    var errorBox = document.getElementById(\"fpCartError\");\n    errorBox.textContent = error.message;\n    errorBox.style.display = \"block\";\n  });\n\n  updateShipping();\n  setInterval(updateShipping, 60 * 60 * 1000);\n})();\n\u003c\/script\u003e","brand":"FurboPET","offers":[{"title":"1 Barattolo","offer_id":63611890008394,"sku":null,"price":22.9,"currency_code":"EUR","in_stock":true},{"title":"2 Barattoli","offer_id":63611890041162,"sku":null,"price":39.8,"currency_code":"EUR","in_stock":true},{"title":"3 Barattoli","offer_id":63611890073930,"sku":null,"price":53.7,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1080\/7119\/0858\/files\/ChatGPTImage18set2026_13_51_22.png?v=1789732539","url":"https:\/\/furbopet.com\/products\/furbopet","provider":"FurboPet","version":"1.0","type":"link"}