/* ── LANDING SECTIONS 2 ───────────────────────────────────────────── */ /* ── PRICING ─────────────────────────────────────────────────────── */ function PricingSection() { const [billing, setBilling] = useState("monthly"); // monthly | yearly const yearlyOff = 0.2; // 20% off // Toggle slider sizing — measure each button so the dark pill matches the // active one's real width (the "yearly SAVE 20%" button is wider). const btnRefs = useRef({ monthly: null, yearly: null }); const [sliderPos, setSliderPos] = useState({ left: 4, width: 0 }); useEffect(() => { const measure = () => { const btn = btnRefs.current[billing]; if (btn) setSliderPos({ left: btn.offsetLeft, width: btn.offsetWidth }); }; measure(); window.addEventListener("resize", measure); return () => window.removeEventListener("resize", measure); }, [billing]); const PLANS = [ { name: "Starter", audience: "Solo agents", price: 499, note: "Validate your first sales workflow", cta: "Get Started", featured: false, features: ["500 leads", "1 integration source", "Booking calendar + 1 link", "Basic dashboard", "2 team members"] }, { name: "Growth", audience: "Growing teams", price: 2499, note: "Capture and manage multiple sources", cta: "Get Started", featured: false, features: ["Unlimited leads", "All 4 integrations", "Lead analysis & reporting", "5 booking links", "5 team members"] }, { name: "Pro", audience: "Automation-ready", price: 4999, note: "Add email follow-ups and exports", cta: "Get Started", featured: false, features: ["Everything in Growth", "Email automation (3 flows)", "CSV data export", "10 booking links", "10 team members"] }, { name: "Business", audience: "WhatsApp-first", price: 8999, note: "Best fit once inbound volume grows", cta: "Get Started", featured: true, features: ["Everything in Pro", "WhatsApp automation (5 flows)", "Custom WA templates", "Unlimited booking links", "20 team members"] }, { name: "Enterprise", audience: "Full automation", price: 14999, note: "For custom scale and API needs", cta: "Contact us", featured: false, features: ["Everything in Business", "SMS automation (4 flows)", "Unlimited team members", "API access", "Priority support"] }, ]; function priceFor(p) { return billing === "yearly" ? Math.round(p.price * (1 - yearlyOff)) : p.price; } return (

Pricing

Pick a plan and go live today. Your pipeline, your pace.

{/* Billing toggle */}
{/* slider */} {["monthly", "yearly"].map(b => ( ))}
{PLANS.map((p, i) => (
{/* featured glow */} {p.featured && ( <>
Best fit )}

{p.name}

{p.audience}

{priceFor(p).toLocaleString("en-IN")} /mo
{billing === "yearly" && (

billed yearly · ₹{(priceFor(p) * 12).toLocaleString("en-IN")}/yr

)}

{p.note}

{p.cta}
    {p.features.map(f => (
  • {f}
  • ))}
))}
See full plan comparison →
); } /* ── FAQ ─────────────────────────────────────────────────────────── */ function FAQSection() { const ITEMS = [ { q: "How long does setup actually take?", a: "Under 5 minutes for the basic setup. Connect your ad accounts via OAuth, map your stages, invite your team, and you're live. Most accounts see their first auto-captured lead within 10 minutes." }, { q: "Can I migrate from HubSpot or Pipedrive?", a: "Yes — drop in a CSV export from any major CRM and our field-mapping wizard handles the rest. For Growth and Enterprise plans, our team can do the migration for you." }, { q: "Do you store my customer data securely?", a: "All data is encrypted at rest (AES-256) and in transit (TLS 1.3). We're SOC 2 Type II audited, GDPR-compliant, and offer EU data residency on Enterprise plans." }, { q: "What happens after my 15-day trial?", a: "Your account stays active in read-only mode for 30 days, so nothing is lost. Pick a plan whenever you're ready, or export your data anytime. It's yours." }, { q: "Is there an API?", a: "Yes — a full REST API plus webhooks on every plan. Pair it with n8n or Zapier for no-code workflows, or build custom integrations end-to-end." }, ]; const [open, setOpen] = useState(0); return (

FAQ

{ITEMS.map((it, i) => { const isOpen = open === i; return (

{it.a}

); })}
); } /* ── FINAL CTA (with pulse rings) ─────────────────────────────────── */ function FinalCTA() { // live ticker counter const [leads, setLeads] = useState(2840); useEffect(() => { const t = setInterval(() => setLeads(l => l + Math.floor(Math.random() * 3) + 1), 1500); return () => clearInterval(t); }, []); return (
{/* radial glow */}
{/* floating orbs */}
{/* sparkle particles */} {[ { x: "12%", y: "20%", c: "#C9A227", s: 8, d: 0 }, { x: "88%", y: "26%", c: "#3b82f6", s: 6, d: 1.2 }, { x: "18%", y: "78%", c: "#8b5cf6", s: 7, d: 2.4 }, { x: "82%", y: "72%", c: "#10b981", s: 6, d: 0.6 }, { x: "50%", y: "12%", c: "#C9A227", s: 5, d: 1.8 }, { x: "8%", y: "50%", c: "#ef4444", s: 5, d: 2.8 }, { x: "92%", y: "48%", c: "#C9A227", s: 6, d: 3.2 }, { x: "30%", y: "88%", c: "#3b82f6", s: 5, d: 0.9 }, ].map((p, i) => ( ))}
{/* pulse rings */}
{[0, 1, 2, 3].map(i => ( ))}
{/* social proof */}
{["#3b82f6","#8b5cf6","#10b981","#C9A227","#ef4444"].map((c, i) => ( {["P","S","A","R","V"][i]} ))}
{[0,1,2,3,4].map(i => ( ))} 4.9

Trusted by 500+ sales teams


Start with a clean lead capture and follow-up system from day one. Get set up in minutes — no credit card required.

{/* Live counter */}
Live {leads.toLocaleString()} leads captured today across all teams
{/* trust badges */}
{[ { label: "Live in", val: "5 min", color: "#3b82f6" }, { label: "Free for", val: "15 days", color: "#10b981" }, { label: "Migration", val: "Done-for-you", color: "#8b5cf6" }, { label: "Cancel", val: "Anytime", color: "#C9A227" }, ].map((t, i) => (

{t.label}

{t.val}

))}
); } function StaggerLine({ words, startDelay = 0, gold = false }) { const ref = useRef(null); const seen = useInView(ref); return ( {words.map((w, i) => ( {w} {i < words.length - 1 ? " " : ""} ))} ); } /* ── FULL FOOTER ──────────────────────────────────────────────────── */ function FullFooter() { return ( ); } Object.assign(window, { PricingSection, FAQSection, FinalCTA, FullFooter });