{"id":2874,"date":"2025-01-07T12:11:26","date_gmt":"2025-01-07T15:11:26","guid":{"rendered":"https:\/\/softcare.com.br\/?page_id=2874"},"modified":"2026-07-30T22:21:05","modified_gmt":"2026-07-31T01:21:05","slug":"distribuidores","status":"publish","type":"page","link":"https:\/\/softcare.com.br\/en\/onde-comprar\/distribuidores\/","title":{"rendered":"Distribuidores Nacionais e Internacionais"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2874\" class=\"elementor elementor-2874\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a7fa4c7 e-flex e-con-boxed e-con e-parent\" data-id=\"a7fa4c7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-0f57d09 elementor-widget elementor-widget-spacer\" data-id=\"0f57d09\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3f7c15a elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"3f7c15a\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Distribuidores Nacionais e Internacionais<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-05f6335 e-con-full e-flex e-con e-child\" data-id=\"05f6335\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2999fd7 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"2999fd7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/softcare.com.br\/onde-comprar\/distribuidores\/#nacional\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Nacionais <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30a4cce elementor-align-center elementor-widget elementor-widget-button\" data-id=\"30a4cce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm elementor-animation-grow\" href=\"https:\/\/softcare.com.br\/onde-comprar\/distribuidores\/#internacional\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Internacionais<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-adff9bb e-flex e-con-boxed e-con e-parent\" data-id=\"adff9bb\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-a5fc055 e-con-full e-flex e-con e-child\" data-id=\"a5fc055\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-05f0c63 elementor-widget elementor-widget-menu-anchor\" data-id=\"05f0c63\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"nacional\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-16c8e29 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"16c8e29\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Distribuidores Nacionais <\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-84d3c1d elementor-widget__width-initial elementor-widget elementor-widget-html\" data-id=\"84d3c1d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-BR\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Distribuidores Nacionais \u2013 Soft Care<\/title>\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@600;700&display=swap\" rel=\"stylesheet\">\r\n  <style>\r\n    * { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\n    body {\r\n      font-family: sans-serif;\r\n      background: #f0f4f8;\r\n      color: #333;\r\n    }\r\n\r\n    \/* \u2500\u2500 MAPA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    .map-wrapper {\r\n      position: relative;\r\n      max-width: 580px;\r\n      margin: 0 auto 4px;\r\n    }\r\n\r\n    #brazil-map {\r\n      width: 100%;\r\n      display: block;\r\n      background: transparent;\r\n    }\r\n\r\n    .state-path {\r\n      stroke: #fff;\r\n      stroke-width: 0.7;\r\n      cursor: pointer;\r\n      transition: filter 0.12s, stroke-width 0.12s;\r\n    }\r\n    .state-path:hover  { filter: brightness(1.25); }\r\n    .state-path.active { filter: brightness(1.18); stroke-width: 1.8; }\r\n    .state-path.dimmed { filter: brightness(0.55) saturate(0.25); }\r\n\r\n    .state-label {\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 7.5px;\r\n      font-weight: 700;\r\n      fill: #fff;\r\n      text-anchor: middle;\r\n      dominant-baseline: central;\r\n      pointer-events: none;\r\n      paint-order: stroke fill;\r\n      stroke: rgba(0,0,0,0.35);\r\n      stroke-width: 2.2px;\r\n    }\r\n\r\n    \/* \u2500\u2500 TOOLTIP \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    #state-tooltip {\r\n      position: fixed;\r\n      background: rgba(25,25,25,0.82);\r\n      color: #fff;\r\n      padding: 5px 12px;\r\n      border-radius: 7px;\r\n      font-size: 12px;\r\n      font-family: 'Poppins', sans-serif;\r\n      font-weight: 600;\r\n      pointer-events: none;\r\n      display: none;\r\n      z-index: 300;\r\n      white-space: nowrap;\r\n      letter-spacing: 0.3px;\r\n      box-shadow: 0 2px 8px rgba(0,0,0,0.25);\r\n    }\r\n\r\n    \/* \u2500\u2500 LEGENDA DE REGI\u00d5ES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    .legend {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 10px;\r\n      justify-content: center;\r\n      max-width: 100%;\r\n      margin: 8px auto 6px;\r\n      padding: 0;\r\n    }\r\n    .legend-item {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 7px;\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 13px;\r\n      font-weight: 600;\r\n      cursor: pointer;\r\n      padding: 6px 14px;\r\n      border-radius: 20px;\r\n      background: white;\r\n      box-shadow: 0 1px 5px rgba(0,0,0,0.1);\r\n      transition: box-shadow 0.2s, transform 0.15s, border-color 0.15s;\r\n      letter-spacing: 0.4px;\r\n      border: 2px solid transparent;\r\n      user-select: none;\r\n    }\r\n    .legend-item:hover { box-shadow: 0 3px 10px rgba(0,0,0,0.18); transform: translateY(-1px); }\r\n    .legend-item.active { border-color: var(--region-color); background: #f6fff2; }\r\n    .legend-dot { width: 13px; height: 13px; border-radius: 50%; flex-shrink: 0; }\r\n\r\n    .hint-text {\r\n      text-align: center;\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 12px;\r\n      color: #aaa;\r\n      margin-bottom: 22px;\r\n      letter-spacing: 0.2px;\r\n    }\r\n\r\n    \/* \u2500\u2500 SECTION DE DISTRIBUIDORES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    #distributor-section {\r\n      max-width: 100%;\r\n      margin: 0 auto 70px;\r\n      padding: 0;\r\n      display: none;\r\n    }\r\n\r\n    #section-title {\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 1.25rem;\r\n      font-weight: 700;\r\n      color: #47A02C;\r\n      border-left: 5px solid #47A02C;\r\n      padding-left: 14px;\r\n      margin-bottom: 18px;\r\n      letter-spacing: 0.4px;\r\n      transition: color 0.3s, border-color 0.3s;\r\n    }\r\n\r\n    \/* \u2500\u2500 CARDS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    .cards-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, 1fr);\r\n      gap: 14px;\r\n    }\r\n\r\n    .dist-card {\r\n      border-radius: 14px;\r\n      box-shadow: 0 2px 12px rgba(0,0,0,0.08);\r\n      overflow: hidden;\r\n      background: white;\r\n      transition: box-shadow 0.2s, transform 0.15s;\r\n    }\r\n    .dist-card:hover {\r\n      box-shadow: 0 4px 18px rgba(0,0,0,0.14);\r\n      transform: translateY(-2px);\r\n    }\r\n\r\n    .dist-header {\r\n      background: #47A02C;\r\n      color: white;\r\n      padding: 12px 16px;\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 13px;\r\n      font-weight: 700;\r\n      letter-spacing: 0.5px;\r\n    }\r\n\r\n    .dist-body { padding: 11px 16px 14px; }\r\n\r\n    .dist-coverage {\r\n      display: inline-block;\r\n      font-size: 11px;\r\n      color: #666;\r\n      background: #f0f0f0;\r\n      padding: 3px 10px;\r\n      border-radius: 10px;\r\n      margin-bottom: 10px;\r\n      line-height: 1.4;\r\n    }\r\n\r\n    .dist-contact { display: flex; flex-direction: column; gap: 7px; }\r\n\r\n    .contact-row {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 8px;\r\n      font-size: 12px;\r\n      color: #555;\r\n    }\r\n    .contact-row a { color: inherit; text-decoration: none; }\r\n    .contact-row a:hover { text-decoration: underline; }\r\n    .contact-icon { width: 15px; height: 15px; flex-shrink: 0; opacity: 0.75; }\r\n    .row-wa { color: #1aab55; }\r\n\r\n    \/* \u2500\u2500 STATE GROUP (vis\u00e3o de regi\u00e3o) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    .state-group { margin-bottom: 28px; }\r\n    .state-group-header {\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 12px;\r\n      font-weight: 700;\r\n      color: #777;\r\n      text-transform: uppercase;\r\n      letter-spacing: 1.2px;\r\n      margin-bottom: 10px;\r\n      padding-bottom: 6px;\r\n      border-bottom: 1px solid #e0e0e0;\r\n    }\r\n\r\n    .empty-msg {\r\n      background: white;\r\n      border-radius: 10px;\r\n      padding: 48px 20px;\r\n      text-align: center;\r\n      color: #aaa;\r\n      font-size: 15px;\r\n      box-shadow: 0 2px 14px rgba(0,0,0,0.08);\r\n    }\r\n\r\n    @keyframes fadeSlide {\r\n      from { opacity: 0; transform: translateY(12px); }\r\n      to   { opacity: 1; transform: translateY(0); }\r\n    }\r\n    .fade-in { animation: fadeSlide 0.3s ease; }\r\n\r\n    @media (max-width: 680px) {\r\n      .cards-grid { grid-template-columns: 1fr; }\r\n      #section-title { font-size: 1.05rem; }\r\n    }\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n\r\n<!-- Tooltip flutuante -->\r\n<div id=\"state-tooltip\"><\/div>\r\n\r\n<div class=\"map-wrapper\">\r\n  <svg id=\"brazil-map\" viewBox=\"0 0 620 700\">\r\n    <text id=\"loading-svg\" x=\"310\" y=\"350\" text-anchor=\"middle\" fill=\"#888\" font-size=\"14\" font-family=\"Arial\">Carregando mapa\u2026<\/text>\r\n  <\/svg>\r\n<\/div>\r\n\r\n<!-- Legenda de regi\u00f5es -->\r\n<div class=\"legend\" id=\"legend\">\r\n  <div class=\"legend-item\" data-region=\"norte\" style=\"--region-color:#B5D934\">\r\n    <div class=\"legend-dot\" style=\"background:#B5D934\"><\/div>\r\n    <span>Norte<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-region=\"nordeste\" style=\"--region-color:#7DC221\">\r\n    <div class=\"legend-dot\" style=\"background:#7DC221\"><\/div>\r\n    <span>Nordeste<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-region=\"centro-oeste\" style=\"--region-color:#5CAD1A\">\r\n    <div class=\"legend-dot\" style=\"background:#5CAD1A\"><\/div>\r\n    <span>Centro-Oeste<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-region=\"sudeste\" style=\"--region-color:#47A02C\">\r\n    <div class=\"legend-dot\" style=\"background:#47A02C\"><\/div>\r\n    <span>Sudeste<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-region=\"sul\" style=\"--region-color:#2E7D32\">\r\n    <div class=\"legend-dot\" style=\"background:#2E7D32\"><\/div>\r\n    <span>Sul<\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<p class=\"hint-text\">ou clique diretamente em um estado no mapa<\/p>\r\n\r\n<div id=\"distributor-section\">\r\n  <div id=\"section-title\"><\/div>\r\n  <div id=\"distributor-content\"><\/div>\r\n<\/div>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3\/7.8.5\/d3.min.js\"><\/script>\r\n\r\n<script>\r\n\/\/ \u2500\u2500\u2500 REGI\u00d5ES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst REGION_COLORS = {\r\n  'norte':        '#B5D934',\r\n  'nordeste':     '#7DC221',\r\n  'centro-oeste': '#5CAD1A',\r\n  'sudeste':      '#47A02C',\r\n  'sul':          '#2E7D32'\r\n};\r\n\r\nconst REGION_LABELS = {\r\n  'norte':        'Norte',\r\n  'nordeste':     'Nordeste',\r\n  'centro-oeste': 'Centro-Oeste',\r\n  'sudeste':      'Sudeste',\r\n  'sul':          'Sul'\r\n};\r\n\r\nconst STATE_REGION = {\r\n  AC:'norte',  AM:'norte',  AP:'norte', PA:'norte',  RO:'norte',  RR:'norte',  TO:'norte',\r\n  AL:'nordeste', BA:'nordeste', CE:'nordeste', MA:'nordeste', PB:'nordeste',\r\n  PE:'nordeste', PI:'nordeste', RN:'nordeste', SE:'nordeste',\r\n  DF:'centro-oeste', GO:'centro-oeste', MS:'centro-oeste', MT:'centro-oeste',\r\n  ES:'sudeste', MG:'sudeste', RJ:'sudeste', SP:'sudeste',\r\n  PR:'sul', RS:'sul', SC:'sul'\r\n};\r\n\r\n\/\/ \u2500\u2500\u2500 NOMES DOS ESTADOS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst STATE_NAMES = {\r\n  'AC':'Acre','AL':'Alagoas','AP':'Amap\u00e1','AM':'Amazonas','BA':'Bahia',\r\n  'CE':'Cear\u00e1','DF':'Distrito Federal','ES':'Esp\u00edrito Santo','GO':'Goi\u00e1s',\r\n  'MA':'Maranh\u00e3o','MT':'Mato Grosso','MS':'Mato Grosso do Sul',\r\n  'MG':'Minas Gerais','PA':'Par\u00e1','PB':'Para\u00edba','PR':'Paran\u00e1',\r\n  'PE':'Pernambuco','PI':'Piau\u00ed','RJ':'Rio de Janeiro','RN':'Rio Grande do Norte',\r\n  'RS':'Rio Grande do Sul','RO':'Rond\u00f4nia','RR':'Roraima','SC':'Santa Catarina',\r\n  'SP':'S\u00e3o Paulo','SE':'Sergipe','TO':'Tocantins'\r\n};\r\n\r\n\/\/ \u2500\u2500\u2500 IBGE CODE \u2192 SIGLA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst IBGE_TO_SIGLA = {\r\n  11:'RO',12:'AC',13:'AM',14:'RR',15:'PA',16:'AP',17:'TO',\r\n  21:'MA',22:'PI',23:'CE',24:'RN',25:'PB',26:'PE',27:'AL',28:'SE',29:'BA',\r\n  31:'MG',32:'ES',33:'RJ',35:'SP',\r\n  41:'PR',42:'SC',43:'RS',\r\n  50:'MS',51:'MT',52:'GO',53:'DF'\r\n};\r\n\r\n\/\/ \u2500\u2500\u2500 DISTRIBUIDORES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst stateDistributors = {\r\n  'AC': [\r\n    { name:'INOVAR', phone:'(69) 3424-0020', whatsapp:'(69) 3424-0020', email:'contato@inovaronline.com.br' }\r\n  ],\r\n  'AL': [\r\n    { name:'AMOEDO DISTRIBUIDORA', phone:'0800 941 1290', whatsapp:'(81) 8362-2303', email:'estela.fausto@amoedodistribuidora.com.br' }\r\n  ],\r\n  'AP': [\r\n    { name:'J.HENRIQUES', phone:'(91) 3265-1181', whatsapp:'(91) 99110-9007', email:'j.henriqueadasilva@gmail.com' }\r\n  ],\r\n  'AM': [\r\n    { name:'BATISTELLA', phone:'(92) 3020-9087', whatsapp:'(92) 99403-0319', email:'danielycastro@batistelladistribuidora.com.br' }\r\n  ],\r\n  'BA': [\r\n    { name:'AMOR DE BICHO', phone:'(73) 3634-9972', whatsapp:'(73) 98866-5434', email:'mateuscoelhus@gmail.com', coverage:'Ilh\u00e9us, Sul, Extremo Sul, Sudoeste e Oeste da Bahia' },\r\n    { name:'AMOEDO', phone:'0800 941 1290', whatsapp:'(73) 98866-5434', email:'estela.fausto@amoedodistribuidora.com.br', coverage:'Salvador e regi\u00e3o metropolitana' }\r\n  ],\r\n  'CE': [\r\n    { name:'GIREZE', phone:'(85) 4141-3401', whatsapp:'(85) 9815-1171', email:'riscliffalmeida@gmail.com' }\r\n  ],\r\n  'DF': [\r\n    { name:'ZAK', phone:'(61) 98469-0375', whatsapp:'(61) 98469-0375' }\r\n  ],\r\n  'ES': [\r\n    { name:'GLOBAL', phone:'(27) 3229-8298', whatsapp:'(27) 99243-5048', email:'vendas@globaldist.com.br' }\r\n  ],\r\n  'GO': [\r\n    { name:'SUPRIFARMA', phone:'(62) 3638-0407', whatsapp:'(62) 9867-3214', email:'suprifarma@suprifarma.vet.br', coverage:'Goi\u00e1s (exceto Distrito Federal)' }\r\n  ],\r\n  'MA': [\r\n    { name:'VIDA', phone:'(86) 3233-1267', whatsapp:'(86) 8171-5050', email:'caen@distribuidoravida.com' }\r\n  ],\r\n  'MT': [\r\n    { name:'MC AGRO', phone:'(65) 3625-1500', whatsapp:'(65) 99212-4297', email:'mcagro@terra.com.br' }\r\n  ],\r\n  'MS': [\r\n    { name:'DIZ', phone:'(67) 3387-1282', whatsapp:'(67) 9850-9183', email:'dizcomer@gmail.com' }\r\n  ],\r\n  'MG': [\r\n    { name:'M&amp;M', phone:'(31) 3892-4392', coverage:'Zona da Mata, Juiz de Fora-Araponga, Barbacena, Barroso, Coimbra, Erv\u00e1lia, Guiricema, Piedade de Ponte Nova, Rio Espera, Rio Pomba, Rodeiro, Santo Ant\u00f4nio do Grama, S\u00e3o Geraldo, S\u00e3o Jo\u00e3o del Rei, S\u00e3o Miguel do Anta, Teixeiras, Tiradentes, Ub\u00e1, Vi\u00e7osa' },\r\n    { name:'COMPROMISSO', phone:'(31) 97228-0214', whatsapp:'(91) 99110-9007', email:'Atendimento@compromissopet.com.br', coverage:'Grande BH e Regi\u00e3o Metropolitana' },\r\n    { name:'PORTO', phone:'(11) 93778-0214', whatsapp:'(11) 93778-0214', email:'sac@vetlinebrasil.com.br', coverage:'Tri\u00e2ngulo Mineiro' }\r\n  ],\r\n  'PA': [\r\n    { name:'J.HENRIQUES', phone:'(91) 3265-1181', whatsapp:'(91) 99110-9007', email:'j.henriqueadasilva@gmail.com' }\r\n  ],\r\n  'PB': [\r\n    { name:'GARRA ANIMAL', phone:'(83) 3142-1312', whatsapp:'(83) 98825-0729', email:'adm@garraanimal.com.br' }\r\n  ],\r\n  'PR': [\r\n    { name:'BIOCOM', phone:'(41) 3398-1212', whatsapp:'(41) 9895-9805', email:'biocom@biocom.com.br', email2:'televendas@biocom.com.br' }\r\n  ],\r\n  'PE': [\r\n    { name:'AMOEDO DISTRIBUIDORA', phone:'0800 941 1290', whatsapp:'(81) 8362-2303', email:'estela.fausto@amoedodistribuidora.com.br' }\r\n  ],\r\n  'PI': [\r\n    { name:'VIDA', phone:'(86) 3233-1267', whatsapp:'(86) 8171-5050', email:'caen@distribuidoravida.com' }\r\n  ],\r\n  'RJ': [\r\n    { name:'MOURAGRO', phone:'(32) 3449-4243', email:'atendimento@mouragro.com.br' }\r\n  ],\r\n  'RN': [\r\n    { name:'RA\u00c7A', phone:'(84) 3213-5495', whatsapp:'(84) 98818-3895', email:'raca@racadistribuidora.com.br' }\r\n  ],\r\n  'RS': [\r\n    { name:'ELLUC', phone:'(54) 3028-8399', whatsapp:'(54) 99194-9743', email:'ellucpet@gmail.com', coverage:'Serra Ga\u00facha, Norte, Nordeste e Noroeste do RS' },\r\n    { name:'VETLOG', phone:'(51) 3446-3519', whatsapp:'(51) 3446-3519', email:'atendimento@vetlog.com.br' }\r\n  ],\r\n  'RO': [\r\n    { name:'INOVAR', phone:'(69) 3424-0020', whatsapp:'(69) 3424-0020', email:'contato@inovaronline.com.br' }\r\n  ],\r\n  'RR': [\r\n    { name:'BATISTELLA', phone:'(92) 3020-9087', whatsapp:'(92) 99403-0319', email:'danielycastro@batistelladistribuidora.com.br' }\r\n  ],\r\n  'SC': [\r\n    { name:'PET LINE', phone:'(47) 3427-5798', email:'adriano@petline.vet.br' }\r\n  ],\r\n  'SP': [\r\n    { name:'GLOBAL', phone:'(11) 2973-9357 \/ (11) 2950-2516', whatsapp:'(11) 97645-7945', email:'comercial@globalvetdistribuidora.com.br', coverage:'Capital SP: Zona Norte, Zona Leste e Zona Oeste, Alto Tiet\u00ea e Regi\u00e3o Metropolitana Norte' },\r\n    { name:'PURIPLAN', phone:'(14) 3761-2269', whatsapp:'(14) 99786-7920', email:'puriplanpet@hotmail.com', coverage:'Avar\u00e9, Botucatu, Bauru, Ja\u00fa, Mar\u00edlia, Itatinga, Ourinhos, Registro, Presidente Prudente e regi\u00e3o' },\r\n    { name:'VETLINE', phone:'(11) 4521-9216', whatsapp:'(11) 97365-0356', email:'tassia.santoro@vetlinebrasil.com.br', coverage:'Capital SP: Zona Sul, Centro Sul e ABC Paulista' },\r\n    { name:'PETMAR', phone:'(13) 3322-4009', whatsapp:'(13) 99123-9682', email:'petmardistribuidora@petmardistribuidora.com.br', coverage:'Baixada Santista' },\r\n    { name:'SOCIAL PET', phone:'(19) 3886-1427', whatsapp:'(19) 97120-4053', email:'socialpetdistribuidora@socialpetdistribuidora.com.br', coverage:'Regi\u00e3o metropolitana de Campinas, Sorocaba, Vale do Para\u00edba e Litoral Norte' },\r\n    { name:'CASA DAS VACINAS', phone:'0800-558-445', whatsapp:'(17) 3213-9000', email:'casadasvacinasvet@casadasvacinasvet.com.br', coverage:'Andradina, Ara\u00e7atuba, Barretos, Catanduva, Franca, Jabuticabal, Ribeir\u00e3o Preto, S\u00e3o Jos\u00e9 do Rio Preto e Votuporanga' }\r\n  ],\r\n  'SE': [\r\n    { name:'AMOEDO DISTRIBUIDORA', phone:'0800 941 1290', whatsapp:'(81) 8362-2303', email:'estela.fausto@amoedodistribuidora.com.br' }\r\n  ],\r\n  'TO': [\r\n    { name:'BIRIVET', phone:'(63) 3414-3132', whatsapp:'(63) 99259-0627', email:'birivet.suzuki@gmail.com' }\r\n  ]\r\n};\r\n\r\n\/\/ \u2500\u2500\u2500 ICONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst ICON_PHONE = `<svg class=\"contact-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 11.3a19.79 19.79 0 01-3.07-8.67A2 2 0 012 .5h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.09 8.37a16 16 0 006.29 6.29l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>`;\r\nconst ICON_WA    = `<svg class=\"contact-icon\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z\"\/><\/svg>`;\r\nconst ICON_EMAIL = `<svg class=\"contact-icon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>`;\r\n\r\n\/\/ \u2500\u2500\u2500 HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nfunction toTelHref(n) {\r\n  if (!n) return null;\r\n  const digits = n.replace(\/\\D\/g, '');\r\n  return n.trim().startsWith('0800') ? 'tel:' + digits : 'tel:+55' + digits;\r\n}\r\nfunction toWaHref(n) {\r\n  if (!n || n.trim().startsWith('0800')) return null;\r\n  const digits = n.replace(\/\\D\/g, '');\r\n  return digits.length < 8 ? null : 'https:\/\/wa.me\/55' + digits;\r\n}\r\n\r\nfunction buildCard(d) {\r\n  const coverageHtml = d.coverage\r\n    ? `<div class=\"dist-coverage\">${d.coverage}<\/div>`\r\n    : '';\r\n  const phoneHtml = d.phone\r\n    ? `<div class=\"contact-row\">${ICON_PHONE}<a href=\"${toTelHref(d.phone)}\">${d.phone}<\/a><\/div>`\r\n    : '';\r\n  const waHref = toWaHref(d.whatsapp);\r\n  const waHtml = waHref\r\n    ? `<div class=\"contact-row row-wa\">${ICON_WA}<a href=\"${waHref}\" target=\"_blank\" rel=\"noopener\">${d.whatsapp}<\/a><\/div>`\r\n    : '';\r\n  const emailHtml = d.email\r\n    ? `<div class=\"contact-row\">${ICON_EMAIL}<a href=\"mailto:${d.email}\">${d.email}<\/a><\/div>`\r\n    : '';\r\n  const email2Html = d.email2\r\n    ? `<div class=\"contact-row\">${ICON_EMAIL}<a href=\"mailto:${d.email2}\">${d.email2}<\/a><\/div>`\r\n    : '';\r\n  return `<div class=\"dist-card\">\r\n    <div class=\"dist-header\">${d.name}<\/div>\r\n    <div class=\"dist-body\">\r\n      ${coverageHtml}\r\n      <div class=\"dist-contact\">${phoneHtml}${waHtml}${emailHtml}${email2Html}<\/div>\r\n    <\/div>\r\n  <\/div>`;\r\n}\r\n\r\nfunction showSection(title, color, contentHtml) {\r\n  const titleEl = document.getElementById('section-title');\r\n  titleEl.textContent = title;\r\n  titleEl.style.color = color;\r\n  titleEl.style.borderColor = color;\r\n\r\n  const contentEl = document.getElementById('distributor-content');\r\n  contentEl.className = 'fade-in';\r\n  contentEl.innerHTML = contentHtml;\r\n\r\n  const section = document.getElementById('distributor-section');\r\n  section.style.display = 'block';\r\n  setTimeout(() => section.scrollIntoView({ behavior: 'smooth', block: 'nearest' }), 50);\r\n}\r\n\r\n\/\/ \u2500\u2500\u2500 SELE\u00c7\u00c3O DE ESTADO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nlet selectedState  = null;\r\nlet selectedRegion = null;\r\n\r\nfunction handleStateSelect(sigla) {\r\n  \/\/ Toggle\r\n  if (selectedState === sigla) {\r\n    selectedState = null;\r\n    d3.selectAll('.state-path').classed('active', false).classed('dimmed', false);\r\n    document.getElementById('distributor-section').style.display = 'none';\r\n    return;\r\n  }\r\n  selectedState  = sigla;\r\n  selectedRegion = null;\r\n\r\n  \/\/ Atualiza legenda\r\n  document.querySelectorAll('.legend-item').forEach(el => el.classList.remove('active'));\r\n\r\n  \/\/ Destaca apenas o estado clicado\r\n  d3.selectAll('.state-path')\r\n    .classed('active', false)\r\n    .classed('dimmed', false);\r\n  d3.selectAll(`.state-path[data-sigla=\"${sigla}\"]`).classed('active', true);\r\n\r\n  const list = stateDistributors[sigla] || [];\r\n  const cardsHtml = list.length\r\n    ? `<div class=\"cards-grid\">${list.map(buildCard).join('')}<\/div>`\r\n    : '<div class=\"empty-msg\">Nenhum distribuidor cadastrado neste estado.<\/div>';\r\n\r\n  showSection(STATE_NAMES[sigla] || sigla, '#47A02C', cardsHtml);\r\n}\r\n\r\n\/\/ \u2500\u2500\u2500 SELE\u00c7\u00c3O DE REGI\u00c3O \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nfunction handleRegionSelect(regionKey) {\r\n  const legendItem = document.querySelector(`.legend-item[data-region=\"${regionKey}\"]`);\r\n\r\n  \/\/ Toggle\r\n  if (selectedRegion === regionKey) {\r\n    selectedRegion = null;\r\n    selectedState  = null;\r\n    d3.selectAll('.state-path').classed('active', false).classed('dimmed', false);\r\n    document.querySelectorAll('.legend-item').forEach(el => el.classList.remove('active'));\r\n    document.getElementById('distributor-section').style.display = 'none';\r\n    return;\r\n  }\r\n  selectedRegion = regionKey;\r\n  selectedState  = null;\r\n\r\n  \/\/ Atualiza legenda\r\n  document.querySelectorAll('.legend-item').forEach(el => el.classList.remove('active'));\r\n  if (legendItem) legendItem.classList.add('active');\r\n\r\n  \/\/ Destaca estados da regi\u00e3o, escurece os outros\r\n  d3.selectAll('.state-path').each(function(d) {\r\n    const sigla = d3.select(this).attr('data-sigla');\r\n    const inRegion = STATE_REGION[sigla] === regionKey;\r\n    d3.select(this).classed('active', inRegion).classed('dimmed', !inRegion);\r\n  });\r\n\r\n  \/\/ Ordena estados da regi\u00e3o por nome\r\n  const regionStates = Object.entries(STATE_REGION)\r\n    .filter(([, r]) => r === regionKey)\r\n    .map(([s]) => s)\r\n    .sort((a, b) => (STATE_NAMES[a] || a).localeCompare(STATE_NAMES[b] || b, 'pt'));\r\n\r\n  const sections = regionStates\r\n    .filter(s => stateDistributors[s] && stateDistributors[s].length)\r\n    .map(s => `<div class=\"state-group\">\r\n      <div class=\"state-group-header\">${STATE_NAMES[s] || s}<\/div>\r\n      <div class=\"cards-grid\">${stateDistributors[s].map(buildCard).join('')}<\/div>\r\n    <\/div>`).join('');\r\n\r\n  const color = REGION_COLORS[regionKey];\r\n  showSection(REGION_LABELS[regionKey], color, sections || '<div class=\"empty-msg\">Nenhum distribuidor cadastrado.<\/div>');\r\n}\r\n\r\n\/\/ Conecta legenda\r\ndocument.querySelectorAll('.legend-item[data-region]').forEach(item => {\r\n  item.addEventListener('click', () => handleRegionSelect(item.dataset.region));\r\n});\r\n\r\n\/\/ \u2500\u2500\u2500 MAPA D3 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n(function waitForD3() {\r\n  if (typeof d3 === 'undefined') return setTimeout(waitForD3, 80);\r\n  initMap();\r\n})();\r\n\r\nfunction initMap() {\r\n  const W = 620, H = 700;\r\n  const svg = d3.select('#brazil-map').attr('viewBox', `0 0 ${W} ${H}`);\r\n  const projection = d3.geoMercator();\r\n  const pathGen    = d3.geoPath().projection(projection);\r\n\r\n  const tooltip = document.getElementById('state-tooltip');\r\n\r\n  function getSigla(feature) {\r\n    const p = feature.properties || {};\r\n    if (p.sigla) return p.sigla.toUpperCase();\r\n    if (p.SIGLA) return p.SIGLA.toUpperCase();\r\n    if (p.abbrev) return p.abbrev.toUpperCase();\r\n    const code = p.codarea || p.CD_GEOCUF || p.id || p.codigo;\r\n    if (code) return IBGE_TO_SIGLA[+code] || null;\r\n    return null;\r\n  }\r\n\r\n  (function tryFetch(urls) {\r\n    if (!urls.length) {\r\n      svg.select('#loading-svg').text('Erro ao carregar o mapa. Tente recarregar a p\u00e1gina.');\r\n      return;\r\n    }\r\n    d3.json(urls[0]).then(data => loadMap(data)).catch(() => tryFetch(urls.slice(1)));\r\n  })([\r\n    'https:\/\/raw.githubusercontent.com\/codeforamerica\/click_that_hood\/master\/public\/data\/brazil-states.geojson',\r\n    'https:\/\/cdn.jsdelivr.net\/gh\/codeforamerica\/click_that_hood@main\/public\/data\/brazil-states.geojson',\r\n    'https:\/\/servicodados.ibge.gov.br\/api\/v3\/malhas\/paises\/BR?formato=application\/vnd.geo+json&qualidade=intermediario&divisao=UF'\r\n  ]);\r\n\r\n  function loadMap(data) {\r\n    svg.select('#loading-svg').remove();\r\n\r\n    const features = data.type === 'FeatureCollection' ? data.features : (data.features || []);\r\n    projection.fitExtent([[20, 10], [W - 20, H - 10]], data);\r\n\r\n    \/\/ Desenha estados coloridos por regi\u00e3o\r\n    svg.selectAll('.state-path')\r\n      .data(features)\r\n      .enter().append('path')\r\n        .attr('class', 'state-path')\r\n        .attr('d', pathGen)\r\n        .attr('data-sigla', d => getSigla(d) || '')\r\n        .attr('fill', d => {\r\n          const sigla  = getSigla(d);\r\n          const region = STATE_REGION[sigla];\r\n          return region ? REGION_COLORS[region] : '#C8C8C8';\r\n        })\r\n        .on('mouseover', function(event, d) {\r\n          const sigla = getSigla(d);\r\n          if (!sigla) return;\r\n          tooltip.textContent  = STATE_NAMES[sigla] || sigla;\r\n          tooltip.style.display = 'block';\r\n        })\r\n        .on('mousemove', function(event) {\r\n          tooltip.style.left = (event.clientX + 14) + 'px';\r\n          tooltip.style.top  = (event.clientY - 34) + 'px';\r\n        })\r\n        .on('mouseout', function() {\r\n          tooltip.style.display = 'none';\r\n        })\r\n        .on('click', function(event, d) {\r\n          const sigla = getSigla(d);\r\n          if (sigla) handleStateSelect(sigla);\r\n        });\r\n\r\n    \/\/ R\u00f3tulos sigla\r\n    svg.selectAll('.state-label')\r\n      .data(features)\r\n      .enter().append('text')\r\n        .attr('class', 'state-label')\r\n        .attr('x', d => pathGen.centroid(d)[0])\r\n        .attr('y', d => pathGen.centroid(d)[1])\r\n        .text(d => getSigla(d) || '');\r\n  }\r\n}\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-14436ec elementor-widget elementor-widget-menu-anchor\" data-id=\"14436ec\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"menu-anchor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-menu-anchor\" id=\"internacional\"><\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3c5cd0 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"d3c5cd0\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Distribuidores Internacionais <\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a2c0b2a elementor-widget elementor-widget-html\" data-id=\"a2c0b2a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"pt-BR\">\r\n<head>\r\n  <meta charset=\"UTF-8\">\r\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n  <title>Encontre um Distribuidor \u2013 Soft Care<\/title>\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@600;700&display=swap\" rel=\"stylesheet\">\r\n  <style>\r\n    * { box-sizing: border-box; margin: 0; padding: 0; }\r\n    body {\r\n      font-family: sans-serif;\r\n      background: #f0f4f8;\r\n      color: #333;\r\n    }\r\n    .map-wrapper {\r\n      position: relative;\r\n      max-width: 100%;\r\n      margin: 0 auto 6px;\r\n    }\r\n    #world-map {\r\n      width: 100%;\r\n      display: block;\r\n      background: transparent;\r\n    }\r\n    \/* Overlay HTML para os labels dos continentes \u2013 totalmente traduz\u00edvel pelo TranslatePress *\/\r\n    .map-labels-overlay {\r\n      position: absolute;\r\n      top: 0; left: 0;\r\n      width: 100%; height: 100%;\r\n      pointer-events: none;\r\n    }\r\n    .map-label {\r\n      position: absolute;\r\n      transform: translate(-50%, -50%);\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: clamp(7px, 1.5vw, 15px);\r\n      font-weight: 700;\r\n      letter-spacing: 1.5px;\r\n      text-transform: uppercase;\r\n      color: #fff;\r\n      text-shadow: 0 0 4px rgba(0,0,0,0.9), 0 0 8px rgba(0,0,0,0.6);\r\n      white-space: nowrap;\r\n      pointer-events: none;\r\n    }\r\n    .country {\r\n      stroke: #fff;\r\n      stroke-width: 0.4;\r\n      cursor: pointer;\r\n      transition: filter 0.12s;\r\n    }\r\n    .country.continent-hover { filter: brightness(1.22); }\r\n    .country.active { stroke: #fff; stroke-width: 1.2; filter: brightness(1.3); }\r\n    .cont-label {\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 11px;\r\n      font-weight: 700;\r\n      letter-spacing: 1.5px;\r\n      text-transform: uppercase;\r\n      fill: #fff;\r\n      stroke: rgba(0,0,0,0.45);\r\n      stroke-width: 3px;\r\n      paint-order: stroke fill;\r\n      pointer-events: none;\r\n      text-anchor: middle;\r\n    }\r\n    .legend {\r\n      display: flex;\r\n      flex-wrap: wrap;\r\n      gap: 10px;\r\n      justify-content: center;\r\n      max-width: 100%;\r\n      margin: 4px auto 32px;\r\n      padding: 0;\r\n    }\r\n    .legend-item {\r\n      display: flex;\r\n      align-items: center;\r\n      gap: 7px;\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 13px;\r\n      font-weight: 600;\r\n      cursor: pointer;\r\n      padding: 6px 14px;\r\n      border-radius: 20px;\r\n      background: white;\r\n      box-shadow: 0 1px 5px rgba(0,0,0,0.1);\r\n      transition: box-shadow 0.2s, transform 0.15s;\r\n      letter-spacing: 0.4px;\r\n      user-select: text;\r\n    }\r\n    .legend-item:hover { box-shadow: 0 3px 10px rgba(0,0,0,0.18); transform: translateY(-1px); }\r\n    .legend-dot { width: 13px; height: 13px; border-radius: 50%; flex-shrink: 0; }\r\n    #distributor-section-world {\r\n      max-width: 100%;\r\n      margin: 0 auto 70px;\r\n      padding: 0;\r\n      display: none;\r\n    }\r\n    #continent-title {\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 1.25rem;\r\n      font-weight: 700;\r\n      color: #47A02C;\r\n      border-left: 5px solid #ccc;\r\n      padding-left: 14px;\r\n      margin-bottom: 18px;\r\n      letter-spacing: 0.4px;\r\n      transition: border-color 0.3s;\r\n    }\r\n    \/* \u2500\u2500 CARDS GRID (desktop + mobile) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    .cards-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, 1fr);\r\n      gap: 14px;\r\n    }\r\n    .dist-card {\r\n      border-radius: 14px;\r\n      box-shadow: 0 2px 12px rgba(0,0,0,0.08);\r\n      overflow: hidden;\r\n      background: white;\r\n      transition: box-shadow 0.2s, transform 0.15s;\r\n    }\r\n    .dist-card:hover {\r\n      box-shadow: 0 4px 18px rgba(0,0,0,0.14);\r\n      transform: translateY(-2px);\r\n    }\r\n    .dist-country {\r\n      background: #47A02C;\r\n      color: white;\r\n      padding: 12px 16px;\r\n      font-family: 'Poppins', sans-serif;\r\n      font-size: 13px;\r\n      font-weight: 700;\r\n      letter-spacing: 0.5px;\r\n    }\r\n    .dist-name    { padding: 10px 16px 4px; font-family: 'Poppins', sans-serif; font-size: 13px; font-weight: 700; color: #333; }\r\n    .dist-site    { padding: 4px 16px 14px; font-size: 13px; }\r\n    .dist-site a  { color: #47A02C; text-decoration: none; }\r\n    .dist-site a:hover { text-decoration: underline; }\r\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    .branch-badge { font-size: 11px; color: #777; background: #f0f0f0; padding: 3px 10px; border-radius: 10px; white-space: nowrap; }\r\n    .matriz-badge  { font-size: 11px; color: #1a6e2e; background: #e6f4ea; padding: 3px 10px; border-radius: 10px; white-space: nowrap; }\r\n    .empty-msg {\r\n      background: white;\r\n      border-radius: 10px;\r\n      padding: 48px 20px;\r\n      text-align: center;\r\n      color: #aaa;\r\n      font-size: 15px;\r\n      box-shadow: 0 2px 14px rgba(0,0,0,0.08);\r\n    }\r\n    @keyframes fadeSlide {\r\n      from { opacity: 0; transform: translateY(12px); }\r\n      to   { opacity: 1; transform: translateY(0); }\r\n    }\r\n    .fade-in { animation: fadeSlide 0.3s ease; }\r\n    \/* \u2500\u2500 MOBILE: 1 coluna \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n    @media (max-width: 680px) {\r\n      .cards-grid { grid-template-columns: 1fr; }\r\n      #continent-title { font-size: 1.05rem; }\r\n    }\r\n    \/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\r\n  <\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"map-wrapper\">\r\n  <svg id=\"world-map\" viewBox=\"0 0 960 490\">\r\n    <text id=\"loading-svg\" x=\"480\" y=\"245\" text-anchor=\"middle\" fill=\"#888\" font-size=\"14\" font-family=\"Arial\">Carregando mapa\u2026<\/text>\r\n  <\/svg>\r\n  <!-- Labels em HTML puro posicionados sobre o mapa \u2013 TranslatePress detecta e traduz normalmente -->\r\n  <div class=\"map-labels-overlay\">\r\n    <span class=\"map-label\" style=\"left:21.9%;top:39%;\">Am\u00e9rica do Norte<\/span>\r\n    <span class=\"map-label\" style=\"left:27.6%;top:77%;\">Am\u00e9rica do Sul<\/span>\r\n    <span class=\"map-label\" style=\"left:52.6%;top:26%;\">Europa<\/span>\r\n    <span class=\"map-label\" style=\"left:53.1%;top:64%;\">\u00c1frica<\/span>\r\n    <span class=\"map-label\" style=\"left:76.0%;top:40%;\">\u00c1sia<\/span>\r\n    <span class=\"map-label\" style=\"left:86.5%;top:84%;\">Oceania<\/span>\r\n  <\/div>\r\n<\/div>\r\n<!-- Legenda pr\u00e9-renderizada em HTML est\u00e1tico \u2192 detectada e traduz\u00edvel pelo TranslatePress -->\r\n<div class=\"legend\" id=\"legend-world\">\r\n  <div class=\"legend-item\" data-continent=\"north-america\">\r\n    <div class=\"legend-dot\" style=\"background:#B5D934\"><\/div>\r\n    <span>Am\u00e9rica do Norte<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-continent=\"south-america\">\r\n    <div class=\"legend-dot\" style=\"background:#7DC221\"><\/div>\r\n    <span>Am\u00e9rica do Sul<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-continent=\"europe\">\r\n    <div class=\"legend-dot\" style=\"background:#1E6B2E\"><\/div>\r\n    <span>Europa<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-continent=\"africa\">\r\n    <div class=\"legend-dot\" style=\"background:#CBCBCB\"><\/div>\r\n    <span>\u00c1frica<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-continent=\"asia\">\r\n    <div class=\"legend-dot\" style=\"background:#5CAD1A\"><\/div>\r\n    <span>\u00c1sia<\/span>\r\n  <\/div>\r\n  <div class=\"legend-item\" data-continent=\"oceania\">\r\n    <div class=\"legend-dot\" style=\"background:#47A02C\"><\/div>\r\n    <span>Oceania<\/span>\r\n  <\/div>\r\n<\/div>\r\n<div id=\"distributor-section-world\">\r\n  <div id=\"continent-title\"><\/div>\r\n  <div id=\"distributor-content-world\"><\/div>\r\n<\/div>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/d3\/7.8.5\/d3.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/topojson\/3.0.2\/topojson.min.js\"><\/script>\r\n<script>\r\n\/\/ ==== ISOLAMENTO: todo o c\u00f3digo do mapa internacional roda num escopo pr\u00f3prio ====\r\n\/\/ Isso evita conflito de vari\u00e1veis\/fun\u00e7\u00f5es globais com o mapa nacional (Brasil),\r\n\/\/ que declara nomes iguais (handleSelect, distributors, COLORS, initMap, etc.).\r\n(function () {\r\n\/\/ \u2500\u2500\u2500 CORES \u2013 Paleta Soft Care (verdes extra\u00eddos do logo) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst COLORS = {\r\n  'north-america': '#B5D934',  \/\/ verde-lim\u00e3o brilhante (topo do \"50 Anos\")\r\n  'south-america': '#7DC221',  \/\/ verde-lim\u00e3o m\u00e9dio (texto \"SOFT\")\r\n  'europe':        '#1E6B2E',  \/\/ verde-floresta escuro\r\n  'africa':        '#CBCBCB',  \/\/ cinza (sem distribuidores Soft Care)\r\n  'asia':          '#5CAD1A',  \/\/ verde m\u00e9dio\r\n  'oceania':       '#47A02C'   \/\/ verde Soft Care (cor oficial)\r\n};\r\n\/\/ L\u00ea o label traduzido a partir da legenda HTML (j\u00e1 traduzida pelo TranslatePress)\r\nfunction getContinentLabel(id) {\r\n  const el = document.querySelector(`#legend-world .legend-item[data-continent=\"${id}\"] span`);\r\n  return el ? el.textContent.trim() : id;\r\n}\r\n\/\/ \u2500\u2500\u2500 TRADU\u00c7\u00d5ES DOS NOMES DE PA\u00cdS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\/\/ Usado para ordenar corretamente quando TranslatePress serve outro idioma.\r\nconst COUNTRY_TRANSLATIONS = {\r\n  \/\/ Am\u00e9rica do Norte\r\n  'M\u00e9xico':     { es:'M\u00e9xico',     fr:'Mexique',   it:'Messico',   ja:'\u30e1\u30ad\u30b7\u30b3' },\r\n  'Costa Rica': { es:'Costa Rica', fr:'Costa Rica', it:'Costa Rica', ja:'\u30b3\u30b9\u30bf\u30ea\u30ab' },\r\n  'Guatemala':  { es:'Guatemala',  fr:'Guatemala',  it:'Guatemala',  ja:'\u30b0\u30a2\u30c6\u30de\u30e9' },\r\n  \/\/ Am\u00e9rica do Sul\r\n  'Bol\u00edvia':  { es:'Bolivia',   fr:'Bolivie',   it:'Bolivia',   ja:'\u30dc\u30ea\u30d3\u30a2' },\r\n  'Chile':    { es:'Chile',     fr:'Chili',     it:'Cile',      ja:'\u30c1\u30ea' },\r\n  'Col\u00f4mbia': { es:'Colombia',  fr:'Colombie',  it:'Colombia',  ja:'\u30b3\u30ed\u30f3\u30d3\u30a2' },\r\n  'Paraguai': { es:'Paraguay',  fr:'Paraguay',  it:'Paraguay',  ja:'\u30d1\u30e9\u30b0\u30a2\u30a4' },\r\n  'Peru':     { es:'Per\u00fa',      fr:'P\u00e9rou',     it:'Per\u00f9',      ja:'\u30da\u30eb\u30fc' },\r\n  'Uruguai':  { es:'Uruguay',   fr:'Uruguay',   it:'Uruguay',   ja:'\u30a6\u30eb\u30b0\u30a2\u30a4' },\r\n  \/\/ Europa\r\n  'Bulg\u00e1ria':                                  { es:'Bulgaria',  fr:'Bulgarie',   it:'Bulgaria',   ja:'\u30d6\u30eb\u30ac\u30ea\u30a2' },\r\n  'Espanha':                                   { es:'Espa\u00f1a',    fr:'Espagne',    it:'Spagna',     ja:'\u30b9\u30da\u30a4\u30f3' },\r\n  'It\u00e1lia \/ Malta':                            { es:'Italia \/ Malta', fr:'Italie \/ Malte', it:'Italia \/ Malta', ja:'\u30a4\u30bf\u30ea\u30a2 \/ \u30de\u30eb\u30bf' },\r\n  'Portugal':                                  { es:'Portugal',  fr:'Portugal',   it:'Portogallo', ja:'\u30dd\u30eb\u30c8\u30ac\u30eb' },\r\n  'Rom\u00eania':                                   { es:'Ruman\u00eda',   fr:'Roumanie',   it:'Romania',    ja:'\u30eb\u30fc\u30de\u30cb\u30a2' },\r\n  'Su\u00ed\u00e7a':                                     { es:'Suiza',     fr:'Suisse',     it:'Svizzera',   ja:'\u30b9\u30a4\u30b9' },\r\n  \/\/ \u00c1sia\r\n  'Catar':                                     { es:'Catar',     fr:'Qatar',      it:'Qatar',      ja:'\u30ab\u30bf\u30fc\u30eb' },\r\n  'Filipinas':                                 { es:'Filipinas', fr:'Philippines', it:'Filippine', ja:'\u30d5\u30a3\u30ea\u30d4\u30f3' },\r\n  '\u00cdndia':                                     { es:'India',     fr:'Inde',       it:'India',      ja:'\u30a4\u30f3\u30c9' },\r\n  'R\u00fassia \/ Bielorr\u00fassia \/ Cazaquist\u00e3o':       { es:'Rusia \/ Bielorrusia \/ Kazajist\u00e1n', fr:'Russie \/ Bi\u00e9lorussie \/ Kazakhstan', it:'Russia \/ Bielorussia \/ Kazakistan', ja:'\u30ed\u30b7\u30a2 \/ \u30d9\u30e9\u30eb\u30fc\u30b7 \/ \u30ab\u30b6\u30d5\u30b9\u30bf\u30f3' },\r\n  'Singapura':                                 { es:'Singapur',  fr:'Singapour',  it:'Singapore',  ja:'\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb' },\r\n  \/\/ Oceania\r\n  'Austr\u00e1lia': { es:'Australia', fr:'Australie', it:'Australia', ja:'\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2' }\r\n};\r\nfunction getSortName(country) {\r\n  const lang = (document.documentElement.lang || 'pt').split('-')[0];\r\n  if (lang === 'pt') return country;\r\n  return (COUNTRY_TRANSLATIONS[country] || {})[lang] || country;\r\n}\r\n\/\/ \u2500\u2500\u2500 PA\u00cdS \u2192 CONTINENTE (ISO 3166-1 num\u00e9rico) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nconst CC = {\r\n  \/\/ Am\u00e9rica do Norte\r\n  28:'north-america', 84:'north-america', 124:'north-america', 188:'north-america',\r\n  192:'north-america', 212:'north-america', 214:'north-america', 222:'north-america',\r\n  308:'north-america', 320:'north-america', 332:'north-america', 340:'north-america',\r\n  388:'north-america', 484:'north-america', 558:'north-america', 591:'north-america',\r\n  630:'north-america', 659:'north-america', 662:'north-america', 670:'north-america',\r\n  780:'north-america', 840:'north-america', 52:'north-america', 304:'north-america',\r\n  474:'north-america', 312:'north-america', 534:'north-america', 535:'north-america',\r\n  850:'north-america', 796:'north-america', 660:'north-america',\r\n  666:'north-america', 652:'north-america', 663:'north-america',\r\n  \/\/ Am\u00e9rica do Sul\r\n  32:'south-america', 68:'south-america', 76:'south-america', 152:'south-america',\r\n  170:'south-america', 218:'south-america', 328:'south-america', 604:'south-america',\r\n  600:'south-america', 740:'south-america', 858:'south-america', 862:'south-america',\r\n  238:'south-america', 254:'south-america', 531:'south-america',\r\n  \/\/ Europa\r\n  8:'europe', 20:'europe', 40:'europe', 56:'europe', 70:'europe', 100:'europe',\r\n  112:'europe', 191:'europe', 196:'europe', 203:'europe', 208:'europe', 233:'europe',\r\n  246:'europe', 250:'europe', 276:'europe', 300:'europe', 348:'europe', 352:'europe',\r\n  372:'europe', 380:'europe', 428:'europe', 438:'europe', 440:'europe', 442:'europe',\r\n  470:'europe', 492:'europe', 498:'europe', 499:'europe', 528:'europe', 578:'europe',\r\n  616:'europe', 620:'europe', 642:'europe', 643:'europe', 674:'europe', 688:'europe',\r\n  703:'europe', 705:'europe', 724:'europe', 752:'europe', 756:'europe', 804:'europe',\r\n  807:'europe', 826:'europe', 336:'europe',\r\n  \/\/ \u00c1frica\r\n  12:'africa', 24:'africa', 72:'africa', 108:'africa', 120:'africa', 132:'africa',\r\n  140:'africa', 148:'africa', 174:'africa', 175:'africa', 178:'africa', 180:'africa',\r\n  204:'africa', 231:'africa', 232:'africa', 262:'africa', 266:'africa', 270:'africa',\r\n  288:'africa', 324:'africa', 384:'africa', 404:'africa', 426:'africa', 430:'africa',\r\n  434:'africa', 450:'africa', 454:'africa', 466:'africa', 478:'africa', 480:'africa',\r\n  504:'africa', 508:'africa', 516:'africa', 562:'africa', 566:'africa', 646:'africa',\r\n  678:'africa', 686:'africa', 694:'africa', 706:'africa', 710:'africa', 716:'africa',\r\n  728:'africa', 729:'africa', 732:'africa', 748:'africa', 768:'africa', 788:'africa',\r\n  800:'africa', 818:'africa', 834:'africa', 854:'africa', 894:'africa',\r\n  \/\/ \u00c1sia\r\n  4:'asia', 31:'asia', 48:'asia', 50:'asia', 51:'asia', 64:'asia', 96:'asia',\r\n  104:'asia', 116:'asia', 144:'asia', 156:'asia', 268:'asia', 275:'asia',\r\n  344:'asia', 356:'asia', 360:'asia', 364:'asia', 368:'asia', 376:'asia',\r\n  392:'asia', 398:'asia', 400:'asia', 408:'asia', 410:'asia', 414:'asia',\r\n  417:'asia', 418:'asia', 422:'asia', 458:'asia', 462:'asia', 496:'asia',\r\n  512:'asia', 524:'asia', 586:'asia', 608:'asia', 626:'asia', 634:'asia',\r\n  682:'asia', 702:'asia', 704:'asia', 760:'asia', 762:'asia', 764:'asia',\r\n  784:'asia', 792:'asia', 795:'asia', 860:'asia', 887:'asia',\r\n  \/\/ Oceania\r\n  36:'oceania', 90:'oceania', 242:'oceania', 296:'oceania', 520:'oceania',\r\n  540:'oceania', 548:'oceania', 554:'oceania', 570:'oceania', 574:'oceania',\r\n  583:'oceania', 584:'oceania', 585:'oceania', 598:'oceania', 882:'oceania',\r\n  776:'oceania', 798:'oceania'\r\n};\r\n\/\/ \u2500\u2500\u2500 DADOS DOS DISTRIBUIDORES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\/\/ Apenas distribuidores com Soft Care ser\u00e3o exibidos (filtro na renderiza\u00e7\u00e3o)\r\nconst distributors = {\r\n  'north-america': [\r\n    { name: 'BIOPET', country: 'Costa Rica', website: 'https:\/\/montecocr.com\/', brands: ['hydra', 'softcare', 'beeps', 'megamazon'] },\r\n    { name: 'SUMITOMO CORPORATION MEXICO', country: 'M\u00e9xico', website: 'https:\/\/sumitomocorporationmexico.mx\/', brands: ['hydra', 'softcare'] }\r\n  ],\r\n  'south-america': [\r\n    { name: 'PET SOCIETY BRASIL', country: 'Brasil', website: 'https:\/\/softcare.com.br\/onde-comprar\/distribuidores-nacionais\/', brands: ['hydra', 'softcare', 'beeps', 'megamazon', 'ani', 'superp', 'pscare'], matrizOffice: true },\r\n    { name: 'CENTRAL DE INSUMOS', country: 'Bol\u00edvia', website: 'http:\/\/centralinsumos.com.bo', brands: ['hydra', 'softcare', 'beeps', 'luxurycare'] },\r\n    { name: 'GABRICA LTDA', country: 'Chile', website: 'https:\/\/www.gabrica.cl\/', brands: ['softcare', 'beeps', 'megamazon'] },\r\n    { name: 'GABRICA SAS', country: 'Col\u00f4mbia', website: 'https:\/\/www.gabrica.co', brands: ['hydra', 'softcare', 'beeps'] },\r\n    { name: 'AGROFIELD SRL', country: 'Paraguai', website: 'https:\/\/www.agrofield.com.py', brands: ['hydra', 'softcare', 'beeps'] },\r\n    { name: 'GABRICA SAC', country: 'Peru', website: 'https:\/\/www.gabrica.pe', brands: ['hydra', 'softcare'] },\r\n    { name: 'CODENOR S.A.', country: 'Uruguai', website: 'https:\/\/www.codenor.com.uy', brands: ['hydra', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] }\r\n  ],\r\n  'europe': [\r\n    { name: 'FURRY MURY FM LTD', country: 'Bulg\u00e1ria', website: 'https:\/\/www.groomersshop.com', brands: ['hydra', 'hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] },\r\n    { name: 'NEFTYS', country: 'Espanha', website: 'https:\/\/www.neftysfarmasd.es\/#\/', brands: ['hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] },\r\n    { name: 'SHINYPET SRLS', country: 'It\u00e1lia \/ Malta', website: 'https:\/\/www.shinypet.net', brands: ['hydra', 'hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] },\r\n    { name: 'BIO2', country: 'Portugal', website: 'https:\/\/www.bio2.pt', brands: ['hydra', 'softcare', 'megamazon'] },\r\n    { name: 'GREENPOINT', country: 'Rom\u00eania', website: 'http:\/\/www.greenpointromania.ro\/', brands: ['hydra', 'softcare', 'beeps', 'megamazon', 'ani'] },\r\n    { name: 'BRIDEA SAGL', country: 'Su\u00ed\u00e7a', website: 'https:\/\/www.groomershop.ch', brands: ['hydra', 'hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] }\r\n  ],\r\n  'africa': [],\r\n  'asia': [\r\n    { name: 'CANADIAN VETERINARY HOSPITAL', country: 'Catar', website: 'https:\/\/www.canvethospital.com', brands: ['hydra', 'softcare', 'beeps', 'megamazon', 'luxurycare'] },\r\n    { name: 'MODERN PET LIFESTYLE INC.', country: 'Filipinas', website: 'https:\/\/www.instagram.com\/modernpet.ph\/', brands: ['hydra', 'softcare', 'megamazon', 'luxurycare'] },\r\n    { name: 'PROGROOM', country: 'R\u00fassia \/ Bielorr\u00fassia \/ Cazaquist\u00e3o', website: 'https:\/\/hydragroom.ru', brands: ['hydra', 'hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] },\r\n    { name: 'PETS STATION', country: 'Singapura', website: 'https:\/\/www.petsstation.com.sg', brands: ['hydra', 'hydraretail', 'softcare', 'luxurycare'] },\r\n    { name: 'ABK IMPORTS', country: '\u00cdndia', website: 'https:\/\/www.abkimports.com', brands: ['hydra', 'hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare', 'ani'] }\r\n  ],\r\n  'oceania': [\r\n    { name: 'DGS IMPORTS (M&V KOSTOVSKI)', country: 'Austr\u00e1lia', website: 'https:\/\/www.dgsimports.net.au', brands: ['hydra', 'hydraretail', 'softcare', 'beeps', 'megamazon', 'luxurycare'] }\r\n  ],\r\n};\r\n\/\/ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\/\/ Legenda j\u00e1 est\u00e1 no HTML \u2013 apenas conecta os handlers de clique\r\ndocument.querySelectorAll('#legend-world .legend-item[data-continent]').forEach(item => {\r\n  item.addEventListener('click', () => handleSelect(item.dataset.continent));\r\n});\r\nlet selected = null;\r\nfunction handleSelect(id) {\r\n  if (selected === id) {\r\n    selected = null;\r\n    d3.selectAll('.country').classed('active', false);\r\n    document.getElementById('distributor-section-world').style.display = 'none';\r\n    return;\r\n  }\r\n  selected = id;\r\n  d3.selectAll('.country').classed('active', false);\r\n  d3.selectAll(`.country[data-continent=\"${id}\"]`).classed('active', true);\r\n  const titleEl = document.getElementById('continent-title');\r\n  titleEl.textContent = getContinentLabel(id);\r\n  titleEl.style.borderColor = COLORS[id];\r\n  const lang = (document.documentElement.lang || 'pt').split('-')[0];\r\n  const list = (distributors[id] || []).slice().sort((a, b) =>\r\n    getSortName(a.country).localeCompare(getSortName(b.country), lang)\r\n  );\r\n  const contentEl = document.getElementById('distributor-content-world');\r\n  contentEl.className = 'fade-in';\r\n  if (list.length === 0) {\r\n    contentEl.innerHTML = '<div class=\"empty-msg\">Nenhum distribuidor cadastrado nesta regi\u00e3o.<\/div>';\r\n  } else {\r\n    const cards = list.map(d => {\r\n      const display = d.website.replace(\/^mailto:\/, '');\r\n      const link = d.website\r\n        ? `<a href=\"${d.website}\" target=\"_blank\" rel=\"noopener\">${display}<\/a>`\r\n        : '\u2014';\r\n      const branchBadge = d.branchOffice ? ' <span class=\"branch-badge\">Filial<\/span>' : '';\r\n      const matrizBadge = d.matrizOffice ? ' <span class=\"matriz-badge\">Matriz<\/span>' : '';\r\n      return `<div class=\"dist-card\">\r\n        <div class=\"dist-country\">${d.country}<\/div>\r\n        <div class=\"dist-name\">${d.name}${branchBadge}${matrizBadge}<\/div>\r\n        <div class=\"dist-site\">${link}<\/div>\r\n      <\/div>`;\r\n    }).join('');\r\n    contentEl.innerHTML = `<div class=\"cards-grid\">${cards}<\/div>`;\r\n  }\r\n  const section = document.getElementById('distributor-section-world');\r\n  section.style.display = 'block';\r\n  setTimeout(() => section.scrollIntoView({ behavior: 'smooth', block: 'nearest' }), 50);\r\n}\r\n\/\/ \u2500\u2500\u2500 HOVER POR CONTINENTE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\nlet hoveredContinent = null;\r\nfunction setupHover() {\r\n  const mapEl = document.getElementById('world-map');\r\n  if (!mapEl) return;\r\n  mapEl.addEventListener('mouseover', function(e) {\r\n    const path = e.target.closest('path.country[data-continent]');\r\n    const cont = path ? path.getAttribute('data-continent') : null;\r\n    if (cont === hoveredContinent) return;\r\n    if (hoveredContinent) {\r\n      document.querySelectorAll(`.country[data-continent=\"${hoveredContinent}\"]`)\r\n        .forEach(el => el.classList.remove('continent-hover'));\r\n    }\r\n    hoveredContinent = cont;\r\n    if (cont) {\r\n      document.querySelectorAll(`.country[data-continent=\"${cont}\"]`)\r\n        .forEach(el => el.classList.add('continent-hover'));\r\n    }\r\n  });\r\n  mapEl.addEventListener('mouseleave', function() {\r\n    if (hoveredContinent) {\r\n      document.querySelectorAll(`.country[data-continent=\"${hoveredContinent}\"]`)\r\n        .forEach(el => el.classList.remove('continent-hover'));\r\n      hoveredContinent = null;\r\n    }\r\n  });\r\n}\r\nif (document.readyState === 'loading') {\r\n  document.addEventListener('DOMContentLoaded', setupHover);\r\n} else {\r\n  setupHover();\r\n}\r\n\/\/ \u2500\u2500\u2500 MAPA D3 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\r\n\/\/ Aguarda d3 e topojson estarem dispon\u00edveis antes de inicializar\r\n\/\/ (necess\u00e1rio quando plugin de seguran\u00e7a\/otimiza\u00e7\u00e3o usa defer nos scripts externos)\r\n(function waitForLibs() {\r\n  if (typeof d3 === 'undefined' || typeof topojson === 'undefined') {\r\n    return setTimeout(waitForLibs, 80);\r\n  }\r\n  initMap();\r\n})();\r\nfunction initMap() {\r\n  const W = 960, H = 490;\r\n  const svg = d3.select('#world-map').attr('viewBox', `0 0 ${W} ${H}`);\r\n  const projection = d3.geoNaturalEarth1()\r\n    .scale(175)\r\n    .translate([W \/ 2, 300]);\r\n  const pathGen = d3.geoPath().projection(projection);\r\n  const SPLIT_IDS = new Set([250, 528, 620, 643]); \/\/ Fran\u00e7a, Pa\u00edses Baixos, Portugal, R\u00fassia\r\n  const ANTARCTICA_ID = 10;\r\n  function continentByLocation(feature, fallbackId) {\r\n    const [lon, lat] = d3.geoCentroid(feature);\r\n    const fallback = CC[fallbackId];\r\n    if (lon < -20) {\r\n      if (lat < 10) return 'south-america';\r\n      if (lat < 35) return 'north-america';\r\n      if (lon < -40) return 'north-america';\r\n      if (fallback === 'europe') return null;\r\n      return 'north-america';\r\n    }\r\n    return fallback || null;\r\n  }\r\n  function drawPolygon(coords, fallbackId) {\r\n    const feat = { type: 'Feature', geometry: { type: 'Polygon', coordinates: coords } };\r\n    const cont = continentByLocation(feat, fallbackId);\r\n    if (!cont) return;\r\n    const path = svg.append('path')\r\n      .datum(feat)\r\n      .attr('class', 'country')\r\n      .attr('d', pathGen)\r\n      .attr('data-continent', cont)\r\n      .attr('fill', COLORS[cont]);\r\n    if (fallbackId === 643) {\r\n      path.attr('clip-path', 'url(#clip-right)');\r\n    }\r\n  }\r\n  \/\/ Tenta m\u00faltiplos CDNs em sequ\u00eancia caso algum esteja bloqueado\r\n  (function tryFetch(urls) {\r\n    if (!urls.length) {\r\n      svg.select('#loading-svg').text('Erro ao carregar o mapa. Tente recarregar a p\u00e1gina.');\r\n      return;\r\n    }\r\n    d3.json(urls[0]).then(world => loadMap(world)).catch(() => tryFetch(urls.slice(1)));\r\n  })([\r\n    'https:\/\/cdn.jsdelivr.net\/npm\/world-atlas@2\/countries-110m.json',\r\n    'https:\/\/unpkg.com\/world-atlas@2\/countries-110m.json',\r\n    'https:\/\/raw.githubusercontent.com\/topojson\/world-atlas\/master\/countries-110m.json'\r\n  ]);\r\n  function loadMap(world) {\r\n    svg.select('#loading-svg').remove();\r\n    svg.append('defs').append('clipPath')\r\n      .attr('id', 'clip-right')\r\n      .append('rect')\r\n      .attr('x', 300).attr('y', 0)\r\n      .attr('width', W - 300).attr('height', H);\r\n    const countries = topojson.feature(world, world.objects.countries);\r\n    svg.selectAll('.country')\r\n      .data(countries.features.filter(d =>\r\n        +d.id !== ANTARCTICA_ID &&\r\n        !SPLIT_IDS.has(+d.id) &&\r\n        CC[+d.id]\r\n      ))\r\n      .enter().append('path')\r\n      .attr('class', 'country')\r\n      .attr('d', pathGen)\r\n      .attr('data-continent', d => CC[+d.id])\r\n      .attr('fill', d => COLORS[CC[+d.id]]);\r\n    countries.features\r\n      .filter(d => SPLIT_IDS.has(+d.id))\r\n      .forEach(feature => {\r\n        const geom = feature.geometry;\r\n        const id = +feature.id;\r\n        if (geom.type === 'MultiPolygon') {\r\n          geom.coordinates.forEach(polyCoords => drawPolygon(polyCoords, id));\r\n        } else if (geom.type === 'Polygon') {\r\n          drawPolygon(geom.coordinates, id);\r\n        }\r\n      });\r\n    document.getElementById('world-map').addEventListener('click', function(e) {\r\n      const path = e.target.closest('path[data-continent]');\r\n      if (!path) return;\r\n      const cont = path.getAttribute('data-continent');\r\n      if (cont) handleSelect(cont);\r\n    });\r\n  }\r\n}\r\n})(); \/\/ ==== fim do escopo isolado do mapa internacional ====\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Distribuidores Nacionais e Internacionais Nacionais Internacionais Distribuidores Nacionais Distribuidores Nacionais \u2013 Soft Care Carregando mapa\u2026 Norte Nordeste Centro-Oeste Sudeste Sul ou clique diretamente em um estado no mapa Distribuidores Internacionais Encontre um Distribuidor \u2013 Soft Care Carregando mapa\u2026 Am\u00e9rica do Norte Am\u00e9rica do Sul Europa \u00c1frica \u00c1sia Oceania Am\u00e9rica do Norte Am\u00e9rica do Sul Europa [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"parent":1518,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2874","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/pages\/2874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/comments?post=2874"}],"version-history":[{"count":100,"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/pages\/2874\/revisions"}],"predecessor-version":[{"id":8705,"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/pages\/2874\/revisions\/8705"}],"up":[{"embeddable":true,"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/pages\/1518"}],"wp:attachment":[{"href":"https:\/\/softcare.com.br\/en\/wp-json\/wp\/v2\/media?parent=2874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}