/* URBANITY SALES SITE — App shell (loads last) */
(function () {
  const UK = window.UK;
  const { StickyCTABar } = UK.DS;
  const {
    Header, Hero, Prisma, Numeros, Tipologias, Galeria, Conceito,
    Lazer, Plantas, Localizacao, Configurador, Prova, CTAFinal, Footer, DATA,
  } = UK;

  function App() {
    const [pastHero, setPastHero] = React.useState(false);
    React.useEffect(() => {
      UK.fx.initAll();
      const hero = document.querySelector(".hero");
      if (!hero || !("IntersectionObserver" in window)) { setPastHero(true); return; }
      const io = new IntersectionObserver(
        (entries) => entries.forEach((e) => setPastHero(!e.isIntersecting)),
        { threshold: 0.08 }
      );
      io.observe(hero);
      return () => io.disconnect();
    }, []);

    return (
      <div className="site">
        <Header />
        <main>
          <Hero />
          <Prisma />
          <Numeros />
          <Tipologias />
          <Galeria />
          <Conceito />
          <Lazer />
          <Plantas />
          <Localizacao />
          <Configurador />
          <Prova />
          <CTAFinal />
        </main>
        <Footer />
        <div className="sticky-spacer"></div>
        <div className="sticky-host">
          <StickyCTABar num={DATA.wa} scheduleHref={`https://wa.me/${DATA.wa}?text=${encodeURIComponent("Olá! Quero agendar uma visita ao decorado do URBANITY.")}`} visible={pastHero} />
        </div>
      </div>
    );
  }

  ReactDOM.createRoot(document.getElementById("app")).render(<App />);
  // Poll until React has committed the DOM, then init the signature effects once.
  let tries = 0;
  (function kick() {
    if (UK.fx.initAll()) return;
    if (tries++ < 80) setTimeout(kick, 40);
  })();
})();
