/* Shared UI primitives for the R3 Club landing page */ const { useState, useEffect, useRef } = React; /* ---------- Scarcity bar (sticky top) ---------- */ function ScarcityBar({ seatsLeft = 7, showCounter = true }) { return (
Lote 1 aberto {showCounter && ( · {seatsLeft} vagas restantes )} · R$ 30.000 {/* Solicitar informações → */}
); } /* ---------- Top nav ---------- */ function Nav() { const [scrolled, setScrolled] = useState(false); useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 24); onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); return (
R3 Club Solicitar informações
); } /* ---------- Section eyebrow / number ---------- */ function SectionHeader({ number, eyebrow, children, align = "left" }) { return (
{number && {number}} {eyebrow && {eyebrow}}

{children}

); } /* ---------- Image placeholder ---------- */ function ImageSlot({ label, ratio = "4 / 5", className = "" }) { return (
{label}
); } /* ---------- FAQ accordion ---------- */ function FaqItem({ q, a, defaultOpen = false }) { const [open, setOpen] = useState(defaultOpen); return (
); } /* ---------- Floating WhatsApp ---------- */ function FloatingWhats() { return ( Falar com o R3 Club ); } Object.assign(window, { ScarcityBar, Nav, SectionHeader, ImageSlot, FaqItem, FloatingWhats, });