{"product_id":"square-hole-cutter-for-wall-surfaces-2","title":"MasterBox™- A ferramenta chegou pra facilitar seu trabalho!","description":"\u003c!-- ====== CARROSSEL DE AVALIAÇÕES (OtoFlex™) ====== --\u003e\n\u003cstyle\u003e\n  .reviews-wrap{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;max-width:980px;margin:40px auto;padding:0 16px}\n  .reviews-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}\n  .reviews-title{font-size:clamp(20px,2.6vw,28px);font-weight:700}\n  .reviews-sub{color:#6b7280;font-size:14px}\n  .reviews{\n    position:relative;overflow:hidden;border:1px solid #e5e7eb;border-radius:16px;background:#fff;\n    box-shadow:0 6px 24px rgba(0,0,0,.05)\n  }\n  .track{display:flex;transition:transform .5s ease}\n  .slide{\n    min-width:100%;padding:24px;display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:center\n  }\n  .avatar{\n    width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid #e5e7eb\n  }\n  .stars{color:#fbbf24;font-size:18px;letter-spacing:2px}\n  .name{font-weight:700;margin-top:2px}\n  .meta{color:#6b7280;font-size:13px}\n  .text{margin-top:10px;line-height:1.55}\n  .controls{\n    position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;pointer-events:none\n  }\n  .btn{\n    pointer-events:auto;background:#111827;color:#fff;border:none;border-radius:999px;width:38px;height:38px;\n    display:grid;place-items:center;cursor:pointer;opacity:.9;transition:opacity .2s\n  }\n  .btn:hover{opacity:1}\n  .btn[disabled]{opacity:.35;cursor:not-allowed}\n  .dots{display:flex;gap:8px;justify-content:center;padding:12px}\n  .dot{\n    width:8px;height:8px;border-radius:50%;background:#d1d5db;cursor:pointer;transition:background .2s,width .2s\n  }\n  .dot.active{background:#111827;width:18px;border-radius:6px}\n  @media (max-width:520px){\n    .slide{grid-template-columns:56px 1fr}\n    .avatar{width:56px;height:56px}\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"reviews-wrap\"\u003e\n  \u003cdiv class=\"reviews-head\"\u003e\n    \u003cdiv class=\"reviews-title\"\u003eO que nossas clientes dizem\u003c\/div\u003e\n    \u003cdiv class=\"reviews-sub\"\u003eAvaliações reais de quem já comprou e recebeu\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"reviews\" id=\"reviews\"\u003e\n    \u003cdiv class=\"track\"\u003e\n      \u003c!-- ===== SLIDE 1 (edite aqui) ===== --\u003e\n      \u003cdiv class=\"slide\" data-name=\"Juliana M.\" data-city=\"Campinas, SP\"\u003e\n        \u003cimg class=\"avatar\" src=\"https:\/\/images.unsplash.com\/photo-1544005313-94ddf0286df2?q=80\u0026amp;w=300\u0026amp;auto=format\u0026amp;fit=crop\" alt=\"Cliente 1\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"name\"\u003eJuliana M. \u003cspan class=\"meta\"\u003e• Campinas, SP • Compra verificada\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"text\"\u003e\n            Chegou rápido e muito bem embalado. Usei no mesmo dia e a diferença é absurda!\n            Corrige e ainda deixa o visual elegante. Me sinto muito mais confiante.\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- ===== SLIDE 2 (FOTO ATUALIZADA) ===== --\u003e\n      \u003cdiv class=\"slide\" data-name=\"Larissa F.\" data-city=\"Brasília, DF\"\u003e\n        \u003cimg class=\"avatar\" src=\"https:\/\/images.pexels.com\/photos\/774095\/pexels-photo-774095.jpeg\" alt=\"Cliente Larissa F.\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"name\"\u003eLarissa F. \u003cspan class=\"meta\"\u003e• Brasília, DF • Compra verificada\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"text\"\u003e\n            Qualidade melhor do que eu esperava. Encaixe firme, não machuca e combina com tudo.\n            Finalmente consigo prender o cabelo sem insegurança.\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- ===== SLIDE 3 (edite aqui) ===== --\u003e\n      \u003cdiv class=\"slide\" data-name=\"Renata P.\" data-city=\"Curitiba, PR\"\u003e\n        \u003cimg class=\"avatar\" src=\"https:\/\/images.unsplash.com\/photo-1524504388940-b1c1722653e1?q=80\u0026amp;w=300\u0026amp;auto=format\u0026amp;fit=crop\" alt=\"Cliente 3\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"name\"\u003eRenata P. \u003cspan class=\"meta\"\u003e• Curitiba, PR • Compra verificada\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"text\"\u003e\n            Acompanhamento do pedido certinho e entrega no prazo. Usei em uma festa, recebi elogios e\n            as fotos de perfil ficaram lindas. Vale cada centavo!\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- ===== SLIDE 4 (edite aqui) ===== --\u003e\n      \u003cdiv class=\"slide\" data-name=\"Camila A.\" data-city=\"Salvador, BA\"\u003e\n        \u003cimg class=\"avatar\" src=\"https:\/\/images.unsplash.com\/photo-1531123897727-8f129e1688ce?q=80\u0026amp;w=300\u0026amp;auto=format\u0026amp;fit=crop\" alt=\"Cliente 4\"\u003e\n        \u003cdiv\u003e\n          \u003cdiv class=\"stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cdiv class=\"name\"\u003eCamila A. \u003cspan class=\"meta\"\u003e• Salvador, BA • Compra verificada\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cdiv class=\"text\"\u003e\n            Recebi em 12 dias. Confortável, não cai e dá um acabamento lindo no visual.\n            Me senti livre para tirar fotos de perfil sem vergonha.\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- Controles --\u003e\n    \u003cdiv class=\"controls\"\u003e\n      \u003cbutton class=\"btn prev\" aria-label=\"Anterior\"\u003e‹\u003c\/button\u003e\n      \u003cbutton class=\"btn next\" aria-label=\"Próximo\"\u003e›\u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003c!-- Dots --\u003e\n    \u003cdiv class=\"dots\" aria-label=\"Indicadores\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  const root = document.getElementById('reviews');\n  const track = root.querySelector('.track');\n  const slides = Array.from(root.querySelectorAll('.slide'));\n  const prev = root.querySelector('.prev');\n  const next = root.querySelector('.next');\n  const dotsWrap = root.querySelector('.dots');\n  let index = 0, auto=null, interval=4500, isHover=false, startX=0, deltaX=0;\n\n  \/\/ Dots\n  slides.forEach((_,i)=\u003e{\n    const d=document.createElement('button');\n    d.className='dot'+(i===0?' active':'');\n    d.setAttribute('aria-label','Ir para avaliação '+(i+1));\n    d.addEventListener('click',()=\u003ego(i,true));\n    dotsWrap.appendChild(d);\n  });\n  const dots = Array.from(root.querySelectorAll('.dot'));\n\n  function update(){\n    track.style.transform = `translateX(-${index*100}%)`;\n    dots.forEach((d,i)=\u003ed.classList.toggle('active', i===index));\n    prev.disabled = (index===0);\n    next.disabled = (index===slides.length-1);\n  }\n\n  function go(i, stopAuto){\n    index = Math.max(0, Math.min(slides.length-1, i));\n    update();\n    if(stopAuto) restart();\n  }\n\n  function nextSlide(){ go(index+1); if(index===slides.length-1) go(0); }\n  function prevSlide(){ go(index-1); if(index===0) go(slides.length-1); }\n\n  function start(){ auto = setInterval(nextSlide, interval); }\n  function stop(){ clearInterval(auto); auto=null; }\n  function restart(){ stop(); if(!isHover) start(); }\n\n  \/\/ Hover pausa\n  root.addEventListener('mouseenter',()=\u003e{ isHover=true; stop(); });\n  root.addEventListener('mouseleave',()=\u003e{ isHover=false; start(); });\n\n  \/\/ Botões\n  next.addEventListener('click',()=\u003ego(index+1,true));\n  prev.addEventListener('click',()=\u003ego(index-1,true));\n\n  \/\/ Swipe (mobile)\n  track.addEventListener('touchstart',e=\u003e{ startX = e.touches[0].clientX; deltaX=0; stop(); });\n  track.addEventListener('touchmove',e=\u003e{ deltaX = e.touches[0].clientX - startX; });\n  track.addEventListener('touchend',()=\u003e{\n    if(Math.abs(deltaX)\u003e40){ deltaX\u003c0 ? nextSlide() : prevSlide(); }\n    restart();\n  });\n\n  \/\/ Teclado (acessibilidade)\n  root.setAttribute('tabindex','0');\n  root.addEventListener('keydown',e=\u003e{\n    if(e.key==='ArrowRight') go(index+1,true);\n    if(e.key==='ArrowLeft') go(index-1,true);\n  });\n\n  \/\/ Iniciar\n  update(); start();\n})();\n\u003c\/script\u003e\n\u003c!-- ====== \/CARROSSEL DE AVALIAÇÕES ====== --\u003e\n","brand":"FFOrder","offers":[{"title":"MasterBox™Original","offer_id":42396014968966,"sku":"1755742833295496","price":119.9,"currency_code":"BRL","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0598\/6517\/0054\/files\/Ondetecnologiaencontrapraticidade_4_375149dc-4bf3-4ac3-988a-ada8eec3bbf2.png?v=1755982334","url":"https:\/\/moryn.com.br\/products\/square-hole-cutter-for-wall-surfaces-2","provider":" Moryn","version":"1.0","type":"link"}