{"id":524,"date":"2026-08-01T18:58:51","date_gmt":"2026-08-01T18:58:51","guid":{"rendered":"https:\/\/thebestfloridawater.com\/home\/"},"modified":"2026-08-01T18:58:53","modified_gmt":"2026-08-01T18:58:53","slug":"home","status":"publish","type":"page","link":"https:\/\/thebestfloridawater.com\/es\/","title":{"rendered":"Inicio"},"content":{"rendered":"\n  \n    <section class=\"u-clearfix u-uploaded-video u-video u-section-1\" id=\"block-1\">\n      <div class=\"u-background-video u-expanded\" style=\"\">\n        <div class=\"embed-responsive\">\n          <video class=\"embed-responsive-item\" data-autoplay=\"1\" loop=\"\" muted=\"1\" autoplay=\"autoplay\" playsinline=\"\">\n            <source src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/waterjj.mp4\" type=\"video\/mp4\">\n            <p>Your browser does not support HTML5 video.<\/p>\n          <\/video>\n        <\/div>\n        <div class=\"u-video-shading\"><\/div>\n      <\/div>\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <h2 class=\"u-custom-font u-font-raleway u-subtitle u-text u-text-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1000\" data-animation-delay=\"0\"> Commercial &amp; Residential Water Treatment \u00b7 Sales \u2022 Install \u2022 Service<\/h2>\n        <div class=\"u-clearfix u-custom-html u-custom-html-1\"><!-- Google Tag Manager (noscript) -->\n          <noscript>\n            <iframe src=\"https:\/\/www.googletagmanager.com\/ns.html?id=GTM-W8Z7RP9H\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"><\/iframe>\n          <\/noscript><!-- End Google Tag Manager (noscript) -->\n        <\/div>\n        <h1 class=\"u-custom-font u-font-raleway u-text u-text-2\" data-animation-name=\"rubberBand\" data-animation-duration=\"1000\" data-animation-delay=\"0\" data-animation-direction=\"\"> Water Filtration &amp; Purification in Miami<\/h1>\n        <img decoding=\"async\" class=\"u-image u-image-default u-image-1\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/bfw.png?rand=0bdd\" alt=\"service water treatment and purification system\" data-image-width=\"500\" data-image-height=\"500\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"5000\" data-animation-delay=\"0\">\n        <a href=\"\" class=\"u-border-none u-btn u-button-style u-custom-color-2 u-btn-1\"> Get a Free Water Test<\/a>\n      <\/div>\n    <\/section>\n    <section class=\"u-align-center u-clearfix u-container-align-center u-gradient u-section-2\" id=\"carousel_5369\">\n      <div class=\"u-clearfix u-sheet u-valign-middle-lg u-valign-middle-md u-valign-middle-sm u-valign-middle-xs u-sheet-1\">\n        <div class=\"custom-expanded u-layout-grid u-list u-list-1\">\n          <div class=\"u-repeater u-repeater-1\">\n            <div class=\"u-align-center u-border-5 u-border-custom-color-1 u-container-align-center u-container-style u-list-item u-radius u-repeater-item u-shape-round u-video-cover u-white u-list-item-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"250\">\n              <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-1\"><span class=\"u-file-icon u-icon u-text-custom-color-1 u-icon-1\" data-animation-name=\"\" data-animation-duration=\"0\" data-animation-delay=\"0\" data-animation-direction=\"\"><img decoding=\"async\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/65a3db23.png\" alt=\"\"><\/span>\n                <h4 class=\"u-text u-text-1\"> Whole-Home Carbon Filtration<\/h4>\n                <p class=\"u-text u-text-2\"> Remove chlorine, odors and bad taste from every tap. Reliable Clack\u00ae backwashing options.<\/p>\n              <\/div>\n            <\/div>\n            <div class=\"u-align-center u-border-5 u-border-custom-color-1 u-container-align-center u-container-style u-list-item u-radius u-repeater-item u-shape-round u-video-cover u-white u-list-item-2\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"250\">\n              <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-2\"><span class=\"u-file-icon u-icon u-icon-2\" data-animation-name=\"\" data-animation-duration=\"0\" data-animation-delay=\"0\" data-animation-direction=\"\"><img decoding=\"async\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/747846.png\" alt=\"\"><\/span>\n                <h4 class=\"u-text u-text-3\"> Residential Water Treatment<\/h4>\n                <p class=\"u-text u-text-4\"> On-site test, custom system design and professional installation for homes of any size.<\/p>\n              <\/div>\n            <\/div>\n            <div class=\"u-align-center u-border-5 u-border-custom-color-1 u-container-align-center u-container-style u-list-item u-radius u-repeater-item u-shape-round u-video-cover u-white u-list-item-3\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"250\">\n              <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-3\"><span class=\"u-file-icon u-icon u-icon-3\" data-animation-name=\"\" data-animation-duration=\"0\" data-animation-delay=\"0\" data-animation-direction=\"\"><img decoding=\"async\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/12300744.png\" alt=\"\"><\/span>\n                <h4 class=\"u-text u-text-5\"> Commercial Filtration Systems<\/h4>\n                <p class=\"u-text u-text-6\"> High-flow, business-grade systems for restaurants, offices and facilities \u2014 built to performance specs.<\/p>\n              <\/div>\n            <\/div>\n            <div class=\"u-align-center u-border-5 u-border-custom-color-1 u-container-align-center u-container-style u-list-item u-radius u-repeater-item u-shape-round u-video-cover u-white u-list-item-4\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"250\">\n              <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-4\"><span class=\"u-file-icon u-icon u-icon-4\" data-animation-name=\"\" data-animation-duration=\"0\" data-animation-delay=\"0\" data-animation-direction=\"\"><img decoding=\"async\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/5806605.png\" alt=\"\"><\/span>\n                <h4 class=\"u-text u-text-7\"> Service &amp; Maintenance Plans<\/h4>\n                <p class=\"u-text u-text-8\"> Scheduled backwashing, media replacement, valve service and emergency repairs to keep systems running.<\/p>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-white u-section-3\" id=\"carousel_d0e6\">\n      <div class=\"u-clearfix u-sheet u-valign-middle-lg u-valign-middle-sm u-valign-middle-xs u-sheet-1\">\n        <div class=\"data-layout-selected u-clearfix u-expanded-width u-layout-wrap u-layout-wrap-1\">\n          <div class=\"u-layout\">\n            <div class=\"u-layout-row\">\n              <div class=\"u-align-left u-container-align-left u-container-align-left-lg u-container-align-left-md u-container-align-left-sm u-container-align-left-xl u-container-style u-layout-cell u-size-24 u-layout-cell-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"500\">\n                <div class=\"u-container-layout u-container-layout-1\">\n                  <h3 class=\"u-align-left u-text u-text-palette-3-dark-1 u-text-1\"> Certified &amp; Trusted <\/h3>\n                  <p class=\"u-align-left u-text u-text-2\"> We provide reliable water treatment and purification solutions across Florida \u2014 from single-family homes to commercial facilities. With certified Clack control valves, NSF standards, and WQA-trained technicians, we remove chlorine, bad tastes, and contaminants so your family and business enjoy safer, better-tasting water every day.<\/p>\n                  <a href=\"#\" class=\"u-active-white u-align-center u-border-2 u-border-active-white u-border-hover-white u-border-white u-btn u-button-style u-hover-white u-none u-radius u-btn-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"500\" data-animation-direction=\"\">learn more<\/a>\n                <\/div>\n              <\/div>\n              <div class=\"u-container-style u-layout-cell u-size-36 u-layout-cell-2\">\n                <div class=\"u-container-layout u-valign-middle-lg u-valign-middle-md u-valign-middle-sm u-container-layout-2\">\n                  <div class=\"u-shape u-shape-svg u-text-palette-3-dark-1 u-shape-1\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"500\">\n                    <svg class=\"u-svg-link\" preserveAspectRatio=\"none\" viewBox=\"0 0 160 160\" style=\"\"><use xlink:href=\"#svg-9d3d\"><\/use><\/svg>\n                    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" version=\"1.1\" xml:space=\"preserve\" class=\"u-svg-content\" viewBox=\"0 0 160 160\" x=\"0px\" y=\"0px\" id=\"svg-9d3d\" style=\"enable-background:new 0 0 160 160;\"><path d=\"M80,30c27.6,0,50,22.4,50,50s-22.4,50-50,50s-50-22.4-50-50S52.4,30,80,30 M80,0C35.8,0,0,35.8,0,80s35.8,80,80,80\n\ts80-35.8,80-80S124.2,0,80,0L80,0z\"><\/path><\/svg>\n                  <\/div>\n                  <div class=\"u-image u-image-circle u-image-1\" data-image-width=\"1179\" data-image-height=\"1191\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" alt=\"water quality association \" style=\"background-image: url(&quot;https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/WhatsAppImage2025-10-14at17.02.16_c58ac9d2.jpg&quot;);\"><\/div>\n                  <div class=\"u-shape u-shape-svg u-text-palette-3-base u-shape-2\" data-animation-name=\"bounceIn\" data-animation-duration=\"1250\" data-animation-direction=\"\" data-animation-delay=\"750\">\n                    <svg class=\"u-svg-link\" preserveAspectRatio=\"none\" viewBox=\"0 0 160 160\" style=\"\"><use xlink:href=\"#svg-9d3d\"><\/use><\/svg>\n                    <svg class=\"u-svg-content\" viewBox=\"0 0 160 160\" x=\"0px\" y=\"0px\" id=\"svg-9d3d\" style=\"enable-background:new 0 0 160 160;\"><path d=\"M80,30c27.6,0,50,22.4,50,50s-22.4,50-50,50s-50-22.4-50-50S52.4,30,80,30 M80,0C35.8,0,0,35.8,0,80s35.8,80,80,80\n\ts80-35.8,80-80S124.2,0,80,0L80,0z\"><\/path><\/svg>\n                  <\/div>\n                  <div class=\"u-shape u-shape-svg u-text-palette-3-light-2 u-shape-3\" data-animation-name=\"customAnimationIn\" data-animation-duration=\"1500\" data-animation-delay=\"250\">\n                    <svg class=\"u-svg-link\" preserveAspectRatio=\"none\" viewBox=\"0 0 160 50\" style=\"\"><use xlink:href=\"#svg-c9fe\"><\/use><\/svg>\n                    <svg class=\"u-svg-content\" viewBox=\"0 0 160 50\" x=\"0px\" y=\"0px\" id=\"svg-c9fe\" style=\"enable-background:new 0 0 160 50;\"><path d=\"M133,26.7c-13.9,9.7-25.8,9.7-39.8,0c-9.1-6.3-16.8-6.3-25.9,0c-13.8,9.6-25.1,9.6-38.9,0c-9.2-6.4-15.4-6.4-24.6,0L0,22\n\tc11.2-7.8,20.6-8.1,32.2,0c11,7.6,19,8.5,31.3,0c11.6-8.1,22.4-7.7,33.5,0c11.4,8,20.3,8.3,32.2,0c11.6-8.1,19.2-8.1,30.8,0\n\tl-3.8,4.7C146.9,20.2,142.3,20.2,133,26.7z M133,10.8c-13.9,9.7-25.8,9.7-39.8,0c-9.1-6.3-16.8-6.3-25.9,0\n\tc-13.8,9.6-25.1,9.6-38.9,0c-9.2-6.4-15.4-6.4-24.6,0L0,6.1c11.2-7.8,20.6-8.1,32.2,0c11,7.6,19,8.5,31.3,0C75.1-2,85.9-1.6,97,6.1\n\tc11.4,8,20.3,8.3,32.2,0C140.8-2,148.4-2,160,6.1l-3.8,4.7C146.9,4.3,142.3,4.3,133,10.8z M32.2,38c11,7.6,19,8.5,31.3,0\n\tc11.6-8.1,22.4-7.7,33.5,0c11.4,8,20.3,8.3,32.2,0c11.6-8.1,19.2-8.1,30.8,0l-3.8,4.7c-9.3-6.5-13.9-6.5-23.3,0\n\tc-13.9,9.7-25.8,9.7-39.8,0c-9.1-6.3-16.8-6.3-25.9,0c-13.8,9.6-25.1,9.6-38.9,0c-9.2-6.4-15.4-6.4-24.6,0L0,38\n\tC11.2,30.2,20.6,29.9,32.2,38z\"><\/path><\/svg>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-section-4\" id=\"block-2\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\">\n        <div class=\"u-clearfix u-custom-html u-expanded-width u-custom-html-1\"><!-- Interactive Water Block \u2014 Lato (black text), mobile-friendly, click-to-call button --><!-- Paste entire block into ONE HTML widget. If Nicepage strips scripts, move <script> to Page Custom JS. -->\n          <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lato:wght@300;400;700&amp;display=swap\" rel=\"stylesheet\">\n          <style> :root{\n  --water-deep: #014f6b;\n  --water-mid:  #0aa0d8;\n  --water-sheen:#a8f0ff;\n  --accent: #38a83d;\n  --block-height-desktop: 420px;\n  --block-height-tablet: 360px;\n  --block-height-mobile: 280px;\n}\n\/* block wrapper *\/\n.water-block {\n  position: relative;\n  width: 100%;\n  height: var(--block-height-desktop);\n  min-height: 260px;\n  border-radius: 12px;\n  overflow: hidden;\n  box-shadow: 0 8px 30px rgba(10,20,30,0.08);\n  background: linear-gradient(180deg, rgba(2,62,84,0.02), rgba(0,20,30,0.06));\n  font-family: 'Lato', system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial;\n}\n\/* canvas behind content (non-blocking) *\/\n.water-canvas {\n  position: absolute;\n  inset: 0;\n  width: 100%;\n  height: 100%;\n  display: block;\n  pointer-events: none; \/* allow clicks through canvas *\/\n}\n\/* overlay content (visible, interacts) *\/\n.water-over {\n  position: relative;\n  z-index: 3;\n  pointer-events: auto;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  height: 100%;\n  padding: 22px;\n  text-align: center;\n}\n\/* the inner card uses a light translucent background so black text remains readable *\/\n.water-card {\n  background: rgba(255,255,255,0.95); \/* near-white for black Lato text *\/\n  border-radius: 10px;\n  padding: 16px 20px;\n  max-width: 820px;\n  width: calc(100% - 40px);\n  box-shadow: 0 6px 18px rgba(5,20,30,0.06);\n  border: 1px solid rgba(10,20,30,0.04);\n}\n\/* typography: Lato, not bold (400) *\/\n.water-card h2 {\n  margin: 0 0 6px;\n  font-size: 22px;\n  font-weight: 400; \/* non-bold *\/\n  color: #0b0b0b;   \/* black *\/\n  letter-spacing: 0.2px;\n  line-height: 1.15;\n}\n.water-card p {\n  margin: 0 0 12px;\n  color: #0b0b0b; \/* black *\/\n  font-size: 14.5px;\n  font-weight: 400;\n  opacity: 0.95;\n  line-height: 1.45;\n}\n\/* call button *\/\n.water-cta {\n  display:inline-block;\n  padding:12px 18px;\n  border-radius:9px;\n  background: var(--accent);\n  color: #fff;\n  font-weight:700;\n  text-decoration:none;\n  font-size:16px;\n  box-shadow: 0 6px 0 rgba(0,0,0,0.06);\n}\n\/* secondary button *\/\n.water-cta-secondary {\n  display:inline-block;\n  padding:10px 16px;\n  border-radius:9px;\n  background: transparent;\n  color:#0b0b0b;\n  font-weight:600;\n  border:1px solid rgba(10,20,30,0.06);\n  text-decoration:none;\n  margin-left:10px;\n  font-size:14px;\n}\n\/* responsive adjustments *\/\n@media (max-width: 1024px) {\n  .water-block { height: var(--block-height-tablet); }\n  .water-card h2 { font-size:20px; }\n  .water-card p { font-size:14px; }\n}\n@media (max-width: 720px) {\n  .water-block { height: var(--block-height-mobile); }\n  .water-card { padding:14px; }\n  .water-card h2 { font-size:18px; }\n  .water-card p { font-size:13px; }\n  .water-cta { display:block; width:100%; box-sizing:border-box; margin-bottom:8px; }\n  .water-cta-secondary { display:block; width:100%; margin-left:0; }\n  .water-card { width: calc(100% - 28px); }\n}\n\/* accessibility focus states *\/\n.water-cta:focus, .water-cta-secondary:focus {\n  outline: 3px solid rgba(10,120,80,0.18);\n  outline-offset: 3px;\n} <\/style><!-- block content -->\n          <div class=\"water-block\" id=\"waterBlock1\" aria-label=\"Interactive water background block\">\n            <canvas id=\"waterCanvas1\" class=\"water-canvas\" aria-hidden=\"true\"><\/canvas>\n            <div class=\"water-over\">\n              <div class=\"water-card\" role=\"region\" aria-label=\"Free water test call to action\">\n                <h2>Get a Free Water Test<\/h2>\n                <p>Book a free on-site test and see what\u2019s in your tap. We handle whole-home filtration, reverse osmosis, softeners and commercial systems.<\/p><!-- click-to-call button (works on mobile and supported desktops) -->\n                <a class=\"water-cta\" href=\"tel:+17869922773\" aria-label=\"Call Best Florida Water at 786 992 2773\">\ud83d\udcde Call Now (786) 992-2773<\/a><!-- secondary action -->\n                <a class=\"water-cta-secondary\" href=\"\/contact\" aria-label=\"Book free water test online\">Book Free Water Test Online<\/a>\n              <\/div>\n            <\/div>\n          <\/div>\n          <script> \/* Interactive water canvas script (self-contained)\n   If Nicepage strips inline <script>, paste this code into Page -> Custom JS (Footer).\n*\/\n(function () {\n  const wrapper = document.getElementById('waterBlock1');\n  const canvas = document.getElementById('waterCanvas1');\n  if (!wrapper || !canvas) return;\n  const ctx = canvas.getContext('2d', { alpha: true });\n  \/\/ config from CSS variables\n  const css = getComputedStyle(document.documentElement);\n  const cfg = {\n    deep: css.getPropertyValue('--water-deep').trim() || '#014f6b',\n    mid: css.getPropertyValue('--water-mid').trim() || '#0aa0d8',\n    sheen: css.getPropertyValue('--water-sheen').trim() || '#a8f0ff'\n  };\n  \/\/ DPR\n  let DPR = Math.max(1, window.devicePixelRatio || 1);\n  \/\/ size\/state\n  let W = 0, H = 0;\n  let ripples = [], particles = [], t = 0;\n  let last = performance.now();\n  function resize() {\n    DPR = Math.max(1, window.devicePixelRatio || 1);\n    const rect = wrapper.getBoundingClientRect();\n    W = Math.round(rect.width);\n    H = Math.round(rect.height);\n    canvas.width = Math.round(W * DPR);\n    canvas.height = Math.round(H * DPR);\n    canvas.style.width = W + 'px';\n    canvas.style.height = H + 'px';\n    ctx.setTransform(DPR, 0, 0, DPR, 0, 0);\n  }\n  function hexToRgba(hex, a=1) {\n    hex = hex.replace('#','').trim();\n    if (hex.length === 3) hex = hex.split('').map(ch=>ch+ch).join('');\n    const r = parseInt(hex.substr(0,2),16);\n    const g = parseInt(hex.substr(2,2),16);\n    const b = parseInt(hex.substr(4,2),16);\n    return `rgba(${r},${g},${b},${a})`;\n  }\n  class Ripple {\n    constructor(x, y, maxR=80) {\n      this.x = x; this.y = y;\n      this.r = 2; this.maxR = maxR * (0.6 + Math.random()*0.8);\n      this.life = 0.9 + Math.random()*0.6;\n      this.age = 0;\n    }\n    update(dt) {\n      this.age += dt;\n      this.r = 2 + (this.age \/ this.life) * this.maxR;\n      if (this.age > this.life) this.dead = true;\n    }\n    draw(ctx) {\n      const p = Math.min(1, this.age \/ this.life);\n      const alpha = (1 - p) * 0.45;\n      ctx.beginPath();\n      ctx.strokeStyle = `rgba(255,255,255,${alpha})`;\n      ctx.lineWidth = Math.max(1, (1 - p) * 4);\n      ctx.arc(this.x, this.y, this.r, 0, Math.PI*2);\n      ctx.stroke();\n    }\n  }\n  class Particle {\n    constructor() { this.reset(); }\n    reset() {\n      this.x = Math.random() * W;\n      this.y = Math.random() * H;\n      this.vx = (Math.random()-0.5) * 8;\n      this.vy = 20 + Math.random() * 50;\n      this.size = 0.6 + Math.random()*1.6;\n      this.life = 2 + Math.random()*3;\n      this.age = 0;\n      this.alpha = 0.08 + Math.random()*0.16;\n    }\n    update(dt) {\n      this.age += dt;\n      this.x += this.vx * dt;\n      this.y += this.vy * dt;\n      if (this.y > H + 20 || this.x < -40 || this.x > W + 40 || this.age > this.life) this.reset();\n    }\n    draw(ctx) {\n      ctx.beginPath();\n      ctx.moveTo(this.x, this.y);\n      ctx.lineTo(this.x - this.vx * 0.06, this.y - this.vy * 0.06);\n      ctx.lineWidth = this.size;\n      ctx.strokeStyle = `rgba(255,255,255,${this.alpha})`;\n      ctx.stroke();\n    }\n  }\n  function spawnRipple(clientX, clientY) {\n    const rect = wrapper.getBoundingClientRect();\n    const x = clientX - rect.left;\n    const y = clientY - rect.top;\n    ripples.push(new Ripple(x, y, Math.min(H, W) * 0.12));\n  }\n  function populateParticles(n = 80) {\n    particles = [];\n    for (let i=0;i<n;i++) particles.push(new Particle());\n  }\n  function drawBackground(ctx, time) {\n    const grad = ctx.createLinearGradient(0, 0, 0, H);\n    grad.addColorStop(0, hexToRgba(cfg.sheen, 0.12));\n    grad.addColorStop(0.35, hexToRgba(cfg.mid, 0.95));\n    grad.addColorStop(1, hexToRgba(cfg.deep, 0.98));\n    ctx.fillStyle = grad;\n    ctx.fillRect(0, 0, W, H);\n    const count = 5;\n    for (let i=0;i<count;i++){\n      ctx.beginPath();\n      const amp = 6 + i * 2;\n      const freq = 0.006 + i * 0.0018;\n      ctx.lineWidth = 1 - i*0.12;\n      for (let x = -20; x < W + 20; x += 8) {\n        const y = (H*0.3) + Math.sin((x * freq) + (time * (0.6 + i*0.25))) * amp + i*6;\n        if (x === -20) ctx.moveTo(x, y); else ctx.lineTo(x, y);\n      }\n      ctx.strokeStyle = `rgba(255,255,255,${0.02 + i*0.01})`;\n      ctx.stroke();\n    }\n    const s = ctx.createLinearGradient(0, 0, W, 0);\n    s.addColorStop(0, 'rgba(255,255,255,0.02)');\n    s.addColorStop(0.4, 'rgba(255,255,255,0.01)');\n    s.addColorStop(1, 'rgba(255,255,255,0.00)');\n    ctx.fillStyle = s;\n    ctx.fillRect(0, 0, W, H);\n  }\n  function loop(now) {\n    const dt = Math.min(0.04, (now - last)\/1000);\n    last = now;\n    t += dt;\n    ctx.clearRect(0, 0, W, H);\n    drawBackground(ctx, t);\n    for (let i=0;i<particles.length;i++){\n      particles[i].update(dt);\n      particles[i].draw(ctx);\n    }\n    for (let i=ripples.length-1;i>=0;i--){\n      const r = ripples[i];\n      r.update(dt);\n      r.draw(ctx);\n      if (r.dead) ripples.splice(i,1);\n    }\n    requestAnimationFrame(loop);\n  }\n  \/\/ pointer events: add to wrapper, ripple will spawn even when overlay content is clicked\n  let pointerTimer = 0;\n  function pointerMoveHandler(e) {\n    pointerTimer++;\n    if (pointerTimer % 6 === 0) spawnRipple(e.clientX, e.clientY);\n  }\n  wrapper.addEventListener('pointermove', pointerMoveHandler, {passive:true});\n  wrapper.addEventListener('pointerdown', (e) => {\n    spawnRipple(e.clientX, e.clientY);\n    \/\/ a small burst\n    for (let i=0;i<3;i++){\n      const rect = wrapper.getBoundingClientRect();\n      const jitterX = e.clientX + (Math.random()-0.5)*40;\n      const jitterY = e.clientY + (Math.random()-0.5)*30;\n      ripples.push(new Ripple(jitterX - rect.left, jitterY - rect.top, Math.min(H, W) * (0.06 + Math.random()*0.15)));\n    }\n  }, {passive:true});\n  \/\/ start \/ resize \/ observe\n  function start() {\n    resize();\n    populateParticles(Math.max(40, Math.round(W * 0.12)));\n    last = performance.now();\n    requestAnimationFrame(loop);\n  }\n  const ro = new ResizeObserver(() => {\n    resize();\n    populateParticles(Math.max(40, Math.round(W * 0.12)));\n  });\n  ro.observe(wrapper);\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start();\n})(); <\/script>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-align-center u-clearfix u-container-align-center u-container-align-center-lg u-container-align-center-md u-container-align-center-sm u-container-align-center-xl u-valign-middle-lg u-valign-middle-md u-valign-middle-sm u-section-5\" id=\"sec-a7d0\">\n      <h2 class=\"u-align-center u-text u-text-1\">Our Products<\/h2>\n      <p class=\"u-align-center u-text u-text-grey-70 u-text-2\" data-animation-name=\"\" data-animation-duration=\"0\" data-animation-delay=\"0\" data-animation-direction=\"\"> Certified water treatment solutions for homes and businesses. We design, install, and service systems that deliver clean, safe, great-tasting water \u2014 tailored to your needs.<\/p>\n      <div class=\"u-list u-list-1\">\n        <div class=\"u-repeater u-repeater-1\">\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-shape-rectangle u-white u-list-item-1\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-1\">\n              <img decoding=\"async\" alt=\"home carbon filter system\" class=\"custom-expanded u-align-center u-file-link u-image u-image-default u-image-1\" data-image-width=\"1080\" data-image-height=\"1080\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/gjgjfg.png\" data-target=\"_blank\">\n              <h4 class=\"u-align-center u-text u-text-3\">\n                <a class=\"u-active-none u-border-none u-btn u-button-link u-button-style u-hover-none u-none u-text-custom-color-2 u-btn-1\" href=\"https:\/\/thebestfloridawater.com\/home_carbon_filter_system\/\" title=\"Home_Carbon_Filter_System\" target=\"_blank\">Whole Home Carbon Filter - Advanced Backwashing Filtration System<\/a>\n              <\/h4>\n            <\/div>\n          <\/div>\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-shape-rectangle u-white u-list-item-2\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-2\">\n              <img decoding=\"async\" alt=\"the clack ws1 based water softner\" class=\"custom-expanded u-align-center u-file-link u-image u-image-default u-image-2\" data-image-width=\"1080\" data-image-height=\"1080\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/gggg.png\" data-target=\"_blank\">\n              <h4 class=\"u-align-center u-text u-text-custom-color-2 u-text-4\">\n                <a class=\"u-active-none u-border-none u-btn u-button-link u-button-style u-hover-none u-none u-text-custom-color-2 u-btn-2\" href=\"https:\/\/thebestfloridawater.com\/the_clack_ws1_water_softener-2\/\" title=\"The_Clack_WS1_Water_Softener\" target=\"_blank\"> The Clack\u00ae\u200b WS1-based water softener<\/a>\n              <\/h4>\n            <\/div>\n          <\/div>\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-shape-rectangle u-white u-list-item-3\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-3\">\n              <img decoding=\"async\" alt=\"reverse osmosis alkaline system\" class=\"custom-expanded u-align-center u-file-link u-image u-image-default u-image-3\" data-image-width=\"150\" data-image-height=\"150\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/InteriorDesignQuoteInstagramTemplatewithTwoImagesandWebsiteLink1.png\" data-target=\"_blank\">\n              <h4 class=\"u-align-center u-text u-text-custom-color-2 u-text-5\">\n                <a class=\"u-active-none u-border-none u-btn u-button-link u-button-style u-hover-none u-none u-text-custom-color-2 u-btn-3\" href=\"https:\/\/thebestfloridawater.com\/reverse-osmosis\/\" title=\"System 3\" target=\"_blank\"> REVERSE OSMOSIS ALKALINE SYSTEM<\/a>\n              <\/h4>\n            <\/div>\n          <\/div>\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-shape-rectangle u-white u-list-item-4\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-4\">\n              <img decoding=\"async\" alt=\"BFW LLC water filtration installation in Miami\" class=\"custom-expanded u-align-center u-file-link u-image u-image-default u-image-4\" data-image-width=\"150\" data-image-height=\"150\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/3262.png\" data-target=\"_blank\">\n              <h4 class=\"u-align-center u-text u-text-custom-color-2 u-text-6\">\n                <a class=\"u-active-none u-border-none u-btn u-button-link u-button-style u-hover-none u-none u-text-custom-color-2 u-btn-4\" href=\"https:\/\/thebestfloridawater.com\/iron-sulfur-system-2\/\" title=\"system 4\" target=\"_blank\">Iron, Sulfur &amp; Manganese Breaker System<\/a>\n              <\/h4>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <a href=\"\" class=\"u-btn u-button-style u-custom-color-2 u-btn-5\">Get a Quote <\/a>\n    <\/section>\n    <section class=\"u-clearfix u-section-6\" id=\"block-3\">\n      <div class=\"u-clearfix u-sheet u-sheet-1\"><\/div>\n    <\/section>\n    <section class=\"u-align-center u-clearfix u-container-align-center u-custom-color-1 u-section-7\" id=\"carousel_fd2b\">\n      <div class=\"u-clearfix u-sheet u-valign-middle-lg u-valign-middle-md u-valign-middle-sm u-valign-middle-xs u-sheet-1\">\n        <div class=\"u-clearfix u-custom-html u-expanded-width u-custom-html-1\">\n          <meta charset=\"utf-8\">\n          <meta name=\"viewport\" content=\"width=device-width,initial-scale=1\">\n          <title><\/title><!-- Lato font & icons -->\n          <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lato:wght@300;400;700&amp;display=swap\" rel=\"stylesheet\">\n          <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n          <style> :root{\n      --max-w:1100px;\n      --accent: #1a73e8;\n      --accent-2: #6c8ef5;\n      --card-radius:12px;\n      --muted: #6b7280;\n      --bg: #f0f6fb;\n      --text: #0b1220;\n      --cta: #0f9d58;\n    }\n    html,body{ height:100%; }\n    body{\n      font-family: 'Lato', system-ui, -apple-system, \"Segoe UI\", Roboto, Arial;\n      background:var(--bg);\n      color:var(--text);\n      margin:0;\n      padding:22px;\n      -webkit-font-smoothing:antialiased;\n      -moz-osx-font-smoothing:grayscale;\n    }\n    .gbw-wrapper{\n      max-width: var(--max-w);\n      margin: 0 auto;\n    }\n    .gbw-header{\n      background: linear-gradient(135deg,var(--accent),var(--accent-2));\n      color:white;\n      border-radius: var(--card-radius);\n      padding:22px;\n      text-align:center;\n      box-shadow: 0 8px 26px rgba(13, 38, 86, 0.08);\n      margin-bottom:18px;\n    }\n    .gbw-header h2{ margin:0 0 6px; font-weight:700; font-size:1.3rem; }\n    .gbw-header p{ margin:0; opacity:0.95; font-weight:400; font-size:0.97rem; }\n    .gbw-controls{\n      display:flex;\n      gap:10px;\n      margin:14px 0 20px;\n      align-items:center;\n      flex-wrap:wrap;\n      justify-content:space-between;\n    }\n    .gbw-controls-left{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }\n    .gbw-filter{\n      display:flex; gap:8px;\n    }\n    .gb-filter-btn{\n      background:white; border:1px solid #e6eefb; padding:8px 12px; border-radius:999px; cursor:pointer;\n      font-weight:700; color:var(--text);\n      box-shadow: 0 2px 8px rgba(10,20,40,0.03);\n    }\n    .gb-filter-btn.active{ background:var(--accent); color:white; border-color:var(--accent); }\n    .gbw-actions{ display:flex; gap:8px; align-items:center; }\n    .gbw-btn {\n      background:var(--cta); color:white; padding:9px 14px; border-radius:8px; text-decoration:none; font-weight:700;\n      display:inline-flex; gap:8px; align-items:center;\n    }\n    .gbw-btn.secondary{ background:transparent; color:var(--text); border:1px solid #e6eefb; font-weight:700; padding:8px 12px; border-radius:8px; }\n    .lang-toggle{ font-size:0.9rem; color:var(--muted); padding:6px 8px; border-radius:6px; cursor:pointer; border:1px solid transparent; background:transparent; }\n    .lang-toggle.active{ border-color:#e6eefb; background:white; }\n    .gbw-grid{\n      display:grid;\n      grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n      gap:18px;\n    }\n    .gbw-card{\n      background:white;\n      border-radius:12px;\n      padding:16px;\n      box-shadow: 0 6px 20px rgba(12,22,40,0.04);\n      transition: transform .18s ease, box-shadow .18s ease;\n      display:flex; flex-direction:column; gap:10px;\n    }\n    .gbw-card:hover{ transform: translateY(-6px); box-shadow: 0 18px 44px rgba(10,20,30,0.08); }\n    .gbw-head{\n      display:flex; align-items:center; gap:12px; justify-content:space-between;\n    }\n    .gbw-author{\n      display:flex; gap:12px; align-items:center;\n    }\n    .gbw-avatar{\n      width:52px; height:52px; border-radius:50%; background: linear-gradient(135deg,var(--accent),var(--accent-2));\n      color:white; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1rem;\n      flex:0 0 52px;\n    }\n    .gbw-meta h3{ margin:0; font-size:1rem; }\n    .gbw-meta p{ margin:2px 0 0; color:var(--muted); font-size:0.88rem; }\n    .gbw-date{ color:#8892a3; font-size:0.88rem; white-space:nowrap; margin-left:auto; flex-shrink:0; }\n    .gbw-rating{ color:#f4c150; font-size:0.95rem; }\n    .gbw-text{\n      font-size:0.95rem; color: #1b2430; line-height:1.45;\n    }\n    .gbw-response{\n      margin-top:6px;\n      background: #f7fbff;\n      border-left:4px solid var(--accent);\n      padding:10px; border-radius:8px; color:var(--text); font-size:0.92rem;\n    }\n    .gbw-open{\n      margin-top:auto;\n      display:flex; gap:8px; align-items:center; justify-content:flex-end;\n    }\n    .gbw-open a{ font-weight:700; text-decoration:none; color:var(--accent); border-radius:8px; padding:8px 12px; border:1px solid rgba(26,115,232,0.08); background:transparent; }\n    \/* Remove photo placeholders: keep CSS in case any remain *\/\n    .gbw-photos, .gbw-photo { display:none !important; height:0 !important; margin:0 !important; padding:0 !important; overflow:hidden !important; }\n    @media (max-width:720px){\n      .gbw-header h2{ font-size:1.05rem; }\n      .gbw-controls{ flex-direction:column; gap:10px; align-items:stretch; }\n      .gbw-actions{ justify-content:space-between; }\n      .gbw-meta p { font-size:0.82rem; }\n      .gbw-text { font-size:0.93rem; }\n    }\n    \/* accessibility focus *\/\n    .gb-filter-btn:focus, .gb-name-link:focus, .gb-text-link:focus, .gb-open-link:focus, .lang-toggle:focus{\n      outline: 3px solid rgba(26,115,232,0.16);\n      outline-offset: 3px;\n      border-radius: 6px;\n    } <\/style>\n          <div class=\"gbw-wrapper\" id=\"gbReviewsWidget\">\n            <div class=\"gbw-header\" role=\"banner\" aria-label=\"Google reviews header\">\n              <h2 id=\"gbTitle\">BFW LLC \u2014 What customers say<\/h2>\n              <p id=\"gbSubtitle\">Latest reviews from our Google Business Profile<\/p>\n            <\/div>\n            <div class=\"gbw-controls\" role=\"region\" aria-label=\"Reviews controls\">\n              <div class=\"gbw-controls-left\">\n                <div class=\"gbw-filter\" role=\"tablist\" aria-label=\"Filter reviews\">\n                  <button class=\"active gb-filter-btn\" data-filter=\"all\" id=\"filterAll\">All<\/button>\n                  <button class=\"gb-filter-btn\" data-filter=\"recent\" id=\"filterRecent\">Recent<\/button>\n                  <button class=\"gb-filter-btn\" data-filter=\"responses\" id=\"filterResponses\">With responses<\/button>\n                <\/div>\n              <\/div>\n              <div class=\"gbw-actions\" role=\"group\" aria-label=\"Actions\">\n                <button class=\"lang-toggle\" id=\"langAuto\" title=\"Toggle language\">EN\/ES<\/button>\n                <a href=\"https:\/\/share.google\/M19MDO2fzw2h6ZS1Z\" class=\"gbw-btn secondary\" id=\"openProfile\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Business Profile\">View all reviews<\/a>\n                <a href=\"https:\/\/share.google\/M19MDO2fzw2h6ZS1Z\" class=\"gbw-btn\" id=\"openProfileCta\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Open Google Business Profile (CTA)\">Open Google<\/a>\n              <\/div>\n            <\/div>\n            <div class=\"gbw-grid\" id=\"gbGrid\" role=\"list\" aria-label=\"Customer reviews list\"><!-- JS will render cards here --><\/div>\n          <\/div>\n          <script> (function () {\n    \/\/ --------- Data (provided review links & text) ----------\n    const reviews = [\n      {\n        name: 'Janet Vallee',\n        initials: 'JV',\n        meta: '10 reviews \u00b7 2 photos',\n        dateText: 'a week ago',\n        daysAgo: 7,\n        text: \"Last year Jorge installed my water purification system professionally and efficiently. I recently had an issue that we couldn't resolve over the phone so he drove a considerable distance to fix it. When I have questions he is only a phone call away and always willing to help.\",\n        ownerResponse: \"Dear Ms Vallee we are so glad to hear that you are happy \ud83d\ude03 and satisfied with your water purification system and our customer service! Your satisfaction means a lot to us! Thanks a lot for trusting BFW LLC for your water needs!\",\n        likes: 0,\n        photos: [],\n        url: 'https:\/\/share.google\/i9oQgSBwoaBS9dSoq'\n      },\n      {\n        name: 'Rene Rodriguez',\n        initials: 'RR',\n        meta: 'Local Guide \u00b7 68 reviews \u00b7 9 photos',\n        dateText: '4 months ago',\n        daysAgo: 120,\n        text: 'They saw, they came, they conquered. Quickly and efficiently, they basically refurbished my whole house water system. It is now \"zero miles\". Very competitive price.',\n        ownerResponse: 'Thanks a lot Mr Rodriguez! We love having customers like you! We appreciate your business and support! Welcome to BFW LLC family! \ud83e\udef6',\n        likes: 1,\n        photos: [],\n        url: 'https:\/\/share.google\/kDltK62JeKC9Qag5A'\n      },\n      {\n        name: 'Raul Ramirez',\n        initials: 'RR',\n        meta: '5 reviews \u00b7 1 photo',\n        dateText: 'a month ago',\n        daysAgo: 30,\n        text: 'I had a great experience with BFW LLC. Jorge was prompt, well-mannered, and completed the installation in a timely and professional manner. Before deciding, I did a lot of research, and Jorge took the time to answer all my questions and explain the benefits of their system.',\n        ownerResponse: 'Thanks a lot Mr Ramirez ! We truly appreciate your kind words and the trust you place in our company ! It is a pleasure to serve you!',\n        likes: 0,\n        photos: [],\n        url: 'https:\/\/share.google\/xBSs9IZiFFZOfRY5g'\n      },\n      {\n        name: 'Pilar Rodriguez',\n        initials: 'PR',\n        meta: '12 reviews',\n        dateText: '2 months ago',\n        daysAgo: 60,\n        text: 'BFW is an excellent company. Jorge is a true professional and very knowledgeable about water filtration and water softening. He is extremely helpful in identifying what are the best options for you and your family. Always eager to go the extra mile to ensure customer satisfaction.',\n        ownerResponse: 'Thanks a lot Ms Rodriguez we truly appreciate your support! We so happy to have you as our customer!',\n        likes: 1,\n        photos: [],\n        url: 'https:\/\/share.google\/6So0C8j7Pfeynp6fK'\n      },\n      {\n        name: 'Yanet Escobar',\n        initials: 'YE',\n        meta: '6 reviews \u00b7 2 photos',\n        dateText: '7 months ago',\n        daysAgo: 210,\n        text: 'I just want to Thanks BFW for their professional job ! Jorge he is a very talented person! Very knowledgeable about the business! We really recommend this company to our community! Ty so much',\n        ownerResponse: 'Thanks a lot Mrs Escobar we are happy to hear front you guys! We take customers service to another level! We appreciate your business and support!',\n        likes: 3,\n        photos: [],\n        url: 'https:\/\/share.google\/GRHHgA05tJJtdNKkx'\n      }\n    ];\n    \/\/ --------- End data -----------------------------------\n    \/\/ i18n strings\n    const i18n = {\n      en: {\n        all: 'All',\n        recent: 'Recent',\n        responses: 'With responses',\n        viewAll: 'View all reviews',\n        openGoogle: 'Open Google',\n        openReview: 'Open review on Google'\n      },\n      es: {\n        all: 'Todas',\n        recent: 'Recientes',\n        responses: 'Con respuestas',\n        viewAll: 'Ver todas las rese\u00f1as',\n        openGoogle: 'Abrir en Google',\n        openReview: 'Abrir rese\u00f1a en Google'\n      }\n    };\n    \/\/ detect language\n    const userLang = (navigator.language || navigator.userLanguage || 'en').toLowerCase();\n    let locale = userLang.startsWith('es') ? 'es' : 'en';\n    \/\/ elements\n    const grid = document.getElementById('gbGrid');\n    const filterBtns = document.querySelectorAll('.gb-filter-btn');\n    const btnAll = document.getElementById('filterAll');\n    const btnRecent = document.getElementById('filterRecent');\n    const btnResponses = document.getElementById('filterResponses');\n    const langAuto = document.getElementById('langAuto');\n    const openProfile = document.getElementById('openProfile');\n    const openProfileCta = document.getElementById('openProfileCta');\n    const gbTitle = document.getElementById('gbTitle');\n    const gbSubtitle = document.getElementById('gbSubtitle');\n    \/\/ safe escape helpers\n    function escapeHtml(str){\n      if(!str && str !== 0) return '';\n      return String(str).replace(\/[&<>\"']\/g, function(m){\n        return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[m];\n      });\n    }\n    function escapeAttr(str){\n      return escapeHtml(str).replace(\/\"\/g, '&quot;');\n    }\n    \/\/ render cards (without photos)\n    function renderCards(list) {\n      grid.innerHTML = '';\n      list.forEach((r, idx) => {\n        const card = document.createElement('article');\n        card.className = 'gbw-card';\n        card.setAttribute('role','listitem');\n        card.setAttribute('data-days', String(r.daysAgo));\n        card.setAttribute('data-response', String(Boolean(r.ownerResponse)));\n        card.setAttribute('data-url', r.url);\n        card.innerHTML = `\n          <div class=\"gbw-head\">\n            <div class=\"gbw-author\">\n              <div class=\"gbw-avatar\" aria-hidden=\"true\">${escapeHtml(r.initials)}<\/div>\n              <div class=\"gbw-meta\">\n                <h3><a class=\"gb-name-link\" href=\"#\" data-idx=\"${idx}\" aria-label=\"${escapeAttr(r.name + ' - ' + i18n[locale].openReview)}\">${escapeHtml(r.name)}<\/a><\/h3>\n                <p>${escapeHtml(r.meta)}<\/p>\n              <\/div>\n            <\/div>\n            <div class=\"gbw-date\">${escapeHtml(r.dateText)}<\/div>\n          <\/div>\n          <div class=\"gbw-rating\" aria-hidden=\"true\">\n            <span aria-hidden=\"true\">\u2605\u2605\u2605\u2605\u2605<\/span>\n          <\/div>\n          <div class=\"gbw-text\">\n            <a href=\"#\" class=\"gb-text-link\" data-idx=\"${idx}\" aria-label=\"${escapeAttr(i18n[locale].openReview)}\">${escapeHtml(r.text)}<\/a>\n          <\/div>\n          ${ r.ownerResponse ? `<div class=\"gbw-response\"><strong>${escapeHtml('Response from BFW LLC - Owner')}<\/strong><div>${escapeHtml(r.ownerResponse)}<\/div><\/div>` : '' }\n          <div class=\"gbw-open\">\n            <a class=\"gb-open-link\" href=\"#\" data-idx=\"${idx}\" aria-label=\"${escapeAttr(i18n[locale].openReview)}\">${i18n[locale].openGoogle}<\/a>\n          <\/div>\n        `;\n        grid.appendChild(card);\n      });\n      \/\/ wire up clickable elements to open the google share link\n      document.querySelectorAll('.gb-name-link, .gb-text-link, .gb-open-link').forEach(el => {\n        el.addEventListener('click', function (ev) {\n          ev.preventDefault();\n          const idx = parseInt(this.getAttribute('data-idx'), 10);\n          const url = reviews[idx] && reviews[idx].url ? reviews[idx].url : null;\n          if (url) window.open(url, '_blank', 'noopener,noreferrer');\n        });\n        el.addEventListener('keydown', function(e){\n          if(e.key === 'Enter' || e.key === ' ') {\n            e.preventDefault();\n            this.click();\n          }\n        });\n      });\n    }\n    \/\/ initial render\n    renderCards(reviews);\n    \/\/ filter logic\n    function applyFilter(filter){\n      const cards = grid.querySelectorAll('.gbw-card');\n      cards.forEach(card => {\n        const days = parseInt(card.getAttribute('data-days') || '9999', 10);\n        const hasResponse = card.getAttribute('data-response') === 'true';\n        let show = true;\n        switch(filter){\n          case 'all': show = true; break;\n          case 'recent': show = days <= 30; break;\n          case 'responses': show = hasResponse; break;\n        }\n        card.style.display = show ? 'flex' : 'none';\n      });\n    }\n    \/\/ wire up buttons\n    filterBtns.forEach(btn => {\n      btn.addEventListener('click', function () {\n        filterBtns.forEach(b => b.classList.remove('active'));\n        this.classList.add('active');\n        applyFilter(this.getAttribute('data-filter'));\n      });\n    });\n    \/\/ locale toggle: cycles between en \/ es\n    langAuto.addEventListener('click', function () {\n      locale = (locale === 'en') ? 'es' : 'en';\n      updateLocale();\n    });\n    function updateLocale(){\n      \/\/ update UI labels\n      btnAll.textContent = i18n[locale].all;\n      btnRecent.textContent = i18n[locale].recent;\n      btnResponses.textContent = i18n[locale].responses;\n      openProfile.textContent = i18n[locale].viewAll;\n      openProfileCta.textContent = i18n[locale].openGoogle;\n      gbTitle.textContent = locale === 'es' ? 'BFW LLC \u2014 Qu\u00e9 dicen los clientes' : 'BFW LLC \u2014 What customers say';\n      gbSubtitle.textContent = locale === 'es' ? '\u00daltimas rese\u00f1as de nuestro perfil de Google' : 'Latest reviews from our Google Business Profile';\n      \/\/ re-render cards so aria-labels and link text match locale\n      renderCards(reviews);\n    }\n    \/\/ initial locale update based on browser\n    updateLocale();\n    \/\/ keyboard accessibility: ensure filters are focusable\n    filterBtns.forEach(b => b.setAttribute('tabindex','0'));\n  })(); <\/script>\n        <\/div>\n      <\/div>\n    <\/section>\n    <section class=\"u-clearfix u-custom-color-1 u-valign-middle-md u-valign-top-xl u-section-8\" id=\"sec-07b3\">\n      <img decoding=\"async\" class=\"u-expanded-width u-image u-image-1\" src=\"https:\/\/thebestfloridawater.com\/wp-content\/uploads\/2026\/08\/LRylog.jpeg\" data-image-width=\"150\" data-image-height=\"75\">\n      <div class=\"u-list u-list-1\">\n        <div class=\"u-repeater u-repeater-1\">\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-white u-list-item-1\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-1\"><span class=\"u-icon u-icon-circle u-text-palette-4-dark-1 u-icon-1\"><svg class=\"u-svg-link\" preserveAspectRatio=\"xMidYMin slice\" viewBox=\"0 0 52 52\" style=\"\"><use xlink:href=\"#svg-077e\"><\/use><\/svg><svg class=\"u-svg-content\" viewBox=\"0 0 52 52\" x=\"0px\" y=\"0px\" id=\"svg-077e\" style=\"enable-background:new 0 0 52 52;\"><path style=\"fill:currentColor;\" d=\"M38.853,5.324L38.853,5.324c-7.098-7.098-18.607-7.098-25.706,0h0\n\tC6.751,11.72,6.031,23.763,11.459,31L26,52l14.541-21C45.969,23.763,45.249,11.72,38.853,5.324z M26.177,24c-3.314,0-6-2.686-6-6\n\ts2.686-6,6-6s6,2.686,6,6S29.491,24,26.177,24z\"><\/path><\/svg><\/span>\n              <h5 class=\"u-text u-text-1\">Servicing<\/h5>\n              <p class=\"u-text u-text-2\">Miami - Fort Lauderdale <\/p>\n            <\/div>\n          <\/div>\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-white u-list-item-2\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-2\"><span class=\"u-icon u-icon-circle u-text-palette-4-dark-1 u-icon-2\"><svg class=\"u-svg-link\" preserveAspectRatio=\"xMidYMin slice\" viewBox=\"0 0 513.64 513.64\" style=\"\"><use xlink:href=\"#svg-9786\"><\/use><\/svg><svg class=\"u-svg-content\" viewBox=\"0 0 513.64 513.64\" x=\"0px\" y=\"0px\" id=\"svg-9786\" style=\"enable-background:new 0 0 513.64 513.64;\"><g><g><path d=\"M499.66,376.96l-71.68-71.68c-25.6-25.6-69.12-15.359-79.36,17.92c-7.68,23.041-33.28,35.841-56.32,30.72    c-51.2-12.8-120.32-79.36-133.12-133.12c-7.68-23.041,7.68-48.641,30.72-56.32c33.28-10.24,43.52-53.76,17.92-79.36l-71.68-71.68    c-20.48-17.92-51.2-17.92-69.12,0l-48.64,48.64c-48.64,51.2,5.12,186.88,125.44,307.2c120.32,120.32,256,176.641,307.2,125.44    l48.64-48.64C517.581,425.6,517.581,394.88,499.66,376.96z\"><\/path>\n<\/g>\n<\/g><\/svg><\/span>\n              <h5 class=\"u-text u-text-3\">phone number<\/h5>\n              <p class=\"u-text u-text-4\"> +1 (786) 992-2773<\/p>\n            <\/div>\n          <\/div>\n          <div class=\"u-align-center u-container-align-center u-container-style u-list-item u-repeater-item u-white u-list-item-3\">\n            <div class=\"u-container-layout u-similar-container u-valign-top u-container-layout-3\"><span class=\"u-icon u-icon-circle u-text-palette-4-dark-1 u-icon-3\"><svg class=\"u-svg-link\" preserveAspectRatio=\"xMidYMin slice\" viewBox=\"0 0 512 512\" style=\"\"><use xlink:href=\"#svg-9f82\"><\/use><\/svg><svg class=\"u-svg-content\" viewBox=\"0 0 512 512\" x=\"0px\" y=\"0px\" id=\"svg-9f82\" style=\"enable-background:new 0 0 512 512;\"><g><g><path d=\"M507.49,101.721L352.211,256L507.49,410.279c2.807-5.867,4.51-12.353,4.51-19.279V121    C512,114.073,510.297,107.588,507.49,101.721z\"><\/path>\n<\/g>\n<\/g><g><g><path d=\"M467,76H45c-6.927,0-13.412,1.703-19.279,4.51l198.463,197.463c17.548,17.548,46.084,17.548,63.632,0L486.279,80.51    C480.412,77.703,473.927,76,467,76z\"><\/path>\n<\/g>\n<\/g><g><g><path d=\"M4.51,101.721C1.703,107.588,0,114.073,0,121v270c0,6.927,1.703,13.413,4.51,19.279L159.789,256L4.51,101.721z\"><\/path>\n<\/g>\n<\/g><g><g><path d=\"M331,277.211l-21.973,21.973c-29.239,29.239-76.816,29.239-106.055,0L181,277.211L25.721,431.49    C31.588,434.297,38.073,436,45,436h422c6.927,0,13.412-1.703,19.279-4.51L331,277.211z\"><\/path>\n<\/g>\n<\/g><\/svg><\/span>\n              <h5 class=\"u-text u-text-5\">Email<\/h5>\n              <p class=\"u-text u-text-6\">\n                <a class=\"u-active-none u-border-none u-btn u-button-link u-button-style u-hover-none u-none u-text-body-color u-btn-1\" href=\"mailto:bestfwater3@gmail.com\"> bestfwater3@gmail.com<\/a>\n              <\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"data-layout-selected u-clearfix u-layout-wrap u-layout-wrap-1\">\n        <div class=\"u-layout\">\n          <div class=\"u-layout-row\">\n            <div class=\"u-align-left u-black u-container-align-left u-container-style u-layout-cell u-left-cell u-size-30 u-layout-cell-1\">\n              <div class=\"u-container-layout u-valign-top-lg u-valign-top-md u-valign-top-sm u-valign-top-xs u-container-layout-4\">\n                <h3 class=\"u-text u-text-body-alt-color u-text-default u-text-7\">Contact info<\/h3>\n                <div class=\"u-expanded-width-sm u-expanded-width-xs u-form u-form-1\">\n                  <form action=\"https:\/\/service.nicepagesrv.com\/form\/v4\/form-process\" class=\"u-clearfix u-form-spacing-30 u-form-vertical u-inner-form\" style=\"padding: 0px;\" source=\"email\" name=\"form\">\n                    <div class=\"u-form-email u-form-group u-form-partition-factor-2\">\n                      <label class=\"u-label u-text-body-alt-color u-label-1\">Email<\/label>\n                      <input type=\"email\" placeholder=\"Enter a valid email address\" id=\"email-319a\" name=\"email\" class=\"u-border-2 u-border-no-left u-border-no-right u-border-no-top u-border-white u-input u-input-rectangle\" required=\"\">\n                    <\/div>\n                    <div class=\"u-form-group u-form-name u-form-partition-factor-2\">\n                      <label class=\"u-label u-text-body-alt-color u-label-2\">Name<\/label>\n                      <input type=\"text\" placeholder=\"Enter your Name\" id=\"name-319a\" name=\"name\" class=\"u-border-2 u-border-no-left u-border-no-right u-border-no-top u-border-white u-input u-input-rectangle\" required=\"\">\n                    <\/div>\n                    <div class=\"u-form-group u-form-message\">\n                      <label class=\"u-label u-text-body-alt-color u-label-3\">Message<\/label>\n                      <textarea placeholder=\"Enter your message\" id=\"message-319a\" name=\"message\" class=\"u-border-2 u-border-no-left u-border-no-right u-border-no-top u-border-white u-input u-input-rectangle\" required=\"\"><\/textarea>\n                    <\/div>\n                    <div class=\"u-align-left u-form-group u-form-submit\">\n                      <a href=\"#\" class=\"u-btn u-btn-submit u-button-style u-white u-btn-2\">Submit<\/a>\n                      <input type=\"submit\" value=\"submit\" class=\"u-form-control-hidden\">\n                    <\/div>\n                    <div class=\"u-form-send-message u-form-send-success\">Thank you! Your message has been sent.<\/div>\n                    <div class=\"u-form-send-error u-form-send-message\">Unable to send your message. Please fix errors then try again.<\/div>\n                    <input type=\"hidden\" value=\"\" name=\"recaptchaResponse\">\n                    <input type=\"hidden\" name=\"formServices\" value=\"bf78e041-3891-07ba-67e0-53510b6eca5b\">\n                    <input type=\"hidden\" name=\"siteKey\" value=\"6Lfg2i4sAAAAAL8DvNUjypvkqrxm7zpYAyNAjyrx\">\n                  <\/form>\n                <\/div>\n              <\/div>\n            <\/div>\n            <div class=\"u-black u-container-style u-layout-cell u-right-cell u-size-30 u-layout-cell-2\">\n              <div class=\"u-container-layout u-container-layout-5\">\n                <div class=\"u-expanded u-grey-light-2 u-map\">\n                  <div class=\"embed-responsive\">\n                    <iframe class=\"embed-responsive-item\" src=\"https:\/\/maps.google.com\/maps?output=embed&amp;key=Miami&amp;q=Miami%2C%20fl&amp;z=10&amp;t=m\" data-map=\"JTdCJTIycG9zaXRpb25UeXBlJTIyJTNBJTIybWFwLWFkZHJlc3MlMjIlMkMlMjJhZGRyZXNzJTIyJTNBJTIyTWlhbWklMkMlMjBmbCUyMiUyQyUyMnpvb20lMjIlM0ExMCUyQyUyMnR5cGVJZCUyMiUzQSUyMnJvYWQlMjIlMkMlMjJsYW5nJTIyJTNBbnVsbCUyQyUyMmFwaUtleSUyMiUzQSUyMk1pYW1pJTIyJTJDJTIybWFya2VycyUyMiUzQSU1QiU3QiUyMnBvc2l0aW9uJTIyJTNBJTdCJTIybGF0JTIyJTNBNDAuNjg5NzY2Mjg2OTQ1NSUyQyUyMmxuZyUyMiUzQS03NC4wNDUyOTgwOTk1MTc4MiU3RCUyQyUyMnRpdGxlJTIyJTNBJTIyJTIyJTJDJTIyZGVzY3JpcHRpb24lMjIlM0ElMjIlMjIlMkMlMjJsaW5rVXJsJTIyJTNBJTIyJTIyJTJDJTIybGlua0NhcHRpb24lMjIlM0ElMjIlMjIlN0QlNUQlMkMlMjJlbWJlZCUyMiUzQSUyMiUyMiU3RA==\"><\/iframe>\n                  <\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/section>\n    \n    \n    \n    \n  \n","protected":false},"excerpt":{"rendered":"<p>Your browser does not support HTML5 video. Commercial &amp; Residential Water Treatment \u00b7 Sales \u2022 Install \u2022 Service Water Filtration &amp; Purification in Miami Get a Free Water Test Whole-Home Carbon Filtration Remove chlorine, odors and bad taste from every tap. Reliable Clack\u00ae backwashing options. Residential Water Treatment On-site test, custom system design and professional &hellip; <a href=\"https:\/\/thebestfloridawater.com\/es\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Home&#8221;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-524","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home - thebestfloridawater.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thebestfloridawater.com\/es\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home - thebestfloridawater.com\" \/>\n<meta property=\"og:description\" content=\"Your browser does not support HTML5 video. Commercial &amp; Residential Water Treatment \u00b7 Sales \u2022 Install \u2022 Service Water Filtration &amp; Purification in Miami Get a Free Water Test Whole-Home Carbon Filtration Remove chlorine, odors and bad taste from every tap. Reliable Clack\u00ae backwashing options. Residential Water Treatment On-site test, custom system design and professional &hellip; Continue reading &quot;Home&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thebestfloridawater.com\/es\/\" \/>\n<meta property=\"og:site_name\" content=\"thebestfloridawater.com\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-01T18:58:53+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/thebestfloridawater.com\\\/\",\"url\":\"https:\\\/\\\/thebestfloridawater.com\\\/\",\"name\":\"Home - thebestfloridawater.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/thebestfloridawater.com\\\/#website\"},\"datePublished\":\"2026-08-01T18:58:51+00:00\",\"dateModified\":\"2026-08-01T18:58:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/thebestfloridawater.com\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/thebestfloridawater.com\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/thebestfloridawater.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/thebestfloridawater.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/thebestfloridawater.com\\\/#website\",\"url\":\"https:\\\/\\\/thebestfloridawater.com\\\/\",\"name\":\"thebestfloridawater.com\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/thebestfloridawater.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home - thebestfloridawater.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thebestfloridawater.com\/es\/","og_locale":"es_ES","og_type":"article","og_title":"Home - thebestfloridawater.com","og_description":"Your browser does not support HTML5 video. Commercial &amp; Residential Water Treatment \u00b7 Sales \u2022 Install \u2022 Service Water Filtration &amp; Purification in Miami Get a Free Water Test Whole-Home Carbon Filtration Remove chlorine, odors and bad taste from every tap. Reliable Clack\u00ae backwashing options. Residential Water Treatment On-site test, custom system design and professional &hellip; Continue reading \"Home\"","og_url":"https:\/\/thebestfloridawater.com\/es\/","og_site_name":"thebestfloridawater.com","article_modified_time":"2026-08-01T18:58:53+00:00","twitter_card":"summary_large_image","twitter_misc":{"Tiempo de lectura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/thebestfloridawater.com\/","url":"https:\/\/thebestfloridawater.com\/","name":"Home - thebestfloridawater.com","isPartOf":{"@id":"https:\/\/thebestfloridawater.com\/#website"},"datePublished":"2026-08-01T18:58:51+00:00","dateModified":"2026-08-01T18:58:53+00:00","breadcrumb":{"@id":"https:\/\/thebestfloridawater.com\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thebestfloridawater.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/thebestfloridawater.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/thebestfloridawater.com\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/thebestfloridawater.com\/#website","url":"https:\/\/thebestfloridawater.com\/","name":"thebestfloridawater.com","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/thebestfloridawater.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"}]}},"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/pages\/524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/comments?post=524"}],"version-history":[{"count":1,"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/pages\/524\/revisions"}],"predecessor-version":[{"id":538,"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/pages\/524\/revisions\/538"}],"wp:attachment":[{"href":"https:\/\/thebestfloridawater.com\/es\/wp-json\/wp\/v2\/media?parent=524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}