// ============================================================ // CONTACT: Tapform + FAQ + Footer // ============================================================ const QUESTIONS = [ { key: 'objetivo', label: '01', q: 'O que você precisa hoje?', options: [ 'Gerar mais clientes (tráfego)', 'Organizar atendimento (CRM)', 'Automatizar processos repetitivos', 'Criar / refazer site', 'Tudo isso junto', 'Ainda não sei direito', ] }, { key: 'porte', label: '02', q: 'Quantos clientes novos você quer fechar por mês?', options: [ '1 a 5', '5 a 15', '15 a 30', '30 ou mais', ] }, { key: 'faturamento', label: '03', q: 'Quanto fatura por mês hoje?', options: [ 'Até R$ 10.000', 'R$ 10.000 – R$ 30.000', 'R$ 30.000 – R$ 100.000', 'R$ 100.000+', 'Prefiro não dizer agora', ] }, { key: 'canal', label: '04', q: 'Como prefere a primeira conversa?', options: [ 'WhatsApp', 'Call no Google Meet', 'E-mail', ] }, ]; function Tapform() { const [step, setStep] = React.useState(0); const [answers, setAnswers] = React.useState({}); const [contact, setContact] = React.useState({ nome: '', whatsapp: '' }); const [done, setDone] = React.useState(false); const totalSteps = QUESTIONS.length + 1; // +1 for contact const isFinal = step === QUESTIONS.length; const current = QUESTIONS[step]; function pick(opt) { setAnswers(prev => ({ ...prev, [current.key]: opt })); setTimeout(() => setStep(s => s + 1), 220); } function back() { setStep(s => Math.max(0, s - 1)); } function submit() { if (!contact.nome || !contact.whatsapp) return; setDone(true); } if (done) { return (

Recebido, {contact.nome.split(' ')[0]}.

A gente vai te chamar no WhatsApp ainda hoje. Se preferir adiantar, é só abrir a conversa agora mesmo.

Abrir conversa agora
); } return (
{Array.from({ length: totalSteps }).map((_, i) => ( ))}
{!isFinal && ( <>
{current.label} · pergunta {step + 1} de {totalSteps}
{current.q}
{current.options.map((opt, i) => ( ))}
)} {isFinal && ( <>
05 · seus contatos · último passo
Beleza. Como te chamamos?
setContact({ ...contact, nome: e.target.value })} autoFocus />
setContact({ ...contact, whatsapp: e.target.value })} />
A gente responde em até 2h úteis. Sem spam, prometo.
)}
{step + 1} / {totalSteps}
); } function CalendlyEmbed() { React.useEffect(() => { // load Calendly widget script once if (document.querySelector('script[data-calendly]')) return; const s = document.createElement('script'); s.src = 'https://assets.calendly.com/assets/external/widget.js'; s.async = true; s.setAttribute('data-calendly', 'true'); document.body.appendChild(s); }, []); return (
agendamento direto
horários ao vivo
); } function Contato() { const [mode, setMode] = React.useState('calendly'); // 'calendly' | 'form' return (
09 · vamos conversar

Agenda 30 minutos.
Sai com um plano.

Diagnóstico gratuito por Google Meet. Sem proposta longa, sem cobrança escondida. Só pra entender se faz sentido a gente trabalhar junto.

{mode === 'calendly' ? ( <> ) : ( <> )}
); } function ContatoSideInfo({ compact }) { return (
contato direto

Prefere chamar no WhatsApp?

e.currentTarget.style.background = 'rgba(255,255,255,0.08)'} onMouseLeave={e => e.currentTarget.style.background = 'rgba(255,255,255,0.04)'}>
WhatsApp Apta
Abrir conversa agora
{!compact && ( <>
E-mail
contato@aptamarketingdigital.com.br
Horário · Ribeirão Preto / SP
Seg – Sex · 9h às 19h
)}
// respondemos no mesmo dia útil.
// sem chatbot, fala com pessoa.
); } // ============================================================ // FAQ // ============================================================ const FAQS = [ { q: 'A Apta atende fora de Ribeirão Preto?', a: 'Sim. Hoje atendemos clientes em Franca, Limeira, Araras, Uberaba, São Paulo capital e outras cidades. Tudo é feito remotamente — call no Google Meet pra estratégia, WhatsApp pra operação do dia a dia.' }, { q: 'Vocês têm contrato de fidelidade?', a: 'Não. A gente trabalha com cobrança mensal recorrente, com nota fiscal emitida pela Apta. Se em algum mês não fizer mais sentido, basta avisar com 30 dias. Sem multa, sem letra miúda.' }, { q: 'O que diferencia a Apta de outras agências?', a: 'Três coisas: (1) somos Google Partner e parceiros oficiais Kommo CRM, então temos acesso a recursos que freelancers não têm (incluindo cupom de R$1.200 em mídia pra novos anunciantes); (2) somos especialistas em implantação de IA — configuramos automações e atendimento inteligente que respondem 24/7, reduzindo custo e aumentando velocidade; (3) você fala diretamente com o sócio, não com gerente de conta intermediário.' }, { q: 'A automação com IA substitui meu vendedor?', a: 'Não. Ela substitui o tempo que o seu vendedor perde respondendo "qual o preço?" 80 vezes por dia. A IA qualifica, organiza no CRM e só passa pro humano o lead que tá pronto pra comprar. O vendedor fecha mais vendendo menos.' }, { q: 'Quanto tempo leva pra começar a ver resultado?', a: 'Setup técnico: 7 a 14 dias. As primeiras impressões e cliques do Google Ads começam na primeira semana — mas é importante deixar a campanha rodar 15 a 30 dias antes de tirar conclusões: o algoritmo precisa aprender, a página de destino precisa validar qualidade e a gente precisa ajustar palavras-chave, públicos e criativos com base nos primeiros dados. Otimização real (custo por lead caindo, conversão subindo) acontece a partir do segundo mês. Marketing digital não é mágica — é experimentação rápida e leitura de dados.' }, { q: 'Vocês fazem site também?', a: 'Sim — Hostinger + Divi/Elementor (WordPress) ou Wix, dependendo do caso. Pra projetos novos a gente já vem entregando em stack mais moderna, com IA configurada desde o início. Conversa com a gente que a gente vê o melhor pra você.' }, { q: 'Vocês trabalham com qualquer nicho?', a: 'A gente tem mais experiência com revendas de gás, distribuidoras, prestadores de serviço (advocacia, saúde, jardinagem), oficinas e e-commerce pequeno-médio. Mas o que a gente entrega — tráfego + CRM + automação — serve pra qualquer negócio que recebe lead pelo telefone, formulário ou WhatsApp.' }, ]; function FAQ() { const [open, setOpen] = React.useState(0); return (
10 · perguntas frequentes

Tá em dúvida?
Provavelmente a gente já respondeu.

{FAQS.map((f, i) => (

{f.a}

))}
); } // ============================================================ // FOOTER // ============================================================ function Footer() { return ( ); } Object.assign(window, { Tapform, Contato, FAQ, Footer });