{"product_id":"pack-de-6-limes-recip-one-aurora-rogin","title":"Pack de 6 limas Recip-One Douradas - ROGIN","description":"\u003cdiv class=\"oofti-tier-offer\" data-product-handle=\"recip-one-rogin\" data-unit-price-ttc=\"22.80\"\u003e\n  \u003cdiv class=\"oofti-tier-offer__header\"\u003e\n    \u003cstrong\u003eOferta por quantidade\u003c\/strong\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__intro\"\u003e\n    Poupe mais conforme a quantidade encomendada.\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__tiers\"\u003e\n    \u003cdiv class=\"oofti-tier-offer__tier\" data-tier=\"1\"\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-left\"\u003e\n        \u003cstrong\u003eCompre em 5-9\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-right\"\u003e\n        poupe \u003cstrong\u003e5 %\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"oofti-tier-offer__tier\" data-tier=\"2\"\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-left\"\u003e\n        \u003cstrong\u003eCompre em 10-49\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-right\"\u003e\n        poupe \u003cstrong\u003e9 %\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"oofti-tier-offer__tier\" data-tier=\"3\"\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-left\"\u003e\n        \u003cstrong\u003eCompre em 50-100\u003c\/strong\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"oofti-tier-offer__tier-right\"\u003e\n        poupe \u003cstrong\u003e13 %\u003c\/strong\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__note\"\u003e\n    Desconto visível no momento do pagamento.\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__progress\"\u003e\n    \u003cdiv class=\"oofti-tier-offer__progress-bar\" data-offer-bar\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"oofti-tier-offer__status\" data-offer-status\u003e\n    Verificação da oferta…\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n  .oofti-tier-offer {\n    margin: 16px 0;\n    padding: 16px;\n    border: 1px solid #bfe7df;\n    border-radius: 12px;\n    background: #f6fffc;\n    font-family: inherit;\n  }\n\n  .oofti-tier-offer__header {\n    margin-bottom: 6px;\n    font-size: 16px;\n    line-height: 1.3;\n    color: #163342;\n  }\n\n  .oofti-tier-offer__intro {\n    font-size: 14px;\n    color: #163342;\n    margin-bottom: 12px;\n  }\n\n  .oofti-tier-offer__tiers {\n    display: flex;\n    flex-direction: column;\n    gap: 8px;\n    margin-bottom: 10px;\n  }\n\n  .oofti-tier-offer__tier {\n    display: flex;\n    justify-content: space-between;\n    align-items: center;\n    gap: 12px;\n    padding: 10px 12px;\n    border-radius: 10px;\n    background: #ffffff;\n    border: 1px solid #d9ece7;\n    font-size: 14px;\n    color: #163342;\n  }\n\n  .oofti-tier-offer__tier.is-active {\n    border-color: #39bfa7;\n    background: #ecfbf7;\n  }\n\n  .oofti-tier-offer__tier.is-reached {\n    border-color: #8ad8c7;\n    background: #f3fffb;\n  }\n\n  .oofti-tier-offer__note {\n    font-size: 13px;\n    color: #4f6b78;\n    margin-bottom: 12px;\n  }\n\n  .oofti-tier-offer__progress {\n    width: 100%;\n    height: 10px;\n    background: #dfeceb;\n    border-radius: 999px;\n    overflow: hidden;\n    margin-bottom: 10px;\n  }\n\n  .oofti-tier-offer__progress-bar {\n    height: 100%;\n    width: 0%;\n    border-radius: 999px;\n    background: #39bfa7;\n    transition: width 0.25s ease;\n  }\n\n  .oofti-tier-offer__status {\n    font-size: 14px;\n    color: #163342;\n  }\n\u003c\/style\u003e\n\n\u003cscript\u003e\n  (function() {\n    const container = document.querySelector('.oofti-tier-offer');\n    if (!container) return;\n\n    const productHandle = container.getAttribute('data-product-handle');\n    const unitPriceTTC = Number(container.getAttribute('data-unit-price-ttc')) || 22.8;\n\n    const statusEl = container.querySelector('[data-offer-status]');\n    const barEl = container.querySelector('[data-offer-bar]');\n    const tierEls = container.querySelectorAll('.oofti-tier-offer__tier');\n\n    const tiers = [\n      { min: 5, max: 9, discount: 5 },\n      { min: 10, max: 11, discount: 9 },\n      { min: 50, max: 100, discount: 13 }\n    ];\n\n    function formatEuro(value) {\n      return value.toLocaleString('fr-FR', {\n        style: 'currency',\n        currency: 'EUR'\n      });\n    }\n\n    function clearTierStates() {\n      tierEls.forEach(function(el) {\n        el.classList.remove('is-active');\n        el.classList.remove('is-reached');\n      });\n    }\n\n    function markTierState(qty) {\n      clearTierStates();\n\n      tierEls.forEach(function(el, index) {\n        const tier = tiers[index];\n        if (!tier) return;\n\n        if (qty \u003e= tier.min \u0026\u0026 qty \u003c= tier.max) {\n          el.classList.add('is-active');\n        } else if (qty \u003e tier.max) {\n          el.classList.add('is-reached');\n        }\n      });\n    }\n\n    function getCurrentTier(qty) {\n      return tiers.find(function(tier) {\n        return qty \u003e= tier.min \u0026\u0026 qty \u003c= tier.max;\n      });\n    }\n\n    function getNextTier(qty) {\n      return tiers.find(function(tier) {\n        return qty \u003c tier.min;\n      });\n    }\n\n    function updateProgress(qty) {\n      let progress = 0;\n\n      if (qty \u003c= 0) {\n        progress = 0;\n      } else if (qty \u003c 5) {\n        progress = (qty \/ 5) * 100;\n      } else if (qty \u003c 10) {\n        progress = 100;\n      } else if (qty \u003c 50) {\n        progress = 100;\n      } else {\n        progress = 100;\n      }\n\n      if (barEl) {\n        barEl.style.width = Math.min(progress, 100) + '%';\n      }\n    }\n\n    function updateUI(qty) {\n      markTierState(qty);\n      updateProgress(qty);\n\n      const currentTier = getCurrentTier(qty);\n      const nextTier = getNextTier(qty);\n\n      if (qty \u003c 5) {\n        const remaining = 5 - qty;\n        statusEl.innerHTML =\n          'Ajoutez encore \u003cstrong\u003e' + remaining + '\u003c\/strong\u003e unité' + (remaining \u003e 1 ? 's' : '') +\n          ' pour débloquer \u003cstrong\u003e5 %\u003c\/strong\u003e de remise.';\n        return;\n      }\n\n      if (currentTier) {\n        const unitAfter = unitPriceTTC * (1 - currentTier.discount \/ 100);\n        statusEl.innerHTML =\n          '✅ Offre active : \u003cstrong\u003e' + currentTier.discount + ' %\u003c\/strong\u003e de remise appliquée, soit \u003cstrong\u003e' +\n          formatEuro(unitAfter) + '\u003c\/strong\u003e TTC par unité.';\n        return;\n      }\n\n      if (qty \u003e= 12 \u0026\u0026 qty \u003c 50) {\n        const remaining = 50 - qty;\n        statusEl.innerHTML =\n          'Aucun palier promo entre \u003cstrong\u003e12\u003c\/strong\u003e et \u003cstrong\u003e49\u003c\/strong\u003e unités dans cette configuration. Ajoutez encore \u003cstrong\u003e' +\n          remaining + '\u003c\/strong\u003e unité' + (remaining \u003e 1 ? 's' : '') +\n          ' pour atteindre \u003cstrong\u003e13 %\u003c\/strong\u003e.';\n        return;\n      }\n\n      if (qty \u003e 100) {\n        statusEl.innerHTML =\n          '✅ Vous avez dépassé le palier affiché de \u003cstrong\u003e100\u003c\/strong\u003e unités. Vérifiez dans BOGOS si la remise doit continuer au-delà.';\n        return;\n      }\n\n      if (nextTier) {\n        const remaining = nextTier.min - qty;\n        statusEl.innerHTML =\n          'Ajoutez encore \u003cstrong\u003e' + remaining + '\u003c\/strong\u003e unité' + (remaining \u003e 1 ? 's' : '') +\n          ' pour atteindre \u003cstrong\u003e' + nextTier.discount + ' %\u003c\/strong\u003e de remise.';\n        return;\n      }\n\n      statusEl.innerHTML = 'Remise visible au moment du paiement.';\n    }\n\n    function itemMatchesProduct(item) {\n      if (!item) return false;\n\n      if (item.handle \u0026\u0026 item.handle === productHandle) {\n        return true;\n      }\n\n      if (item.url \u0026\u0026 item.url.indexOf('\/products\/' + productHandle) !== -1) {\n        return true;\n      }\n\n      return false;\n    }\n\n    async function refreshOffer() {\n      try {\n        const res = await fetch('\/cart.js', { credentials: 'same-origin' });\n        const cart = await res.json();\n\n        let totalQty = 0;\n\n        if (cart \u0026\u0026 cart.items \u0026\u0026 Array.isArray(cart.items)) {\n          cart.items.forEach(function(item) {\n            if (itemMatchesProduct(item)) {\n              totalQty += Number(item.quantity || 0);\n            }\n          });\n        }\n\n        updateUI(totalQty);\n      } catch (error) {\n        statusEl.textContent = 'Remise visible au moment du paiement.';\n      }\n    }\n\n    refreshOffer();\n\n    document.addEventListener('DOMContentLoaded', refreshOffer);\n    document.addEventListener('cart:refresh', refreshOffer);\n    document.addEventListener('ajaxProduct:added', refreshOffer);\n\n    document.addEventListener('click', function(e) {\n      const btn = e.target.closest('button[type=\"submit\"], [name=\"add\"], .shopify-payment-button__button');\n      if (!btn) return;\n      setTimeout(refreshOffer, 1200);\n    });\n\n    const cartDrawer = document.querySelector('cart-drawer, .drawer, .cart-drawer');\n    if (cartDrawer \u0026\u0026 window.MutationObserver) {\n      const observer = new MutationObserver(function() {\n        refreshOffer();\n      });\n      observer.observe(cartDrawer, { childList: true, subtree: true });\n    }\n  })();\n\u003c\/script\u003e\n\n\n\u003cp\u003eFerramenta de reciprocidade para o tratamento do canal radicular. Instrumento em blister estéril, recomendado para uso único para oferecer uma eficácia de corte constante, reduzir o risco de fracturas e diminuir os riscos de contaminação cruzada.\u003c\/p\u003e\n\u003cp\u003e\u003cspan style=\"color: rgb(64, 64, 64);\"\u003e\u003cstrong\u003e\"Fizemos testar estas limas por vários endodontistas exclusivos, e o veredicto é unânime: «As Recip-One azuis são comparáveis em todos os aspetos às melhores limas do mercado, oferecendo um desempenho inigualável, uma resistência excecional e uma precisão incomparável.» Os seus feedbacks unânimes confirmam a qualidade superior e a fiabilidade incontestável deste produto, concebido para responder às exigências das práticas clínicas mais rigorosas.\"\u003c\/strong\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003eAs limas Recip-One estão disponíveis em três versões com características distintas adaptadas às necessidades específicas dos profissionais:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecip-One Prateadas\u003c\/strong\u003e: Muito eficazes em termos de trabalho e eficiência de corte, são concebidas para canais retos. A sua rigidez torna-as menos flexíveis, mas a sua capacidade de corte é ótima nos casos em que a curvatura do canal é mínima.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecip-One Azuis\u003c\/strong\u003e: Estas limas são extremamente flexíveis, o que as torna ideais para canais com curvaturas acentuadas. A sua flexibilidade permite uma adaptação precisa aos contornos do canal, minimizando os riscos de desvio e fractura.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecip-One Douradas\u003c\/strong\u003e: Combinando flexibilidade e capacidade de corte, as limas douradas oferecem um equilíbrio perfeito entre trabalho e manobrabilidade. São ideais para canais mistos, ou seja, aqueles que exigem tanto uma boa capacidade de corte como alguma flexibilidade.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eCada tipo de lima é concebido para responder às especificidades dos tratamentos endodônticos, oferecendo aos profissionais uma escolha adequada à complexidade dos canais a tratar.\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003eOferecemos neste produto as variações \u003c\/p\u003e\n\u003cp\u003eComprimento: 21, 25, 31 mm\u003c\/p\u003e\n\u003cp\u003eTipo:\u003c\/p\u003e\n\u003cp\u003e#25 oferecendo 8% de conicidade,\u003cspan\u003e \u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e#\u003c\/span\u003e40\u003cspan\u003e \u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003eoferecendo 6\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003e% de conicidade\u003c\/span\u003e,\u003c\/p\u003e\n\u003cp\u003e\u003cspan data-mce-fragment=\"1\"\u003e#\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e50 \u003cspan data-mce-fragment=\"1\"\u003eoferecendo 5\u003c\/span\u003e\u003cspan data-mce-fragment=\"1\"\u003e% de conicidade\u003c\/span\u003e\u003cspan\u003e \u003c\/span\u003e\u003cbr\u003e\u003c\/p\u003e\n\u003cdiv style=\"text-align: left;\"\u003e\u003cimg style=\"float: none;\" alt=\"\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0335\/9873\/4474\/files\/reciponecross_100x100.jpg?v=1603209004\"\u003e\u003c\/div\u003e\n\u003cp\u003e\u003cspan\u003eA sua forma em S (corte transversal) melhora a sua flexibilidade. \u003cstrong\u003eUm único instrumento pode ser usado para a preparação de um canal radicular.\u003c\/strong\u003e\u003cbr\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cspan\u003eVendido em pack de 6 limas \u003c\/span\u003e\u003c\/p\u003e","brand":"Dental Coop","offers":[{"title":"L 25mm, #25","offer_id":53752482693447,"sku":"RECIPLIMAU_25_25","price":19.0,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0335\/9873\/4474\/files\/sup-taper-files-aurora-version.webp?v=1776766157","url":"https:\/\/oofti.fr\/pt\/products\/pack-de-6-limes-recip-one-aurora-rogin","provider":"oofti.fr","version":"1.0","type":"link"}