/* global React */ const { useState, useEffect, useRef, useMemo, useCallback } = React; // ─── Icons (inline, currentColor) ─── const Icon = { arrow: (p) => ( ), plus: (p) => ( ), check: (p) => ( ), star: (p) => ( ), whatsapp: (p) => ( ), shield: (p) => ( ), privacy: (p) => ( ), hotmart: (p) => ( ), method: (p) => ( ), process: (p) => ( ), label: (p) => ( ), brain: (p) => ( ), sales: (p) => ( ), grid: (p) => ( ), form: (p) => ( ), planner: (p) => ( ), chat: (p) => ( ), community: (p) => ( ), simbolo: (p) => ( ), }; // ─── Logo block (full wordmark image) ─── function Logo({size = "md"}) { const heights = {sm: 22, md: 56, lg: 80}; const h = heights[size] || heights.md; return (
CCA — Cosmetologia Consciente aplicada
); } // ─── Scroll Reveal hook ─── function useReveal() { const ref = useRef(null); useEffect(() => { const el = ref.current; if (!el) return; const io = new IntersectionObserver((entries) => { entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add("is-in"); io.unobserve(e.target); } }); }, {threshold: 0.12, rootMargin: "0px 0px -8% 0px"}); el.querySelectorAll(".reveal").forEach(n => io.observe(n)); return () => io.disconnect(); }, []); return ref; } // ─── CTA Button ─── function CTA({children = "Quero entrar no CCA", style, className = ""}) { return ( {children} ); } // Export to window Object.assign(window, {Icon, Logo, useReveal, CTA});