// ============================================
// Shared components: Header, Footer, FloatingWA, LeadModal, Reveal, Accordion
// ============================================
const { useState, useEffect, useRef, useCallback } = React;
const WA_NUMBER = "5511942107127";
const WA_MSG = encodeURIComponent(
"Olá! Vim pelo site do Albuini Advogados e gostaria de fazer a análise gratuita do meu contrato."
);
const WA_LINK = `https://wa.me/${WA_NUMBER}?text=${WA_MSG}`;
// ---- Reveal on scroll ----
function Reveal({ children, delay = 0, as: As = "div", className = "", ...props }) {
const ref = useRef(null);
const [shown, setShown] = useState(false);
useEffect(() => {
if (!ref.current) return;
const obs = new IntersectionObserver(
(entries) => {
entries.forEach((e) => {
if (e.isIntersecting) {
setShown(true);
obs.disconnect();
}
});
},
{ threshold: 0.12, rootMargin: "0px 0px -60px 0px" }
);
obs.observe(ref.current);
return () => obs.disconnect();
}, []);
const delayClass = delay ? `delay-${delay}` : "";
return (
);
}
// ---- Header ----
function Header({ openModal }) {
const [scrolled, setScrolled] = useState(false);
useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 40);
window.addEventListener("scroll", onScroll, { passive: true });
return () => window.removeEventListener("scroll", onScroll);
}, []);
return (
Te redirecionamos pro WhatsApp em instantes pra você concluir o envio dos documentos. Resposta da análise em até 5 dias úteis, sem compromisso.
OAB/SP 504.166
Análise gratuita do contrato em até 5 dias úteis. Sem compromisso.
Atuamos especificamente em direito bancário. Selecione abaixo:
Estimativa do saldo devedor atual. Usado só pra estimar o caso — você confirma na análise.
Vamos te chamar no WhatsApp pra receber os documentos e confirmar o caso.