/* Blackstock shared primitives */
/* Hook: detecta viewport mobile (≤ 720px) y se actualiza al rotar/redimensionar.
* Se usa para decidir si renderizar HomePage (desktop) o HomeMobile.
* SSR-safe: durante el primer render server-side devuelve false; en cliente
* se sincroniza tras montaje. */
const useIsMobile = (breakpoint = 720) => {
const [isMobile, setIsMobile] = React.useState(() => {
if (typeof window === 'undefined') return false;
return window.matchMedia(`(max-width: ${breakpoint}px)`).matches;
});
React.useEffect(() => {
const mql = window.matchMedia(`(max-width: ${breakpoint}px)`);
const onChange = (e) => setIsMobile(e.matches);
setIsMobile(mql.matches);
if (mql.addEventListener) mql.addEventListener('change', onChange);
else mql.addListener(onChange); // Safari < 14
return () => {
if (mql.removeEventListener) mql.removeEventListener('change', onChange);
else mql.removeListener(onChange);
};
}, [breakpoint]);
return isMobile;
};
window.useIsMobile = useIsMobile;
const LogoMark = ({ size = 22 }) => (
);
const Logo = ({ size = 22 }) => (
e.preventDefault()}>