// hero.jsx — three hero variants + blueprint tower crane. Exports: Hero → window const { useState: _useState } = React; const WA_HERO = "https://wa.me/5491150522993?text=" + encodeURIComponent("Hola Grupo Remodelar 👷 quisiera pedir un presupuesto para mi obra."); // ── Blueprint tower crane (geometric line drawing, gently animated) ────────── function Crane() { const S = { stroke: "rgba(255,255,255,0.26)", strokeWidth: 1.5, fill: "none" }; const A = { stroke: "var(--gr-yellow)", strokeWidth: 1.8, fill: "none" }; return ( ); } // ── shared bits ────────────────────────────────────────────────────────────── function HeroEyebrow({ pulse = true }) { return (
Construcción · Remodelación · Flipping · CABA y GBA
); } function HeroActions() { return (
Cotización gratis WhatsApp directo
); } function HeroStats() { return (
+
Años de oficio
+
Obras entregadas
m² intervenidos
); } function ScrollHint() { return (
Desplazá para construir
); } // ── Animated architectural blueprint (draws itself, loops) ─────────────────── function BlueprintMotion() { // pathLength="1" normalizes the draw animation across every shape. const P = { pathLength: 1, className: "draw" }; const d = (i) => ({ ...P, style: { animationDelay: (i * 0.22).toFixed(2) + "s" } }); return ( ); } // ── Variant A — blueprint ───────────────────────────────────────────────────── function HeroA() { return (
+ ESC 1:50 · PROYECTO EN CURSO
N 34°36′ · OBRA #001 +

Construcción y remodelación.

Somos los profesionales que necesitás para tu nueva obra.

Construcción y remodelación integral de propiedades residenciales y comerciales en CABA y GBA.

); } // ── Variant B — split (with "obra en vivo" video module) ────────────────────── function TimeCode() { const [s, setS] = React.useState(0); React.useEffect(() => { const id = setInterval(() => setS((x) => x + 1), 1000); return () => clearInterval(id); }, []); const mm = String(Math.floor(s / 60)).padStart(2, "0"); const ss = String(s % 60).padStart(2, "0"); return {mm}:{ss}:00; } function VideoObra() { const [src, setSrc] = React.useState(null); const inputRef = React.useRef(null); const vidRef = React.useRef(null); const onFile = (e) => { const f = e.target.files && e.target.files[0]; if (!f) return; setSrc(URL.createObjectURL(f)); }; React.useEffect(() => { if (src && vidRef.current) {vidRef.current.load();const p = vidRef.current.play();if (p && p.catch) p.catch(() => {});} }, [src]); return (
{src &&