// ─── SECTIONS D: Proceso, Garantía, Precio, FAQ, CTA, Footer ─────────── const { useEffect: useEffD, useState: useStD, useRef: useRefD } = React; // ─── PROCESO ─────────────────────────────────────────────────────────── function Proceso() { const steps = [ { when: "Semana 1", title: "Te conocemos a fondo", active: true, final: false, body: "Briefing de tu despacho, especialidades y competencia. Diseñamos las creatividades y el copy de los anuncios. El día 7 las campañas están activas." }, { when: "Semana 2", title: "Llegan los primeros leads", active: true, final: false, body: "Empiezas a recibir contactos cualificados directamente en tu CRM. Solo personas con caso real, que te contactan exclusivamente a ti." }, { when: "Semana 3–4", title: "Optimizamos y escalamos", active: false, final: false, body: "Analizamos qué funciona mejor, reducimos el coste por lead y aumentamos el volumen. Tú te concentras en cerrar. Nosotros en llenar el pipeline." }, { when: "Mes 2+", title: "Pipeline estable y predecible", active: false, final: true, body: "Leads entrando cada semana. Facturación creciente y controlada. Sin depender del boca a boca nunca más." }, ]; return (
Resultados · Despacho jurídico

Así trabajamos contigo, semana a semana.

Lo que ocurre desde que arrancamos hasta que tienes el pipeline lleno.

{steps.map((s, i) => (
{s.when}
{s.title}
{s.body}
))}
); } // ─── GARANTÍA ────────────────────────────────────────────────────────── function Garantia() { return (
La garantía

Garantizamos el mínimo. Si no llegamos, te devolvemos los honorarios.

Nuestra garantía de rendimiento.

{PLANS.map((p, i) => (
{p.label}
{p.leads}
leads cualificados al mes
{p.adBudget}€/mes en publicidad
Garantizados o devolvemos honorarios
))}
Sin permanencia · Sin letra pequeña
Si en algún momento no estás satisfecho, te vas sin penalizaciones. Mes a mes.
Ver qué plan te conviene
); } // ─── PRECIO ──────────────────────────────────────────────────────────── function Precio() { const features = [ "Gestión completa de captación digital", "CRM incluido GRATIS (valor 3.000€/año)", "Guiones y edición de vídeo para creatividades", "Asesoramiento comercial y guiones de llamada", "Soporte directo 24/7 sin intermediarios", "Gestión comercial incluida cuando es necesario", "Garantía: leads prometidos o devolvemos honorarios", ]; const vsItems = [ { label: "Gestión captación digital", price: "800–1.500€/mes" }, { label: "CRM externo", price: "150–300€/mes" }, { label: "Producción vídeo + guion", price: "400–800€ / pieza" }, { label: "Asesor comercial", price: "500–1.000€/mes" }, ]; return (
La propuesta

Todo incluido. Sin letra pequeña.

Paquete completo Legalketing
800
€/mes + IVA · Sin permanencia · Garantía incluida
{features.map((f, i) =>
{f}
)}
Hablar ahora
Lo que costaría por separado en el mercado
{vsItems.map((item, i) => (
{item.label} {item.price}
))}
Total mercado +2.000€/mes
Todo incluido. Con garantía. Sin permanencia. Especialistas en despachos de abogados.
); } // ─── FAQ ─────────────────────────────────────────────────────────────── function FAQ() { const [open, setOpen] = useStD(null); return (
Preguntas frecuentes

Las dudas que tiene todo abogado.

{FAQS.map((faq, i) => (
setOpen(e.target.open ? i : null)} > {String(i + 1).padStart(2, "0")} {faq.q}
{faq.a}
))}
¿Tienes más preguntas? Te respondo en menos de 2 horas. Preguntar ahora
); } // ─── CTA FINAL ───────────────────────────────────────────────────────── function CTAFinal() { return (

La única decisión
es cuándo.

Cada semana que pasa sin un sistema de captación, es una semana de boca a boca que no escala, de pipeline irregular y de depender de que alguien te recomiende. Tus competidores ya están generando leads mientras lees esto.

Hablar ahora gratis Sin permanencia · Respuesta en <2h · Primeros leads sem. 1
); } // ─── FOOTER ──────────────────────────────────────────────────────────── function FooterSection() { const year = new Date().getFullYear(); return ( ); } // ─── FAB ─────────────────────────────────────────────────────────────── function Fab() { const [show, setShow] = useStD(false); useEffD(() => { const onScroll = () => setShow(window.scrollY > 400); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); return ( ); }