{"id":15006,"date":"2025-11-21T11:27:21","date_gmt":"2025-11-21T14:27:21","guid":{"rendered":"https:\/\/taxationmind.com\/?page_id=15006"},"modified":"2025-11-21T11:49:45","modified_gmt":"2025-11-21T14:49:45","slug":"elementor-15006","status":"publish","type":"page","link":"https:\/\/taxationmind.com\/index.php\/elementor-15006\/","title":{"rendered":"Elementor #15006"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"15006\" class=\"elementor elementor-15006\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ba41bad e-flex e-con-boxed e-con e-parent\" data-id=\"ba41bad\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6338840 elementor-widget elementor-widget-html\" data-id=\"6338840\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<!-- ==================================================================== -->\r\n<!-- FORMUL\u00c1RIO WORDPRESS - HTML WIDGET -->\r\n<!-- Integra\u00e7\u00f5es: Google Apps Script, HubSpot, Envio de E-mail -->\r\n<!-- ==================================================================== -->\r\n\r\n<div id=\"formulario-contato-wrapper\">\r\n  <style>\r\n    \/* Reset e Base *\/\r\n    #formulario-contato-wrapper {\r\n      font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;\r\n      max-width: 800px;\r\n      margin: 0 auto;\r\n      padding: 40px 20px;\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    #formulario-contato-wrapper * {\r\n      box-sizing: border-box;\r\n    }\r\n\r\n    \/* T\u00edtulo do Formul\u00e1rio *\/\r\n    .form-titulo {\r\n      font-size: 32px;\r\n      font-weight: 700;\r\n      text-align: center;\r\n      margin-bottom: 10px;\r\n      color: #233569;\r\n    }\r\n\r\n    .form-subtitulo {\r\n      font-size: 16px;\r\n      text-align: center;\r\n      margin-bottom: 40px;\r\n      color: #666666;\r\n    }\r\n\r\n    \/* Formul\u00e1rio *\/\r\n    .form-contato {\r\n      background: #ffffff;\r\n      border-radius: 12px;\r\n      padding: 40px;\r\n      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);\r\n    }\r\n\r\n    \/* Grid de Campos *\/\r\n    .form-grid {\r\n      display: grid;\r\n      grid-template-columns: repeat(2, 1fr);\r\n      gap: 20px;\r\n      margin-bottom: 20px;\r\n    }\r\n\r\n    .form-group {\r\n      margin-bottom: 20px;\r\n    }\r\n\r\n    .form-group.full-width {\r\n      grid-column: 1 \/ -1;\r\n    }\r\n\r\n    \/* Labels *\/\r\n    .form-label {\r\n      display: block;\r\n      font-size: 14px;\r\n      font-weight: 600;\r\n      margin-bottom: 8px;\r\n      color: #233569;\r\n    }\r\n\r\n    .form-label .required {\r\n      color: #e74c3c;\r\n      margin-left: 4px;\r\n    }\r\n\r\n    \/* Inputs *\/\r\n    .form-input,\r\n    .form-select,\r\n    .form-textarea {\r\n      width: 100%;\r\n      padding: 12px 16px;\r\n      font-size: 16px;\r\n      border: 2px solid #e0e0e0;\r\n      border-radius: 8px;\r\n      transition: all 0.3s ease;\r\n      font-family: inherit;\r\n      background: #ffffff;\r\n    }\r\n\r\n    .form-input:focus,\r\n    .form-select:focus,\r\n    .form-textarea:focus {\r\n      outline: none;\r\n      border-color: #3AB9EC;\r\n      box-shadow: 0 0 0 3px rgba(58, 185, 236, 0.1);\r\n    }\r\n\r\n    .form-input.error,\r\n    .form-select.error,\r\n    .form-textarea.error {\r\n      border-color: #e74c3c;\r\n    }\r\n\r\n    .form-textarea {\r\n      resize: vertical;\r\n      min-height: 120px;\r\n    }\r\n\r\n    \/* Mensagens de Erro *\/\r\n    .form-error {\r\n      display: none;\r\n      font-size: 12px;\r\n      color: #e74c3c;\r\n      margin-top: 6px;\r\n    }\r\n\r\n    .form-error.show {\r\n      display: block;\r\n    }\r\n\r\n    \/* Bot\u00e3o de Envio *\/\r\n    .form-submit-wrapper {\r\n      margin-top: 30px;\r\n      text-align: center;\r\n    }\r\n\r\n    .form-submit {\r\n      background: linear-gradient(135deg, #3AB9EC 0%, #2a8fc7 100%);\r\n      color: #ffffff;\r\n      border: none;\r\n      padding: 16px 48px;\r\n      font-size: 18px;\r\n      font-weight: 700;\r\n      border-radius: 8px;\r\n      cursor: pointer;\r\n      transition: all 0.3s ease;\r\n      min-width: 200px;\r\n      position: relative;\r\n      overflow: hidden;\r\n    }\r\n\r\n    .form-submit:hover:not(:disabled) {\r\n      transform: translateY(-2px);\r\n      box-shadow: 0 6px 20px rgba(58, 185, 236, 0.4);\r\n    }\r\n\r\n    .form-submit:active:not(:disabled) {\r\n      transform: translateY(0);\r\n    }\r\n\r\n    .form-submit:disabled {\r\n      opacity: 0.7;\r\n      cursor: not-allowed;\r\n    }\r\n\r\n    \/* Loading Spinner *\/\r\n    .form-submit .spinner {\r\n      display: none;\r\n      width: 20px;\r\n      height: 20px;\r\n      border: 3px solid rgba(255, 255, 255, 0.3);\r\n      border-top-color: #ffffff;\r\n      border-radius: 50%;\r\n      animation: spin 0.8s linear infinite;\r\n      margin-right: 10px;\r\n      vertical-align: middle;\r\n    }\r\n\r\n    .form-submit.loading .spinner {\r\n      display: inline-block;\r\n    }\r\n\r\n    @keyframes spin {\r\n      to { transform: rotate(360deg); }\r\n    }\r\n\r\n    \/* Mensagens de Feedback *\/\r\n    .form-message {\r\n      display: none;\r\n      padding: 16px 20px;\r\n      border-radius: 8px;\r\n      margin-top: 20px;\r\n      text-align: center;\r\n      font-weight: 600;\r\n    }\r\n\r\n    .form-message.show {\r\n      display: block;\r\n    }\r\n\r\n    .form-message.success {\r\n      background: #d4edda;\r\n      color: #155724;\r\n      border: 1px solid #c3e6cb;\r\n    }\r\n\r\n    .form-message.error {\r\n      background: #f8d7da;\r\n      color: #721c24;\r\n      border: 1px solid #f5c6cb;\r\n    }\r\n\r\n    \/* Responsividade *\/\r\n    @media (max-width: 768px) {\r\n      #formulario-contato-wrapper {\r\n        padding: 20px 16px;\r\n      }\r\n\r\n      .form-contato {\r\n        padding: 30px 20px;\r\n      }\r\n\r\n      .form-grid {\r\n        grid-template-columns: 1fr;\r\n        gap: 0;\r\n      }\r\n\r\n      .form-titulo {\r\n        font-size: 24px;\r\n      }\r\n\r\n      .form-subtitulo {\r\n        font-size: 14px;\r\n        margin-bottom: 30px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <h2 class=\"form-titulo\">Entre em Contato<\/h2>\r\n  <p class=\"form-subtitulo\">Preencha o formul\u00e1rio abaixo e nossa equipe entrar\u00e1 em contato em breve<\/p>\r\n\r\n  <form id=\"formContato\" class=\"form-contato\" novalidate>\r\n    <div class=\"form-grid\">\r\n      <!-- Nome -->\r\n      <div class=\"form-group\">\r\n        <label for=\"nome\" class=\"form-label\">\r\n          Nome <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"nome\" \r\n          name=\"nome\" \r\n          class=\"form-input\" \r\n          required \r\n          autocomplete=\"given-name\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-nome\">Por favor, preencha seu nome<\/span>\r\n      <\/div>\r\n\r\n      <!-- Sobrenome -->\r\n      <div class=\"form-group\">\r\n        <label for=\"sobrenome\" class=\"form-label\">\r\n          Sobrenome <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"sobrenome\" \r\n          name=\"sobrenome\" \r\n          class=\"form-input\" \r\n          required \r\n          autocomplete=\"family-name\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-sobrenome\">Por favor, preencha seu sobrenome<\/span>\r\n      <\/div>\r\n\r\n      <!-- E-mail -->\r\n      <div class=\"form-group\">\r\n        <label for=\"email\" class=\"form-label\">\r\n          E-mail Corporativo <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"email\" \r\n          id=\"email\" \r\n          name=\"email\" \r\n          class=\"form-input\" \r\n          required \r\n          autocomplete=\"email\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-email\">Por favor, insira um e-mail v\u00e1lido<\/span>\r\n      <\/div>\r\n\r\n      <!-- Celular -->\r\n      <div class=\"form-group\">\r\n        <label for=\"numeroCelular\" class=\"form-label\">\r\n          N\u00famero de Celular <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"tel\" \r\n          id=\"numeroCelular\" \r\n          name=\"numeroCelular\" \r\n          class=\"form-input\" \r\n          required \r\n          autocomplete=\"tel\"\r\n          placeholder=\"(00) 00000-0000\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-numeroCelular\">Por favor, insira um n\u00famero v\u00e1lido<\/span>\r\n      <\/div>\r\n\r\n      <!-- Cargo -->\r\n      <div class=\"form-group\">\r\n        <label for=\"cargo\" class=\"form-label\">\r\n          Cargo <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"cargo\" \r\n          name=\"cargo\" \r\n          class=\"form-input\" \r\n          required \r\n          autocomplete=\"organization-title\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-cargo\">Por favor, preencha seu cargo<\/span>\r\n      <\/div>\r\n\r\n      <!-- Nome da Empresa -->\r\n      <div class=\"form-group\">\r\n        <label for=\"nomeEmpresa\" class=\"form-label\">\r\n          Nome da Empresa <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"nomeEmpresa\" \r\n          name=\"nomeEmpresa\" \r\n          class=\"form-input\" \r\n          required \r\n          autocomplete=\"organization\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-nomeEmpresa\">Por favor, preencha o nome da empresa<\/span>\r\n      <\/div>\r\n\r\n      <!-- CNPJ -->\r\n      <div class=\"form-group full-width\">\r\n        <label for=\"cnpj\" class=\"form-label\">\r\n          CNPJ <span class=\"required\">*<\/span>\r\n        <\/label>\r\n        <input \r\n          type=\"text\" \r\n          id=\"cnpj\" \r\n          name=\"cnpj\" \r\n          class=\"form-input\" \r\n          required \r\n          placeholder=\"00.000.000\/0000-00\"\r\n        \/>\r\n        <span class=\"form-error\" id=\"error-cnpj\">Por favor, insira um CNPJ v\u00e1lido<\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Mensagens de Feedback -->\r\n    <div class=\"form-message\" id=\"formMessage\"><\/div>\r\n\r\n    <!-- Bot\u00e3o de Envio -->\r\n    <div class=\"form-submit-wrapper\">\r\n      <button type=\"submit\" class=\"form-submit\" id=\"submitBtn\">\r\n        <span class=\"spinner\"><\/span>\r\n        <span class=\"btn-text\">Enviar Formul\u00e1rio<\/span>\r\n      <\/button>\r\n    <\/div>\r\n  <\/form>\r\n<\/div>\r\n\r\n<script>\r\n(function() {\r\n  'use strict';\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ CONFIGURA\u00c7\u00d5ES - AJUSTE AQUI OS ENDPOINTS E CREDENCIAIS\r\n  \/\/ ====================================================================\r\n  const CONFIG = {\r\n    \/\/ URL do Google Apps Script (substitua pela sua URL)\r\n    googleAppsScriptUrl: 'https:\/\/script.google.com\/macros\/s\/AKfycbzZR0yV_SA03ZeFKdb-90kvte1JTHdaqpDPa9Sc4ICbxDJPfHQlBQ2sN-DiKRcfZN1xVA\/exec',\r\n    \r\n    \/\/ HubSpot API Key (substitua pela sua chave)\r\n    hubspotApiKey: 'SUA_HUBSPOT_API_KEY',\r\n    \r\n    \/\/ HubSpot Portal ID (substitua pelo seu portal ID)\r\n    hubspotPortalId: 'SEU_HUBSPOT_PORTAL_ID',\r\n    \r\n    \/\/ E-mail de destino para notifica\u00e7\u00f5es (opcional, se n\u00e3o usar Apps Script)\r\n    emailDestino: 'contato@exemplo.com'\r\n  };\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ INICIALIZA\u00c7\u00c3O\r\n  \/\/ ====================================================================\r\n  const form = document.getElementById('formContato');\r\n  const submitBtn = document.getElementById('submitBtn');\r\n  const formMessage = document.getElementById('formMessage');\r\n\r\n  \/\/ M\u00e1scaras de input\r\n  initMasks();\r\n\r\n  \/\/ Event listeners\r\n  form.addEventListener('submit', handleSubmit);\r\n  \r\n  \/\/ Valida\u00e7\u00e3o em tempo real\r\n  const inputs = form.querySelectorAll('input, select, textarea');\r\n  inputs.forEach(input => {\r\n    input.addEventListener('blur', validateField);\r\n    input.addEventListener('input', clearError);\r\n  });\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ M\u00c1SCARAS DE INPUT\r\n  \/\/ ====================================================================\r\n  function initMasks() {\r\n    \/\/ M\u00e1scara de telefone\r\n    const telefoneInput = document.getElementById('numeroCelular');\r\n    telefoneInput.addEventListener('input', function(e) {\r\n      let value = e.target.value.replace(\/\\D\/g, '');\r\n      if (value.length <= 11) {\r\n        value = value.replace(\/^(\\d{2})(\\d{5})(\\d{4}).*\/, '($1) $2-$3');\r\n        if (value.length < 14) {\r\n          value = value.replace(\/^(\\d{2})(\\d{4})(\\d{0,4}).*\/, '($1) $2-$3');\r\n        }\r\n        e.target.value = value;\r\n      }\r\n    });\r\n\r\n    \/\/ M\u00e1scara de CNPJ\r\n    const cnpjInput = document.getElementById('cnpj');\r\n    cnpjInput.addEventListener('input', function(e) {\r\n      let value = e.target.value.replace(\/\\D\/g, '');\r\n      if (value.length <= 14) {\r\n        value = value.replace(\/^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2}).*\/, '$1.$2.$3\/$4-$5');\r\n        e.target.value = value;\r\n      }\r\n    });\r\n  }\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ VALIDA\u00c7\u00c3O\r\n  \/\/ ====================================================================\r\n  function validateField(e) {\r\n    const field = e.target;\r\n    const fieldName = field.name;\r\n    const value = field.value.trim();\r\n    const errorElement = document.getElementById('error-' + fieldName);\r\n\r\n    \/\/ Remove classe de erro\r\n    field.classList.remove('error');\r\n    errorElement.classList.remove('show');\r\n\r\n    \/\/ Valida\u00e7\u00e3o espec\u00edfica por campo\r\n    let isValid = true;\r\n    let errorMessage = '';\r\n\r\n    switch(fieldName) {\r\n      case 'nome':\r\n      case 'sobrenome':\r\n      case 'cargo':\r\n      case 'nomeEmpresa':\r\n        if (value.length < 2) {\r\n          isValid = false;\r\n          errorMessage = 'Este campo deve ter pelo menos 2 caracteres';\r\n        }\r\n        break;\r\n\r\n      case 'email':\r\n        const emailRegex = \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/;\r\n        if (!emailRegex.test(value)) {\r\n          isValid = false;\r\n          errorMessage = 'Por favor, insira um e-mail v\u00e1lido';\r\n        }\r\n        break;\r\n\r\n      case 'numeroCelular':\r\n        const phoneDigits = value.replace(\/\\D\/g, '');\r\n        if (phoneDigits.length < 10 || phoneDigits.length > 11) {\r\n          isValid = false;\r\n          errorMessage = 'Por favor, insira um n\u00famero v\u00e1lido (10 ou 11 d\u00edgitos)';\r\n        }\r\n        break;\r\n\r\n      case 'cnpj':\r\n        const cnpjDigits = value.replace(\/\\D\/g, '');\r\n        if (cnpjDigits.length !== 14) {\r\n          isValid = false;\r\n          errorMessage = 'CNPJ deve ter 14 d\u00edgitos';\r\n        } else if (!validarCNPJ(cnpjDigits)) {\r\n          isValid = false;\r\n          errorMessage = 'CNPJ inv\u00e1lido';\r\n        }\r\n        break;\r\n    }\r\n\r\n    if (!isValid) {\r\n      field.classList.add('error');\r\n      errorElement.textContent = errorMessage;\r\n      errorElement.classList.add('show');\r\n    }\r\n\r\n    return isValid;\r\n  }\r\n\r\n  function clearError(e) {\r\n    const field = e.target;\r\n    field.classList.remove('error');\r\n    const errorElement = document.getElementById('error-' + field.name);\r\n    if (errorElement) {\r\n      errorElement.classList.remove('show');\r\n    }\r\n  }\r\n\r\n  function validateForm() {\r\n    let isValid = true;\r\n    const inputs = form.querySelectorAll('input[required], select[required], textarea[required]');\r\n    \r\n    inputs.forEach(input => {\r\n      const event = { target: input };\r\n      if (!validateField(event)) {\r\n        isValid = false;\r\n      }\r\n    });\r\n\r\n    return isValid;\r\n  }\r\n\r\n  \/\/ Valida\u00e7\u00e3o de CNPJ\r\n  function validarCNPJ(cnpj) {\r\n    cnpj = cnpj.replace(\/[^\\d]+\/g, '');\r\n    \r\n    if (cnpj.length !== 14) return false;\r\n    \r\n    \/\/ Elimina CNPJs conhecidos como inv\u00e1lidos\r\n    if (\/^(\\d)\\1+$\/.test(cnpj)) return false;\r\n    \r\n    \/\/ Valida\u00e7\u00e3o dos d\u00edgitos verificadores\r\n    let tamanho = cnpj.length - 2;\r\n    let numeros = cnpj.substring(0, tamanho);\r\n    let digitos = cnpj.substring(tamanho);\r\n    let soma = 0;\r\n    let pos = tamanho - 7;\r\n    \r\n    for (let i = tamanho; i >= 1; i--) {\r\n      soma += numeros.charAt(tamanho - i) * pos--;\r\n      if (pos < 2) pos = 9;\r\n    }\r\n    \r\n    let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n    if (resultado != digitos.charAt(0)) return false;\r\n    \r\n    tamanho = tamanho + 1;\r\n    numeros = cnpj.substring(0, tamanho);\r\n    soma = 0;\r\n    pos = tamanho - 7;\r\n    \r\n    for (let i = tamanho; i >= 1; i--) {\r\n      soma += numeros.charAt(tamanho - i) * pos--;\r\n      if (pos < 2) pos = 9;\r\n    }\r\n    \r\n    resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;\r\n    if (resultado != digitos.charAt(1)) return false;\r\n    \r\n    return true;\r\n  }\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ HANDLER DE SUBMISS\u00c3O\r\n  \/\/ ====================================================================\r\n  async function handleSubmit(e) {\r\n    e.preventDefault();\r\n\r\n    \/\/ Valida\u00e7\u00e3o\r\n    if (!validateForm()) {\r\n      showMessage('Por favor, corrija os erros no formul\u00e1rio', 'error');\r\n      return;\r\n    }\r\n\r\n    \/\/ Coleta dados do formul\u00e1rio\r\n    const formData = collectFormData();\r\n\r\n    \/\/ Desabilita bot\u00e3o e mostra loading\r\n    setLoading(true);\r\n\r\n    try {\r\n      \/\/ Executa integra\u00e7\u00f5es em paralelo\r\n      const results = await Promise.allSettled([\r\n        sendToGoogleAppsScript(formData),\r\n        sendToHubSpot(formData)\r\n      ]);\r\n\r\n      \/\/ Verifica resultados\r\n      const googleSuccess = results[0].status === 'fulfilled' && results[0].value.success;\r\n      const hubspotSuccess = results[1].status === 'fulfilled' && results[1].value.success;\r\n\r\n      if (googleSuccess || hubspotSuccess) {\r\n        showMessage('Formul\u00e1rio enviado com sucesso! Entraremos em contato em breve.', 'success');\r\n        form.reset();\r\n      } else {\r\n        const errors = [];\r\n        if (results[0].status === 'rejected') errors.push('Google Apps Script');\r\n        if (results[1].status === 'rejected') errors.push('HubSpot');\r\n        showMessage('Erro ao enviar formul\u00e1rio. Tente novamente mais tarde.', 'error');\r\n        console.error('Erros:', errors);\r\n      }\r\n    } catch (error) {\r\n      console.error('Erro ao processar formul\u00e1rio:', error);\r\n      showMessage('Erro ao enviar formul\u00e1rio. Tente novamente mais tarde.', 'error');\r\n    } finally {\r\n      setLoading(false);\r\n    }\r\n  }\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ COLETA DE DADOS\r\n  \/\/ ====================================================================\r\n  function collectFormData() {\r\n    return {\r\n      nome: document.getElementById('nome').value.trim(),\r\n      sobrenome: document.getElementById('sobrenome').value.trim(),\r\n      email: document.getElementById('email').value.trim(),\r\n      numeroCelular: document.getElementById('numeroCelular').value.replace(\/\\D\/g, ''),\r\n      cargo: document.getElementById('cargo').value.trim(),\r\n      nomeEmpresa: document.getElementById('nomeEmpresa').value.trim(),\r\n      cnpj: document.getElementById('cnpj').value.replace(\/\\D\/g, ''),\r\n      timestamp: new Date().toISOString()\r\n    };\r\n  }\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ INTEGRA\u00c7\u00c3O COM GOOGLE APPS SCRIPT\r\n  \/\/ ====================================================================\r\n  async function sendToGoogleAppsScript(data) {\r\n    try {\r\n      \/\/ Formata dados para o formato esperado pelo Apps Script\r\n      const payload = new URLSearchParams();\r\n      payload.append('fields[nome][value]', data.nome);\r\n      payload.append('fields[sobrenome][value]', data.sobrenome);\r\n      payload.append('fields[email][value]', data.email);\r\n      payload.append('fields[numeroCelular][value]', data.numeroCelular);\r\n      payload.append('fields[cargo][value]', data.cargo);\r\n      payload.append('fields[nomeEmpresa][value]', data.nomeEmpresa);\r\n      payload.append('fields[cnpj][value]', data.cnpj);\r\n\r\n      const response = await fetch(CONFIG.googleAppsScriptUrl, {\r\n        method: 'POST',\r\n        mode: 'no-cors', \/\/ Apps Script requer no-cors\r\n        headers: {\r\n          'Content-Type': 'application\/x-www-form-urlencoded',\r\n        },\r\n        body: payload.toString()\r\n      });\r\n\r\n      \/\/ Com no-cors, n\u00e3o podemos ler a resposta, mas assumimos sucesso\r\n      return { success: true };\r\n    } catch (error) {\r\n      console.error('Erro ao enviar para Google Apps Script:', error);\r\n      throw error;\r\n    }\r\n  }\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ INTEGRA\u00c7\u00c3O COM HUBSPOT\r\n  \/\/ ====================================================================\r\n  async function sendToHubSpot(data) {\r\n    try {\r\n      \/\/ Prepara dados para HubSpot\r\n      const hubspotData = {\r\n        properties: {\r\n          firstname: data.nome,\r\n          lastname: data.sobrenome,\r\n          email: data.email,\r\n          phone: data.numeroCelular,\r\n          jobtitle: data.cargo,\r\n          company: data.nomeEmpresa,\r\n          \/\/ Campos customizados (ajuste conforme necess\u00e1rio)\r\n          cnpj: data.cnpj\r\n        }\r\n      };\r\n\r\n      const response = await fetch(`https:\/\/api.hubapi.com\/contacts\/v1\/contact\/?hapikey=${CONFIG.hubspotApiKey}`, {\r\n        method: 'POST',\r\n        headers: {\r\n          'Content-Type': 'application\/json',\r\n        },\r\n        body: JSON.stringify(hubspotData)\r\n      });\r\n\r\n      if (!response.ok) {\r\n        const errorData = await response.json().catch(() => ({}));\r\n        throw new Error(`HubSpot API error: ${response.status} - ${JSON.stringify(errorData)}`);\r\n      }\r\n\r\n      const result = await response.json();\r\n      return { success: true, data: result };\r\n    } catch (error) {\r\n      console.error('Erro ao enviar para HubSpot:', error);\r\n      throw error;\r\n    }\r\n  }\r\n\r\n  \/\/ ====================================================================\r\n  \/\/ UTILIT\u00c1RIOS\r\n  \/\/ ====================================================================\r\n  function setLoading(loading) {\r\n    submitBtn.disabled = loading;\r\n    if (loading) {\r\n      submitBtn.classList.add('loading');\r\n      submitBtn.querySelector('.btn-text').textContent = 'Enviando...';\r\n    } else {\r\n      submitBtn.classList.remove('loading');\r\n      submitBtn.querySelector('.btn-text').textContent = 'Enviar Formul\u00e1rio';\r\n    }\r\n  }\r\n\r\n  function showMessage(message, type) {\r\n    formMessage.textContent = message;\r\n    formMessage.className = 'form-message show ' + type;\r\n    \r\n    \/\/ Scroll para a mensagem\r\n    formMessage.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\r\n\r\n    \/\/ Remove mensagem ap\u00f3s 5 segundos (apenas para sucesso)\r\n    if (type === 'success') {\r\n      setTimeout(() => {\r\n        formMessage.classList.remove('show');\r\n      }, 5000);\r\n    }\r\n  }\r\n})();\r\n<\/script>\r\n\r\n\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\n    <div class=\"xs_social_share_widget xs_share_url after_content \t\tmain_content  wslu-style-1 wslu-share-box-shaped wslu-fill-colored wslu-none wslu-share-horizontal wslu-theme-font-no wslu-main_content\">\n\n\t\t\n        <ul>\n\t\t\t        <\/ul>\n    <\/div> \n","protected":false},"excerpt":{"rendered":"<p>Entre em Contato Preencha o formul\u00e1rio abaixo e nossa equipe entrar\u00e1 em contato em breve Nome * Por favor, preencha seu nome Sobrenome * Por favor, preencha seu sobrenome E-mail Corporativo * Por favor, insira um e-mail v\u00e1lido N\u00famero de Celular * Por favor, insira um n\u00famero v\u00e1lido Cargo *<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-15006","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/taxationmind.com\/index.php\/elementor-15006\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"Entre em Contato Preencha o formul\u00e1rio abaixo e nossa equipe entrar\u00e1 em contato em breve Nome * Por favor, preencha seu nome Sobrenome * Por favor, preencha seu sobrenome E-mail Corporativo * Por favor, insira um e-mail v\u00e1lido N\u00famero de Celular * Por favor, insira um n\u00famero v\u00e1lido Cargo *\" \/>\n<meta property=\"og:url\" content=\"https:\/\/taxationmind.com\/index.php\/elementor-15006\/\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/taxationmind\/\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-21T14:49:45+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@mind_taxation\" \/>\n<meta name=\"twitter:label1\" content=\"Est. tempo de leitura\" \/>\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:\/\/taxationmind.com\/index.php\/elementor-15006\/\",\"url\":\"https:\/\/taxationmind.com\/index.php\/elementor-15006\/\",\"name\":\"\",\"isPartOf\":{\"@id\":\"https:\/\/taxationmind.com\/#website\"},\"datePublished\":\"2025-11-21T14:27:21+00:00\",\"dateModified\":\"2025-11-21T14:49:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/taxationmind.com\/index.php\/elementor-15006\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/taxationmind.com\/index.php\/elementor-15006\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/taxationmind.com\/index.php\/elementor-15006\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/taxationmind.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Elementor #15006\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/taxationmind.com\/#website\",\"url\":\"https:\/\/taxationmind.com\/\",\"name\":\"Taxation Mind\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/taxationmind.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/taxationmind.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/taxationmind.com\/#organization\",\"name\":\"Taxation Mind\",\"url\":\"https:\/\/taxationmind.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/taxationmind.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/taxationmind.com\/wp-content\/uploads\/2024\/01\/logo-taxation-azul.png\",\"contentUrl\":\"https:\/\/taxationmind.com\/wp-content\/uploads\/2024\/01\/logo-taxation-azul.png\",\"width\":666,\"height\":272,\"caption\":\"Taxation Mind\"},\"image\":{\"@id\":\"https:\/\/taxationmind.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/taxationmind\/\",\"https:\/\/x.com\/mind_taxation\",\"https:\/\/www.instagram.com\/taxationmind\/\",\"https:\/\/br.linkedin.com\/company\/taxationmind\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"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:\/\/taxationmind.com\/index.php\/elementor-15006\/","og_locale":"pt_BR","og_type":"article","og_description":"Entre em Contato Preencha o formul\u00e1rio abaixo e nossa equipe entrar\u00e1 em contato em breve Nome * Por favor, preencha seu nome Sobrenome * Por favor, preencha seu sobrenome E-mail Corporativo * Por favor, insira um e-mail v\u00e1lido N\u00famero de Celular * Por favor, insira um n\u00famero v\u00e1lido Cargo *","og_url":"https:\/\/taxationmind.com\/index.php\/elementor-15006\/","article_publisher":"https:\/\/www.facebook.com\/taxationmind\/","article_modified_time":"2025-11-21T14:49:45+00:00","twitter_card":"summary_large_image","twitter_site":"@mind_taxation","twitter_misc":{"Est. tempo de leitura":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/taxationmind.com\/index.php\/elementor-15006\/","url":"https:\/\/taxationmind.com\/index.php\/elementor-15006\/","name":"","isPartOf":{"@id":"https:\/\/taxationmind.com\/#website"},"datePublished":"2025-11-21T14:27:21+00:00","dateModified":"2025-11-21T14:49:45+00:00","breadcrumb":{"@id":"https:\/\/taxationmind.com\/index.php\/elementor-15006\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/taxationmind.com\/index.php\/elementor-15006\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/taxationmind.com\/index.php\/elementor-15006\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/taxationmind.com\/"},{"@type":"ListItem","position":2,"name":"Elementor #15006"}]},{"@type":"WebSite","@id":"https:\/\/taxationmind.com\/#website","url":"https:\/\/taxationmind.com\/","name":"Taxation Mind","description":"","publisher":{"@id":"https:\/\/taxationmind.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/taxationmind.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/taxationmind.com\/#organization","name":"Taxation Mind","url":"https:\/\/taxationmind.com\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/taxationmind.com\/#\/schema\/logo\/image\/","url":"https:\/\/taxationmind.com\/wp-content\/uploads\/2024\/01\/logo-taxation-azul.png","contentUrl":"https:\/\/taxationmind.com\/wp-content\/uploads\/2024\/01\/logo-taxation-azul.png","width":666,"height":272,"caption":"Taxation Mind"},"image":{"@id":"https:\/\/taxationmind.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/taxationmind\/","https:\/\/x.com\/mind_taxation","https:\/\/www.instagram.com\/taxationmind\/","https:\/\/br.linkedin.com\/company\/taxationmind"]}]}},"_links":{"self":[{"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/pages\/15006"}],"collection":[{"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/comments?post=15006"}],"version-history":[{"count":8,"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/pages\/15006\/revisions"}],"predecessor-version":[{"id":15017,"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/pages\/15006\/revisions\/15017"}],"wp:attachment":[{"href":"https:\/\/taxationmind.com\/index.php\/wp-json\/wp\/v2\/media?parent=15006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}