// === LIMPMIL — Shared utilities and small components ===

const SERVICES = [
  { id: "esgoto", icon: "🚿", title: "Desentupimento de Esgoto", desc: "Linha principal, ramais e tubulações externas." },
  { id: "pia", icon: "🍽️", title: "Desentupimento de Pia", desc: "Cozinha e área de serviço com equipamento próprio." },
  { id: "vaso", icon: "🚽", title: "Desentupimento de Vaso", desc: "Sem quebrar piso, sem sujeira, sem cheiro." },
  { id: "ralo", icon: "💧", title: "Desentupimento de Ralo", desc: "Banheiro, box, lavanderia e área externa." },
  { id: "gordura", icon: "🧴", title: "Limpeza de Caixa de Gordura", desc: "Sucção, limpeza e descarte adequado." },
  { id: "hidro", icon: "💦", title: "Hidrojateamento", desc: "Alta pressão para entupimentos severos e prevenção." },
  { id: "pluvial", icon: "🌧️", title: "Rede Pluvial", desc: "Desobstrução de águas pluviais e calhas." },
  { id: "industrial", icon: "🏭", title: "Desentupimento Industrial", desc: "Plantas industriais, condomínios e grandes prédios." },
];

const REGIONS = [
  "Setor Bueno", "Setor Oeste", "Jardim Goiás", "Jardim América", "Setor Marista", "Setor Sul",
  "Centro", "Eldorado", "Garavelo", "Flamboyant", "Jardim Europa", "Vila Brasília",
  "Nova Suíça", "Parque Amazônia", "Serrinha", "Campinas", "Goiá", "Pedro Ludovico",
  "Jardim Guanabara", "Vila Redenção", "Setor Coimbra", "Setor Aeroporto", "Alto da Glória",
  "Vila Alpes", "Jardim Novo Mundo", "Cidade Jardim", "Parque Anhanguera", "Vila Rosa",
  "Jardim Atlântico", "Alphaville", "Residencial Eldorado", "Setor Faiçalville",
  "Setor Bela Vista", "Parque Oeste Industrial", "Jardim Curitiba", "Jardim Presidente",
  "Vila Canaã", "Setor Negrão de Lima", "Jardim Balneário Meia Ponte", "Chácara do Governador"
];

const TESTIMONIALS = [
  { name: "Carlos M.", initials: "CM", place: "Setor Bueno", problem: "Esgoto entupido",
    text: "Resolveram meu esgoto em menos de 40 minutos no Setor Bueno. Atendimento muito profissional e o técnico explicou tudo que estava fazendo." },
  { name: "Renata S.", initials: "RS", place: "Jardim Goiás", problem: "Caixa de gordura",
    text: "Atendimento de madrugada, equipe chegou em 25 minutos. Limpeza completa da caixa de gordura sem sujar nada da cozinha. Recomendo demais." },
  { name: "Eduardo P.", initials: "EP", place: "Setor Marista", problem: "Vaso entupido",
    text: "Pensei que iam quebrar meu piso novo. Trouxeram um equipamento que resolveu sem mexer em nada. Preço justo e nota fiscal." },
  { name: "Aline F.", initials: "AF", place: "Flamboyant", problem: "Pia da cozinha",
    text: "Chamei domingo de manhã, atenderam super rápido. Em meia hora estava com a pia funcionando. Pagamento no Pix com desconto." },
  { name: "Marcelo R.", initials: "MR", place: "Jardim América", problem: "Hidrojateamento",
    text: "Condomínio com problema recorrente. Fizeram hidrojateamento completo na coluna e deram garantia de 90 dias. Profissional do começo ao fim." },
  { name: "Patrícia L.", initials: "PL", place: "Setor Oeste", problem: "Rede pluvial",
    text: "Chuva forte e a rede pluvial entupida. Em uma hora estavam aqui e em duas horas tudo resolvido. Salvaram minha garagem de alagar de novo." },
];

const FAQS = [
  { q: "Quanto custa o serviço de desentupimento?",
    a: "O orçamento é gratuito e sem compromisso. O valor depende do tipo de entupimento, equipamento necessário e localização. Você só paga se aprovar o orçamento — nada de taxa de visita." },
  { q: "Em quanto tempo vocês chegam?",
    a: "Nosso tempo médio em Goiânia e Aparecida é de 30 minutos. Em horários de pico ou regiões mais distantes pode levar até 60 minutos. Sempre informamos o tempo real no momento da ligação." },
  { q: "Vocês quebram piso ou parede?",
    a: "Não. Trabalhamos com equipamentos de última geração (cabos e hidrojateamento) que resolvem o problema sem quebrar nada. Em mais de 95% dos casos não há necessidade de obra." },
  { q: "Como funciona a garantia de 90 dias?",
    a: "Se o mesmo problema voltar a ocorrer dentro de 90 dias após o serviço, retornamos sem custo nenhum. Garantia válida para todos os serviços executados pela Limpmil." },
  { q: "Quais formas de pagamento vocês aceitam?",
    a: "Aceitamos Pix (com desconto à vista), dinheiro, cartão de débito e crédito (até 6x sem juros). Emitimos nota fiscal para empresas e residências." },
  { q: "Atendem na madrugada e finais de semana?",
    a: "Sim, plantão 24 horas, 7 dias por semana, inclusive feriados. O preço é o mesmo do horário comercial — sem taxa adicional por urgência ou madrugada." },
  { q: "Sou obrigado a contratar depois do orçamento?",
    a: "Não. O orçamento é totalmente gratuito e sem compromisso. Se não aprovar, nossa equipe vai embora sem cobrar nada — nem visita, nem deslocamento." },
];

const PROOF_STATS = [
  { num: "+18.000", lbl: "Atendimentos realizados" },
  { num: "30 min", lbl: "Tempo médio de chegada" },
  { num: "4.9 ★", lbl: "Avaliação no Google" },
  { num: "+10 anos", lbl: "De mercado em Goiânia" },
  { num: "90 dias", lbl: "Garantia em todo serviço" },
  { num: "24h", lbl: "Plantão todos os dias" },
];

const STEPS = [
  { num: 1, t: "Você chama", d: "Pelo WhatsApp ou ligação direta" },
  { num: 2, t: "Diagnóstico", d: "Identificamos o problema em minutos" },
  { num: 3, t: "Equipe a caminho", d: "Despacho imediato em até 30 min" },
  { num: 4, t: "Problema resolvido", d: "Sem quebra, sem sujeira, sem dor de cabeça" },
  { num: 5, t: "Garantia entregue", d: "Nota fiscal e 90 dias de cobertura" },
];

// Format BR phone: (62) 99842-2863
function maskPhone(v) {
  const digits = v.replace(/\D/g, "").slice(0, 11);
  if (digits.length <= 2) return digits.length ? `(${digits}` : "";
  if (digits.length <= 6) return `(${digits.slice(0,2)}) ${digits.slice(2)}`;
  if (digits.length <= 10) return `(${digits.slice(0,2)}) ${digits.slice(2,6)}-${digits.slice(6)}`;
  return `(${digits.slice(0,2)}) ${digits.slice(2,7)}-${digits.slice(7)}`;
}
function validPhone(v) {
  const digits = v.replace(/\D/g, "");
  return digits.length >= 10;
}

const COMPANY = {
  name: "LIMPMIL",
  tagline: "Desentupidora & Dedetizadora",
  phone: "(62) 99842-2863",
  phoneDigits: "5562998422863",
  city: "Goiânia",
};

function buildWA(message) {
  const text = encodeURIComponent(message || "Olá! Preciso de desentupimento urgente. Pode me atender?");
  return `https://wa.me/${COMPANY.phoneDigits}?text=${text}`;
}

function trackEvent(event, params) {
  window.dataLayer = window.dataLayer || [];
  window.dataLayer.push({ event, ...(params || {}) });
}

function waClick(source, message) {
  trackEvent("whatsapp_click", {
    source,
    message: message || "default",
    page_location: location.href,
  });
}

function openWA(message) {
  window.open(buildWA(message), "_blank");
}

function Logo({ light }) {
  return (
    <a href="#top" className={`logo logo-img ${light ? "logo-light" : ""}`} aria-label="Limpmil">
      <img src="assets/limpmil-logo.png" alt="Limpmil — Dedetização e Desentupimento" />
    </a>
  );
}

function PhonePulse() {
  return (
    <a href={`tel:+${COMPANY.phoneDigits}`} className="phone-pulse" onClick={() => trackEvent("phone_click", { source: "topbar" })}>
      <span className="phone-dot"></span>
      {COMPANY.phone}
    </a>
  );
}

function Stars({ value = 5 }) {
  return (
    <span className="stars" aria-label={`${value} estrelas`}>
      {"★".repeat(value)}{"☆".repeat(5 - value)}
    </span>
  );
}

function Topbar({ tweaks }) {
  return (
    <header className="topbar" id="top">
      <div className="container topbar-inner">
        <Logo />
        <div className="topbar-actions">
          <PhonePulse />
          <a className="btn btn-ghost" href={`tel:+${COMPANY.phoneDigits}`} onClick={() => trackEvent("phone_click", { source: "topbar_btn" })}>
            <span>📞</span> Ligar Agora
          </a>
          <a className="btn btn-whatsapp pht-whatsapp" data-widget="3395" href={buildWA()} target="_blank" rel="noopener" onClick={() => waClick("topbar")}>
            <span>💬</span> WhatsApp
          </a>
        </div>
      </div>
    </header>
  );
}

Object.assign(window, {
  SERVICES, REGIONS, TESTIMONIALS, FAQS, PROOF_STATS, STEPS, COMPANY,
  maskPhone, validPhone, buildWA, openWA, trackEvent, waClick,
  Logo, PhonePulse, Stars, Topbar,
});
