{"product_id":"smilefix","title":"SmileFix™ 2x1 | Recupera tu Sonrisa en Minutos","description":"\u003cstyle\u003e\n#smilefix-lp,\n#smilefix-lp *{\n  box-sizing:border-box;\n}\n\n#smilefix-lp{\n  --text:#24282d;\n  --muted:#677078;\n  --border:#e3e6e8;\n  --soft:#f7f8f9;\n  --green:#2f8f5b;\n  --green-soft:#eef8f2;\n  --star:#f4b400;\n\n  width:100%;\n  max-width:780px;\n  margin:0 auto;\n  padding:0 14px 36px;\n  background:#fff;\n  color:var(--text);\n  font-family:inherit;\n  container-type:inline-size;\n}\n\n#smilefix-lp h1,\n#smilefix-lp h2,\n#smilefix-lp p{\n  margin-top:0;\n}\n\n#smilefix-lp img{\n  display:block!important;\n  position:static!important;\n  width:100%!important;\n  max-width:100%!important;\n  height:auto!important;\n  margin-left:auto!important;\n  margin-right:auto!important;\n  opacity:1!important;\n  visibility:visible!important;\n}\n\n#smilefix-lp .sf-section{\n  width:100%;\n  margin:0 auto 38px;\n}\n\n#smilefix-lp .sf-title{\n  max-width:700px;\n  margin:0 auto 12px;\n  text-align:center;\n  color:var(--text);\n  font-size:34px;\n  line-height:1.1;\n  letter-spacing:-.5px;\n  font-weight:900;\n}\n\n#smilefix-lp .sf-subtitle{\n  max-width:670px;\n  margin:0 auto 18px;\n  text-align:center;\n  color:#525b62;\n  font-size:16.5px;\n  line-height:1.6;\n}\n\n#smilefix-lp .sf-heading{\n  max-width:670px;\n  margin:0 auto 13px;\n  text-align:center;\n  color:var(--text);\n  font-size:27px;\n  line-height:1.18;\n  letter-spacing:-.3px;\n  font-weight:900;\n}\n\n#smilefix-lp .sf-text{\n  max-width:650px;\n  margin:0 auto 18px;\n  text-align:center;\n  color:var(--muted);\n  font-size:15.5px;\n  line-height:1.64;\n}\n\n#smilefix-lp .sf-media{\n  width:100%;\n  max-width:540px;\n  margin:0 auto 18px;\n  overflow:hidden;\n}\n\n#smilefix-lp .sf-media img{\n  border-radius:12px;\n}\n\n\n\/* ======================================\n   BENEFICIOS 2X2\n====================================== *\/\n\n#smilefix-lp .sf-benefits-grid{\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:12px;\n  width:100%;\n  max-width:620px;\n  margin:18px auto 0;\n}\n\n#smilefix-lp .sf-benefit-card{\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  justify-content:center;\n  min-height:155px;\n  padding:18px 13px 17px;\n  border:1px solid #e2e5e7;\n  background:#fafafa;\n  text-align:center;\n}\n\n#smilefix-lp .sf-benefit-icon{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  height:42px;\n  margin-bottom:10px;\n  font-size:27px;\n  line-height:1;\n}\n\n#smilefix-lp .sf-benefit-title{\n  margin:0!important;\n  color:#41464b;\n  font-size:14.5px;\n  line-height:1.5;\n  font-weight:600;\n}\n\n\n\/* ======================================\n   RESEÑAS CARRUSEL\n====================================== *\/\n\n#smilefix-lp .sf-reviews-wrap{\n  width:100%;\n  max-width:540px;\n  margin:0 auto;\n}\n\n#smilefix-lp .sf-reviews-carousel{\n  position:relative;\n  width:100%;\n  overflow:hidden;\n  border-radius:12px;\n  touch-action:pan-y;\n  cursor:grab;\n  user-select:none;\n  -webkit-user-select:none;\n}\n\n#smilefix-lp .sf-reviews-carousel:active{\n  cursor:grabbing;\n}\n\n#smilefix-lp .sf-reviews-track{\n  display:flex;\n  align-items:flex-start;\n  gap:12px;\n  transition:transform .45s ease;\n  will-change:transform;\n}\n\n\/* Cada reseña ocupa 88% para dejar visible parte de la siguiente *\/\n#smilefix-lp .sf-review-slide{\n  flex:0 0 88%;\n  width:88%;\n  min-width:88%;\n  padding:0;\n}\n\n#smilefix-lp .sf-review-card{\n  width:100%;\n  overflow:hidden;\n  border:1px solid var(--border);\n  border-radius:12px;\n  background:#fff;\n  box-shadow:0 4px 14px rgba(20,36,52,.045);\n}\n\n#smilefix-lp .sf-review-photo{\n  width:100%;\n  aspect-ratio:1 \/ 1;\n  overflow:hidden;\n  background:#f4f5f6;\n}\n\n\/* Todas las fotos de reseñas quedan exactamente 1:1 *\/\n#smilefix-lp .sf-review-photo img{\n  display:block!important;\n  width:100%!important;\n  max-width:100%!important;\n  height:100%!important;\n  margin:0!important;\n  object-fit:cover!important;\n  object-position:center!important;\n  border-radius:0!important;\n  pointer-events:none;\n  -webkit-user-drag:none;\n}\n\n#smilefix-lp .sf-review-body{\n  padding:14px 14px 16px;\n}\n\n#smilefix-lp .sf-review-stars{\n  margin:0 0 8px;\n  color:var(--star);\n  font-size:15px;\n  line-height:1;\n  letter-spacing:1px;\n}\n\n#smilefix-lp .sf-review-name{\n  margin:0 0 8px!important;\n  color:var(--text);\n  font-size:15px;\n  line-height:1.25;\n  font-weight:850;\n}\n\n#smilefix-lp .sf-review-city{\n  color:#7c848a;\n  font-weight:600;\n}\n\n#smilefix-lp .sf-review-text{\n  margin:0!important;\n  color:#495057;\n  font-size:14.2px;\n  line-height:1.58;\n}\n\n#smilefix-lp .sf-review-nav{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:10px;\n  margin-top:12px;\n}\n\n#smilefix-lp .sf-review-arrow{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:34px;\n  height:34px;\n  padding:0;\n  border:1px solid var(--border);\n  border-radius:50%;\n  background:#fff;\n  color:var(--text);\n  font:inherit;\n  font-size:21px;\n  line-height:1;\n  cursor:pointer;\n  box-shadow:0 2px 7px rgba(20,36,52,.05);\n}\n\n#smilefix-lp .sf-review-arrow:active{\n  transform:scale(.96);\n}\n\n#smilefix-lp .sf-review-dots{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:6px;\n  margin-top:0;\n}\n\n#smilefix-lp .sf-review-dot{\n  display:block;\n  width:7px;\n  height:7px;\n  border-radius:50%;\n  background:#c7ccd1;\n  cursor:pointer;\n  transition:all .22s ease;\n}\n\n#smilefix-lp .sf-review-dot.active{\n  width:18px;\n  border-radius:999px;\n  background:var(--green);\n}\n\n\n\/* ======================================\n   FAQ\n====================================== *\/\n\n#smilefix-lp .sf-faq{\n  width:100%;\n  max-width:650px;\n  margin:0 auto;\n  border-top:1px solid var(--border);\n}\n\n#smilefix-lp .sf-faq details{\n  margin:0;\n  border-bottom:1px solid var(--border);\n  background:#fff;\n}\n\n#smilefix-lp .sf-faq summary{\n  position:relative;\n  padding:17px 40px 17px 2px;\n  list-style:none;\n  cursor:pointer;\n  color:var(--text);\n  font-size:14.5px;\n  line-height:1.45;\n  font-weight:850;\n}\n\n#smilefix-lp .sf-faq summary::-webkit-details-marker{\n  display:none;\n}\n\n#smilefix-lp .sf-faq summary:before,\n#smilefix-lp .sf-faq summary:after{\n  content:\"\";\n  position:absolute;\n  top:50%;\n  right:8px;\n  width:14px;\n  height:1.5px;\n  border-radius:99px;\n  background:#193b5b;\n  transform:translateY(-50%);\n}\n\n#smilefix-lp .sf-faq summary:after{\n  transform:translateY(-50%) rotate(90deg);\n}\n\n#smilefix-lp .sf-faq details[open] summary:after{\n  transform:translateY(-50%);\n}\n\n#smilefix-lp .sf-faq p{\n  margin:0;\n  padding:0 34px 17px 2px;\n  color:var(--muted);\n  font-size:13.8px;\n  line-height:1.63;\n}\n\n\n@container(max-width:480px){\n\n  #smilefix-lp .sf-section{\n    margin-bottom:32px;\n  }\n\n  #smilefix-lp .sf-title{\n    font-size:28px;\n  }\n\n  #smilefix-lp .sf-heading{\n    font-size:23px;\n  }\n\n  #smilefix-lp .sf-subtitle{\n    font-size:15.5px;\n  }\n\n  #smilefix-lp .sf-benefits-grid{\n    gap:10px;\n  }\n\n  #smilefix-lp .sf-benefit-card{\n    min-height:145px;\n    padding:15px 9px;\n  }\n\n  #smilefix-lp .sf-benefit-icon{\n    height:38px;\n    font-size:24px;\n  }\n\n  #smilefix-lp .sf-benefit-title{\n    font-size:13.2px;\n    line-height:1.45;\n  }\n\n}\n\u003c\/style\u003e\n\u003cdiv id=\"smilefix-lp\"\u003e\n\u003c!-- HERO --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003ch1 class=\"sf-title\"\u003eImagina volver a reírte a carcajadas sin taparte la boca.\u003c\/h1\u003e\n\u003cp class=\"sf-subtitle\"\u003eDescubre cómo SmileFix™ recupera esa confianza en cuestión de minutos, sin moverte de tu casa.\u003c\/p\u003e\n\u003cdiv class=\"sf-media\"\u003e\u003cimg src=\"https:\/\/drlumident.com\/cdn\/shop\/files\/imgi_12_2_c233c2c7-4dd2-4b0d-8b6f-4416a33cc775.gif?v=1780485112\u0026amp;width=1500\" alt=\"SmileFix\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- RECUPERA TU SONRISA --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003ch2 class=\"sf-heading\"\u003eRecupera tu sonrisa al instante\u003c\/h2\u003e\n\u003cp class=\"sf-text\"\u003eNo necesitas experiencia ni herramientas especiales para lograrlo. Solo derrite, aplica y listo, tu sonrisa vuelve a brillar.\u003c\/p\u003e\n\u003cdiv class=\"sf-media\"\u003e\u003cimg src=\"https:\/\/media3.giphy.com\/media\/v1.Y2lkPTc5MGI3NjExamt6aGwxbTZmeXY5dHEwc3A1bWpvcXBiNXE5dG16enc1Nm94enloaiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw\/lfqtXYh90zSeaXQCcS\/giphy.gif\" alt=\"Aplicación SmileFix\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- MOMENTOS IMPORTANTES --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003ch2 class=\"sf-heading\"\u003eVive tus momentos importantes con confianza total\u003c\/h2\u003e\n\u003cp class=\"sf-text\"\u003eEntrevistas, citas o fiestas ya no serán motivo de pena. Siente la seguridad de sonreír sin taparte la boca.\u003c\/p\u003e\n\u003cdiv class=\"sf-media\"\u003e\u003cimg src=\"https:\/\/mercadotodo.com.mx\/cdn\/shop\/files\/ca78d608a180777304575a5db3fb8234.gif?v=1750790703\u0026amp;width=1500\" alt=\"SmileFix confianza\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- FOTOS --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003ch2 class=\"sf-heading\"\u003eVuelve a sonreír en cada foto\u003c\/h2\u003e\n\u003cp class=\"sf-text\"\u003eA veces pasa, ves la cámara y dudas. Recupera la confianza de sonreír de frente a la cámara.\u003c\/p\u003e\n\u003cdiv class=\"sf-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0990\/7801\/3231\/files\/044a8f06-55b8-408f-ae1d-2364fc5c4d25.png?v=1791089749\" alt=\"\"\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- BENEFICIOS ORIGINALES EN FORMATO 2X2 --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003ch2 class=\"sf-heading\"\u003ePensado para el uso diario\u003c\/h2\u003e\n\u003cdiv class=\"sf-benefits-grid\"\u003e\n\u003cdiv class=\"sf-benefit-card\"\u003e\n\u003cdiv class=\"sf-benefit-icon\"\u003e😄\u003c\/div\u003e\n\u003cp class=\"sf-benefit-title\"\u003eVuelve a reír a carcajadas sin taparte la boca\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sf-benefit-card\"\u003e\n\u003cdiv class=\"sf-benefit-icon\"\u003e📸\u003c\/div\u003e\n\u003cp class=\"sf-benefit-title\"\u003eSácate fotos sin esconder la sonrisa\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sf-benefit-card\"\u003e\n\u003cdiv class=\"sf-benefit-icon\"\u003e💬\u003c\/div\u003e\n\u003cp class=\"sf-benefit-title\"\u003eHabla con más seguridad en cualquier momento\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sf-benefit-card\"\u003e\n\u003cdiv class=\"sf-benefit-icon\"\u003e❤️\u003c\/div\u003e\n\u003cp class=\"sf-benefit-title\"\u003eSiéntete tú de nuevo, sin esconderte\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sf-media\" style=\"text-align: start;\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- RESEÑAS --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003cdiv class=\"sf-media\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0990\/7801\/3231\/files\/Imagen_de_ChatGPT_4_oct_2026_01_31_06.png?v=1791088374\" alt=\"SmileFix\"\u003e\u003c\/div\u003e\n\u003ch2 class=\"sf-heading\"\u003e¿Qué dicen nuestros clientes?\u003c\/h2\u003e\n\u003cdiv class=\"sf-reviews-wrap\"\u003e\n\u003cdiv class=\"sf-reviews-carousel\" id=\"sfReviewsCarousel\"\u003e\n\u003cdiv class=\"sf-reviews-track\" id=\"sfReviewsTrack\"\u003e\n\u003c!-- CAROLINA --\u003e\n\u003cdiv class=\"sf-review-slide\"\u003e\n\u003carticle class=\"sf-review-card\"\u003e\n\u003cdiv class=\"sf-review-photo\"\u003e\u003cimg src=\"https:\/\/tiendatoptendencias.com\/cdn\/shop\/files\/71_rHmO_MSL.jpg?v=1785951936\u0026amp;width=1420\" alt=\"Reseña Carolina\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"sf-review-body\"\u003e\n\u003cdiv class=\"sf-review-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"sf-review-name\"\u003eCarolina \u003cspan class=\"sf-review-city\"\u003e · Concepción \u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"sf-review-text\"\u003e“Lo compré para tenerlo por si necesitaba salir de un apuro. Lo usé un par de veces y se ve bastante natural si uno se toma el tiempo de acomodarlo bien.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c!-- MARCELO --\u003e\n\u003cdiv class=\"sf-review-slide\"\u003e\n\u003carticle class=\"sf-review-card\"\u003e\n\u003cdiv class=\"sf-review-photo\"\u003e\u003cimg src=\"https:\/\/tiendatoptendencias.com\/cdn\/shop\/files\/6164k9xRm3L.jpg?v=1785951356\u0026amp;width=1420\" alt=\"Reseña Marcelo\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"sf-review-body\"\u003e\n\u003cdiv class=\"sf-review-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"sf-review-name\"\u003eMarcelo \u003cspan class=\"sf-review-city\"\u003e · Maipú \u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"sf-review-text\"\u003e“Lo compré más que nada para probar y me sorprendió que fuera tan simple de usar. Con agua caliente se ablanda rápido y uno mismo lo va acomodando.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c!-- PATRICIA --\u003e\n\u003cdiv class=\"sf-review-slide\"\u003e\n\u003carticle class=\"sf-review-card\"\u003e\n\u003cdiv class=\"sf-review-photo\"\u003e\u003cimg src=\"https:\/\/tiendatoptendencias.com\/cdn\/shop\/files\/71K4l8tvAwL.jpg?v=1785951971\u0026amp;width=1420\" alt=\"Reseña Patricia\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"sf-review-body\"\u003e\n\u003cdiv class=\"sf-review-stars\"\u003e★★★★★\u003c\/div\u003e\n\u003cp class=\"sf-review-name\"\u003ePatricia \u003cspan class=\"sf-review-city\"\u003e · Angol \u003c\/span\u003e\u003c\/p\u003e\n\u003cp class=\"sf-review-text\"\u003e“Lo usé para una ocasión especial porque no quería que se notara tanto el espacio al sonreír. Quedó bastante piola y cumplió con lo que necesitaba.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/article\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"sf-review-nav\" aria-label=\"Navegación de reseñas\"\u003e\n\u003cbutton class=\"sf-review-arrow\" id=\"sfReviewPrev\" type=\"button\" aria-label=\"Reseña anterior\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"sf-review-dots\" id=\"sfReviewDots\"\u003e\n\u003cspan class=\"sf-review-dot active\" role=\"button\" tabindex=\"0\" aria-label=\"Ver reseña 1\"\u003e\u003c\/span\u003e\n\u003cspan class=\"sf-review-dot\" role=\"button\" tabindex=\"0\" aria-label=\"Ver reseña 2\"\u003e\u003c\/span\u003e\n\u003cspan class=\"sf-review-dot\" role=\"button\" tabindex=\"0\" aria-label=\"Ver reseña 3\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"sf-review-arrow\" id=\"sfReviewNext\" type=\"button\" aria-label=\"Reseña siguiente\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- FAQ --\u003e\n\u003csection class=\"sf-section\"\u003e\n\u003ch2 class=\"sf-heading\"\u003ePreguntas frecuentes\u003c\/h2\u003e\n\u003cdiv class=\"sf-faq\"\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Es seguro usarlo en la boca?\u003c\/summary\u003e\n\u003cp\u003eSí, está pensado para aplicación externa sobre el diente, no se traga ni se inyecta. Aun así, es una solución estética temporal, no un tratamiento dental. Si sientes molestia, consulta a tu dentista.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Cuánto dura pegado antes de tener que volver a aplicarlo?\u003c\/summary\u003e\n\u003cp\u003eDepende del uso diario y de cómo comas, pero está hecho para aguantar varias horas seguidas. Si se despega, puedes calentarlo y volver a moldearlo las veces que necesites.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Sirve para huecos grandes o solo para arreglos pequeños?\u003c\/summary\u003e\n\u003cp\u003eFunciona mejor en huecos o roturas pequeñas a medianas. Si el daño es muy grande o profundo, lo ideal es que un dentista lo revise antes de cualquier solución temporal.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Puedo comer y hablar normal después de aplicarlo?\u003c\/summary\u003e\n\u003cp\u003ePuedes hablar sin problema. Para comer, evita alimentos muy duros o pegajosos las primeras horas mientras se asienta. Con eso, se mantiene firme durante tu día a día.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Qué pasa si no me queda bien la primera vez?\u003c\/summary\u003e\n\u003cp\u003eNo pasa nada, puedes calentarlo de nuevo y volver a moldearlo hasta que te acomode. El envase rinde para varios intentos, así que tienes margen para practicar.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003e¿Cómo lo quito si quiero sacármelo?\u003c\/summary\u003e\n\u003cp\u003eSe retira con cuidado usando los dedos o un cepillo de dientes, sin necesidad de instrumentos especiales. Si queda algún resto, se limpia fácil con el cepillado normal.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003c!-- IMAGEN FINAL --\u003e\n\u003csection class=\"sf-section\" style=\"max-width: 520px;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0657\/1619\/1388\/files\/Diseno_sin_titulo_1_1_92828d2f-2e9d-4c15-b68c-70074f00c5cb.jpg?v=1777049060\" alt=\"SmileFix\"\u003e\u003c\/section\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n(function(){\n  function initSmileFixCarousel(){\n    var root = document.getElementById('smilefix-lp');\n    if (!root) return;\n\n    var carousel = root.querySelector('#sfReviewsCarousel');\n    var track = root.querySelector('#sfReviewsTrack');\n    var originals = track ? Array.prototype.slice.call(track.querySelectorAll('.sf-review-slide:not([data-sf-clone])')) : [];\n    var dots = Array.prototype.slice.call(root.querySelectorAll('.sf-review-dot'));\n    var prev = root.querySelector('#sfReviewPrev');\n    var next = root.querySelector('#sfReviewNext');\n\n    if (!carousel || !track || originals.length \u003c 2) return;\n\n    if (root._sfAutoplay) {\n      clearInterval(root._sfAutoplay);\n      root._sfAutoplay = null;\n    }\n\n    \/* Limpia clones previos si Shopify recarga la sección *\/\n    Array.prototype.slice.call(track.querySelectorAll('[data-sf-clone]')).forEach(function(el){\n      el.remove();\n    });\n\n    \/* Clones para un loop continuo y para mantener siempre el efecto “peek” *\/\n    var firstClone = originals[0].cloneNode(true);\n    firstClone.setAttribute('data-sf-clone','first');\n    var lastClone = originals[originals.length - 1].cloneNode(true);\n    lastClone.setAttribute('data-sf-clone','last');\n    track.insertBefore(lastClone, originals[0]);\n    track.appendChild(firstClone);\n\n    var allSlides = Array.prototype.slice.call(track.querySelectorAll('.sf-review-slide'));\n    var index = 0;          \/\/ índice real: 0..n-1\n    var position = 1;       \/\/ posición visual: 1..n, porque 0 es clon final\n    var startX = 0;\n    var deltaX = 0;\n    var dragging = false;\n    var AUTOPLAY_MS = 4000;\n\n    function xForPosition(pos){\n      var slide = allSlides[pos];\n      return slide ? -slide.offsetLeft : 0;\n    }\n\n    function setTransform(pos, animate, extraPx){\n      position = pos;\n      track.style.transition = animate === false ? 'none' : 'transform .45s ease';\n      var x = xForPosition(pos) + (extraPx || 0);\n      track.style.transform = 'translate3d(' + x + 'px,0,0)';\n    }\n\n    function updateDots(){\n      dots.forEach(function(dot, dotIndex){\n        var active = dotIndex === index;\n        dot.classList.toggle('active', active);\n        dot.setAttribute('aria-current', active ? 'true' : 'false');\n      });\n    }\n\n    function goToReal(realIndex, animate){\n      index = (realIndex + originals.length) % originals.length;\n      setTransform(index + 1, animate, 0);\n      updateDots();\n    }\n\n    function nextSlide(){\n      if (index === originals.length - 1) {\n        \/* Va al clon de la primera reseña; transitionend lo reposiciona sin salto visible *\/\n        index = 0;\n        setTransform(originals.length + 1, true, 0);\n        updateDots();\n      } else {\n        index += 1;\n        setTransform(index + 1, true, 0);\n        updateDots();\n      }\n    }\n\n    function prevSlide(){\n      if (index === 0) {\n        \/* Va al clon de la última reseña; transitionend lo reposiciona *\/\n        index = originals.length - 1;\n        setTransform(0, true, 0);\n        updateDots();\n      } else {\n        index -= 1;\n        setTransform(index + 1, true, 0);\n        updateDots();\n      }\n    }\n\n    function startAutoplay(){\n      if (root._sfAutoplay) clearInterval(root._sfAutoplay);\n      root._sfAutoplay = setInterval(function(){\n        if (!dragging \u0026\u0026 !document.hidden) nextSlide();\n      }, AUTOPLAY_MS);\n    }\n\n    function restartAutoplay(){\n      startAutoplay();\n    }\n\n    track.addEventListener('transitionend', function(){\n      \/* Después de mostrar un clon, vuelve a la copia real sin animación *\/\n      if (position === originals.length + 1) {\n        position = 1;\n        setTransform(1, false, 0);\n      } else if (position === 0) {\n        position = originals.length;\n        setTransform(originals.length, false, 0);\n      }\n    });\n\n    if (prev \u0026\u0026 !prev.dataset.sfBound) {\n      prev.dataset.sfBound = '1';\n      prev.addEventListener('click', function(){\n        prevSlide();\n        restartAutoplay();\n      });\n    }\n\n    if (next \u0026\u0026 !next.dataset.sfBound) {\n      next.dataset.sfBound = '1';\n      next.addEventListener('click', function(){\n        nextSlide();\n        restartAutoplay();\n      });\n    }\n\n    dots.forEach(function(dot, dotIndex){\n      if (dot.dataset.sfBound) return;\n      dot.dataset.sfBound = '1';\n\n      dot.addEventListener('click', function(){\n        goToReal(dotIndex, true);\n        restartAutoplay();\n      });\n\n      dot.addEventListener('keydown', function(e){\n        if (e.key === 'Enter' || e.key === ' ') {\n          e.preventDefault();\n          goToReal(dotIndex, true);\n          restartAutoplay();\n        }\n      });\n    });\n\n    if (!carousel.dataset.sfBound) {\n      carousel.dataset.sfBound = '1';\n\n      carousel.addEventListener('pointerdown', function(e){\n        if (e.pointerType === 'mouse' \u0026\u0026 e.button !== 0) return;\n        dragging = true;\n        startX = e.clientX;\n        deltaX = 0;\n        track.style.transition = 'none';\n        if (carousel.setPointerCapture) carousel.setPointerCapture(e.pointerId);\n      });\n\n      carousel.addEventListener('pointermove', function(e){\n        if (!dragging) return;\n        deltaX = e.clientX - startX;\n        track.style.transform = 'translate3d(' + (xForPosition(position) + deltaX) + 'px,0,0)';\n      });\n\n      function endDrag(){\n        if (!dragging) return;\n        dragging = false;\n\n        var threshold = Math.min(70, (carousel.clientWidth || 1) * 0.14);\n        if (Math.abs(deltaX) \u003e threshold) {\n          if (deltaX \u003c 0) nextSlide();\n          else prevSlide();\n        } else {\n          setTransform(position, true, 0);\n        }\n\n        restartAutoplay();\n      }\n\n      carousel.addEventListener('pointerup', endDrag);\n      carousel.addEventListener('pointercancel', endDrag);\n      carousel.addEventListener('lostpointercapture', endDrag);\n    }\n\n    \/* Mantiene la posición correcta si cambia el ancho de pantalla *\/\n    window.addEventListener('resize', function(){\n      setTransform(index + 1, false, 0);\n    });\n\n    document.addEventListener('visibilitychange', function(){\n      if (!document.hidden) restartAutoplay();\n    });\n\n    \/* Empieza con la primera reseña completa y ~12% de la segunda visible *\/\n    requestAnimationFrame(function(){\n      goToReal(0, false);\n      startAutoplay();\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initSmileFixCarousel);\n  } else {\n    initSmileFixCarousel();\n  }\n\n  document.addEventListener('shopify:section:load', initSmileFixCarousel);\n})();\n\u003c\/script\u003e\n\n\u003cp\u003e \u003c\/p\u003e","brand":"Soilant","offers":[{"title":"Default Title","offer_id":58354418483503,"sku":"Dientes Postizos Temporales Reparación","price":27990.0,"currency_code":"CLP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0990\/7801\/3231\/files\/Sonrieconconfianza_SmileFix2x1.png?v=1791091229","url":"https:\/\/soilantchile.com\/products\/smilefix","provider":"Soilant","version":"1.0","type":"link"}