/* construccion-sections.jsx — Nav, Hero (+ ObraMock), Problema, IdeaCentral
   Triaz para Construcción · conversion landing                            */

/* ============================================================ */
/*  NAV                                                          */
/* ============================================================ */

function Nav() {
  const [scrolled, setScrolled] = React.useState(false);
  React.useEffect(() => {
    const onScroll = () => setScrolled(window.scrollY > 8);
    window.addEventListener("scroll", onScroll, { passive: true });
    return () => window.removeEventListener("scroll", onScroll);
  }, []);
  return (
    <nav style={{
      position: "sticky", top: 0, zIndex: 50, height: 68,
      display: "flex", alignItems: "center", padding: "0 32px",
      background: scrolled ? "rgba(242,238,231,0.86)" : "transparent",
      backdropFilter: scrolled ? "blur(14px) saturate(140%)" : "none",
      WebkitBackdropFilter: scrolled ? "blur(14px) saturate(140%)" : "none",
      borderBottom: scrolled ? "1px solid var(--line-light)" : "1px solid transparent",
      transition: "all 220ms var(--ease-out)"
    }}>
      <a href="/" style={{ display: "flex", alignItems: "center", gap: 14 }}>
        <TriazWordmark height={22} fill="var(--ink)" />
        <span style={{
          paddingLeft: 14, borderLeft: "1px solid var(--line-light)",
          fontFamily: "var(--font-mono)", fontSize: 11,
          color: "var(--steel)", letterSpacing: "0.08em", textTransform: "uppercase"
        }}>
          Construcción
        </span>
      </a>
      <div style={{ flex: 1 }} />
      <ul className="hide-md" style={{ display: "flex", gap: 30, listStyle: "none", margin: 0, padding: 0 }}>
        {[
        ["El problema", "#problema"],
        ["Cómo lo resolvemos", "#sistema"],
        ["Agentes", "#agentes"],
        ["Caso real", "#caso"],
        ["Cómo empezamos", "#proceso"]].
        map(([l, href]) =>
        <li key={l}>
            <a href={href} className="nav-link" style={{ fontSize: 13.5, fontWeight: 500, color: "var(--ink)" }}>{l}</a>
          </li>
        )}
      </ul>
      <div style={{ display: "flex", gap: 10, marginLeft: 30 }}>
        <a href="#agendar" className="btn btn-primary btn-sm">
          Agendar conversación
          <Icon name="arrow-right" size={13} />
        </a>
      </div>
    </nav>);

}

/* ============================================================ */
/*  HERO                                                         */
/* ============================================================ */

function Hero() {
  return (
    <section style={{ position: "relative" }}>
      <div style={{
        position: "absolute", inset: "-80px 0 -40px", pointerEvents: "none", zIndex: 0,
        background:
        "radial-gradient(38% 48% at 22% 26%, rgba(184,136,74,0.12), transparent 65%), " +
        "radial-gradient(40% 50% at 82% 72%, rgba(184,136,74,0.06), transparent 70%)"
      }} />

      <div className="grid-2-md" style={{
        position: "relative", zIndex: 1,
        maxWidth: 1280, margin: "0 auto",
        padding: "80px 32px 56px",
        display: "grid", gridTemplateColumns: "1.05fr 1.05fr",
        gap: 56, alignItems: "center"
      }}>
        <div>
          <Eyebrow>Triaz para construcción</Eyebrow>
          <h1 className="display-l" style={{ margin: "22px 0 22px", maxWidth: "15ch" }}>
            Deja de gestionar tus obras <em style={{ fontStyle: "normal", color: "var(--copper)" }}>a ciegas</em>.
          </h1>
          <p className="lede" style={{ margin: "0 0 18px", maxWidth: 560 }}>
            El departamento externo de datos, automatización e IA para empresas que trabajan por proyectos.
            Sabes si cada obra deja dinero mientras la ejecutas — no cuando ya es tarde.
          </p>
          <div style={{ display: "flex", gap: 12, flexWrap: "wrap", marginBottom: 16 }}>
            <a href="#agendar" className="btn btn-primary btn-lg">
              Agendar conversación
              <Icon name="arrow-right" size={15} />
            </a>
            <a href="#sistema" className="btn btn-secondary btn-lg">
              Ver cómo funciona
            </a>
          </div>
          <p className="mono" style={{
            fontSize: 11.5, color: "var(--steel)", letterSpacing: "0.03em",
            display: "inline-flex", alignItems: "center", gap: 8
          }}>
            <Icon name="check" size={13} color="var(--copper)" />
            Evaluamos juntos si encaja contigo, sin compromiso.
          </p>
        </div>

        <ObraMock />
      </div>

      {/* trust strip */}
      <div style={{ maxWidth: 1280, margin: "0 auto", padding: "0 32px 88px", position: "relative", zIndex: 1 }}>
        <div style={{
          display: "flex", alignItems: "center", justifyContent: "center",
          gap: 40, paddingTop: 26, borderTop: "1px solid var(--line-light)", flexWrap: "wrap"
        }}>
          <span className="mono" style={{ fontSize: 11, color: "var(--steel)", letterSpacing: "0.08em", textTransform: "uppercase" }}>
            Constructoras que ya operan con Triaz
          </span>
          {["H. TERRATS", "VECTOR HORIZONTE", "GRUPO LIÑAGAR", "PAVISA", "ROOM GLOBAL"].map((n) =>
          <span key={n} style={{ fontWeight: 500, fontSize: 13, letterSpacing: "0.16em", color: "var(--steel)" }}>{n}</span>
          )}
        </div>
      </div>
    </section>);

}

/* ----- ObraMock: control económico en tiempo real ----------- */

function ObraMock() {
  const partidas = [
  { l: "01 · Movimiento de tierras", p: 100, c: 96, tone: "ok" },
  { l: "02 · Estructura", p: 100, c: 103, tone: "warn" },
  { l: "03 · Cerramientos", p: 64, c: 71, tone: "warn" },
  { l: "04 · Instalaciones", p: 38, c: 34, tone: "ok" }];

  const feed = [
  { dot: "#9A3A2E", a: "Desviación", m: "Estructura supera presupuesto en +3%", t: "hace 8 min" },
  { dot: "var(--copper)", a: "Proveedores", m: "4 ofertas comparadas · ahorro 6,2%", t: "hace 1 h" },
  { dot: "#4F7A4A", a: "Parte voz", m: "12 h imputadas desde WhatsApp", t: "hace 2 h" }];

  return (
    <div style={{ position: "relative" }}>
      <div style={{
        position: "absolute", inset: "-26px -14px",
        background: "radial-gradient(45% 50% at 55% 42%, rgba(184,136,74,0.14), transparent 70%)",
        pointerEvents: "none", zIndex: 0
      }} />
      <div style={{
        position: "relative", zIndex: 1,
        background: "#FBF8F2", border: "1px solid var(--line-light)",
        borderRadius: "var(--r-3)", boxShadow: "var(--shadow-3)", overflow: "hidden"
      }}>
        {/* window bar */}
        <div style={{
          display: "flex", alignItems: "center", gap: 6,
          padding: "10px 14px", background: "var(--bone-2)", borderBottom: "1px solid var(--line-light)"
        }}>
          <span style={{ width: 8, height: 8, borderRadius: 999, background: "#9A3A2E" }} />
          <span style={{ width: 8, height: 8, borderRadius: 999, background: "#B8884A" }} />
          <span style={{ width: 8, height: 8, borderRadius: 999, background: "#4F7A4A" }} />
        </div>

        <div style={{ padding: "18px 20px", display: "flex", flexDirection: "column", gap: 16 }}>
          <div style={{ display: "flex", alignItems: "center", justifyContent: "space-between" }}>
            <div>
              <div className="mono" style={{ fontSize: 10.5, color: "var(--steel)", letterSpacing: "0.06em", textTransform: "uppercase" }}>
                Control económico · tiempo real
              </div>
              <h3 style={{ fontSize: 17, fontWeight: 500, letterSpacing: "-0.012em", marginTop: 3 }}>
                Residencial Av. del Puerto
              </h3>
            </div>
            <span style={{
              display: "inline-flex", alignItems: "center", gap: 6,
              padding: "4px 10px", borderRadius: 2,
              background: "var(--copper-soft)", color: "#76542A",
              fontSize: 10, fontWeight: 500, letterSpacing: "0.05em", textTransform: "uppercase"
            }}>
              <span style={{ width: 6, height: 6, borderRadius: 999, background: "var(--copper)" }} />
              día 84 / 210
            </span>
          </div>

          {/* KPIs */}
          <div style={{ display: "grid", gridTemplateColumns: "repeat(3,1fr)", gap: 10 }}>
            {[
            { l: "Margen previsto", v: "11,4%", tone: "ok" },
            { l: "Coste / presup.", v: "78%", tone: "neutral" },
            { l: "Desviación", v: "+1,9%", tone: "warn" }].
            map((k, i) =>
            <div key={i} style={{ background: "var(--bone)", border: "1px solid var(--line-light)", borderRadius: "var(--r-2)", padding: "10px 12px" }}>
                <div className="mono" style={{ fontSize: 9.5, color: "var(--steel)", letterSpacing: "0.05em", textTransform: "uppercase" }}>{k.l}</div>
                <div className="num" style={{
                fontSize: 20, fontWeight: 500, letterSpacing: "-0.015em", marginTop: 2,
                color: k.tone === "warn" ? "#9A3A2E" : k.tone === "ok" ? "#4F7A4A" : "var(--ink)"
              }}>{k.v}</div>
              </div>
            )}
          </div>

          {/* partidas: presup vs coste */}
          <div>
            <div className="mono" style={{ fontSize: 10, color: "var(--steel)", letterSpacing: "0.07em", textTransform: "uppercase", marginBottom: 8 }}>
              Presupuesto vs coste real
            </div>
            <div style={{ display: "grid", gap: 9 }}>
              {partidas.map((p, i) =>
              <div key={i} style={{ display: "grid", gridTemplateColumns: "150px 1fr 42px", gap: 10, alignItems: "center" }}>
                  <span style={{ fontSize: 12, color: "var(--ink)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }}>{p.l}</span>
                  <div style={{ position: "relative", height: 8, background: "var(--bone-2)", border: "1px solid var(--line-light)" }}>
                    <span style={{ position: "absolute", inset: 0, width: Math.min(p.c, 110) + "%", maxWidth: "100%", background: p.tone === "warn" ? "#9A3A2E" : "var(--copper)" }} />
                  </div>
                  <span className="num mono" style={{ fontSize: 11, textAlign: "right", color: p.tone === "warn" ? "#9A3A2E" : "var(--steel)" }}>{p.c}%</span>
                </div>
              )}
            </div>
          </div>

          {/* agent feed */}
          <div style={{ background: "var(--bone)", border: "1px solid var(--line-light)", borderRadius: "var(--r-2)" }}>
            {feed.map((e, i) =>
            <div key={i} className="ink-feed-line" style={{
              display: "grid", gridTemplateColumns: "10px 78px 1fr auto", gap: 10, alignItems: "center", padding: "8px 12px"
            }}>
                <span style={{ width: 6, height: 6, borderRadius: 999, background: e.dot }} />
                <span className="mono" style={{ fontSize: 10.5, color: "var(--ink)", fontWeight: 500 }}>{e.a}</span>
                <span style={{ fontSize: 12, color: "var(--ink)", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }}>{e.m}</span>
                <span className="mono" style={{ fontSize: 9.5, color: "var(--steel)" }}>{e.t}</span>
              </div>
            )}
          </div>
        </div>
      </div>

      {/* floating alert chip */}
      <div style={{
        position: "absolute", top: -16, right: -14, zIndex: 2,
        display: "inline-flex", alignItems: "center", gap: 8, padding: "7px 13px",
        background: "var(--ink)", color: "var(--bone)", borderRadius: 2, boxShadow: "var(--shadow-2)",
        fontFamily: "var(--font-mono)", fontSize: 10, letterSpacing: "0.05em", textTransform: "uppercase"
      }}>
        <span style={{ width: 7, height: 7, borderRadius: 999, background: "#C9985A", boxShadow: "0 0 0 3px rgba(184,136,74,0.22)" }} />
        aviso a tiempo
      </div>
    </div>);

}

/* ============================================================ */
/*  PROBLEMA                                                     */
/* ============================================================ */

function Problema() {
  const pains = [
  { icon: "eye-off", t: "No sabes si una obra deja dinero", b: "Hasta el cierre no ves el resultado real. Para entonces, las desviaciones ya no se pueden corregir." },
  { icon: "folders", t: "La información está dispersa", b: "Excel, correos, WhatsApp y carpetas. Cada dato vive en un sitio distinto y nadie tiene la foto completa." },
  { icon: "unplug", t: "Herramientas que no se hablan", b: "El ERP, la hoja de costes y el parte de obra no se conectan. Reescribís lo mismo tres veces." },
  { icon: "clipboard-x", t: "Demasiada administración", b: "Imputar facturas, montar certificaciones, perseguir partes. Horas que no deberían ser manuales." },
  { icon: "git-fork", t: "Presión por 'hacer algo con la IA'", b: "Sabes que deberías aprovecharla, pero no tienes tiempo ni un responsable para liderar el cambio." }];

  return (
    <section id="problema" style={{ background: "var(--bone-2)", borderTop: "1px solid var(--line-light)", borderBottom: "1px solid var(--line-light)" }}>
      <div style={{ maxWidth: 1280, margin: "0 auto", padding: "104px 32px" }}>
        <div className="grid-2-md" style={{ display: "grid", gridTemplateColumns: "1.1fr 1fr", alignItems: "flex-end", gap: 32, marginBottom: 52 }}>
          <div>
            <Eyebrow>El problema</Eyebrow>
            <h2 className="display-m" style={{ margin: "16px 0 0" }}>
              Gestionar varias obras a la vez <span style={{ color: "var(--steel)" }}>sin datos fiables es ir a ciegas.</span>
            </h2>
          </div>
          <p className="lede" style={{ margin: 0 }}>Gestionáis personas, materiales y subcontratas en obras simultáneas. Pero las decisiones llegan tarde porque la información no está donde ni cuando la necesitáis.


          </p>
        </div>

        <div className="grid-3-md" style={{ display: "grid", gridTemplateColumns: "repeat(3,1fr)", gap: 16 }}>
          {pains.map((p, i) =>
          <div key={i} style={{
            background: "#FBF8F2", border: "1px solid var(--line-light)", borderRadius: "var(--r-2)",
            padding: "24px 22px", gridColumn: i === 3 ? "span 1" : undefined
          }}>
              <span style={{
              width: 38, height: 38, borderRadius: 2, background: "var(--bone-2)", border: "1px solid var(--line-light)",
              display: "inline-flex", alignItems: "center", justifyContent: "center", marginBottom: 16
            }}>
                <Icon name={p.icon} size={18} color="#9A3A2E" />
              </span>
              <h3 style={{ fontSize: 16, fontWeight: 500, letterSpacing: "-0.012em", margin: "0 0 8px" }}>{p.t}</h3>
              <p style={{ margin: 0, fontSize: 13.5, lineHeight: 1.55, color: "var(--steel)" }}>{p.b}</p>
            </div>
          )}
          {/* closing statement cell */}
          <div className="on-ink" style={{
            background: "var(--ink)", color: "var(--bone)", borderRadius: "var(--r-2)",
            padding: "24px 22px", display: "flex", flexDirection: "column", justifyContent: "center"
          }}>
            <p style={{ margin: 0, fontSize: 17, fontWeight: 500, lineHeight: 1.4, letterSpacing: "-0.015em" }}>
              El problema no es falta de software. Es que <span style={{ color: "var(--copper)" }}>nadie evoluciona la forma de trabajar.</span>
            </p>
          </div>
        </div>
      </div>
    </section>);

}

/* ============================================================ */
/*  IDEA CENTRAL                                                 */
/* ============================================================ */

function IdeaCentral() {
  return (
    <section style={{ maxWidth: 1280, margin: "0 auto", padding: "104px 32px" }}>
      <div className="grid-2-md" style={{ display: "grid", gridTemplateColumns: "1fr 1fr", gap: 60, alignItems: "center" }}>
        <div>
          <Eyebrow>La diferencia</Eyebrow>
          <h2 className="display-m" style={{ margin: "16px 0 22px" }}>
            No te vendemos otra herramienta. Aplicamos IA sobre tu <span style={{ color: "var(--copper)" }}>operación completa</span>.
          </h2>
          <p className="lede" style={{ margin: "0 0 22px", maxWidth: 540 }}>Un agente suelto sobre datos desordenados no sirve de nada. La IA solo da valor sobre datos estructurados y procesos definidos. Por eso nos ocupamos de toda la operación, no de una pieza aislada.



          </p>
          <div style={{ display: "grid", gap: 12 }}>
            {[
            ["layers", "Datos, procesos y agentes trabajando como un sistema, no como apps sueltas."],
            ["plug-zap", "Convive con tu ERP actual. No te obligamos a cambiar cómo trabajáis."],
            ["target", "Vendemos problemas resueltos: control en tiempo real, menos administración, decisiones con datos fiables."]].
            map(([icon, txt]) =>
            <div key={txt} style={{ display: "flex", alignItems: "flex-start", gap: 12 }}>
                <span style={{
                width: 28, height: 28, borderRadius: 2, background: "var(--bone-2)", border: "1px solid var(--line-light)",
                display: "inline-flex", alignItems: "center", justifyContent: "center", flexShrink: 0, marginTop: 1
              }}>
                  <Icon name={icon} size={14} color="var(--copper)" />
                </span>
                <span style={{ fontSize: 14.5, color: "var(--ink)", lineHeight: 1.5 }}>{txt}</span>
              </div>
            )}
          </div>
        </div>

        {/* layered diagram: agentes need structured base */}
        <div style={{
          position: "relative", background: "#FBF8F2", border: "1px solid var(--line-light)",
          borderRadius: "var(--r-3)", boxShadow: "var(--shadow-2)", padding: 28
        }}>
          <span className="reg tl" /><span className="reg tr" /><span className="reg bl" /><span className="reg br" />
          <div className="mono" style={{ fontSize: 10, color: "var(--steel)", letterSpacing: "0.08em", textTransform: "uppercase", marginBottom: 18, textAlign: "center" }}>
            Por qué la operación completa
          </div>
          {[
          { l: "Agentes de IA", d: "automatizan y avisan", c: "var(--copper)", fg: "var(--ink)" },
          { l: "Procesos definidos", d: "compras, partes, certificaciones", c: "var(--ink)", fg: "var(--bone)" },
          { l: "Datos estructurados", d: "una sola fuente, en tiempo real", c: "var(--bone-2)", fg: "var(--ink)", border: true }].
          map((row, i) =>
          <div key={i} style={{
            background: row.c, color: row.fg,
            border: row.border ? "1px solid var(--line-light)" : "none",
            borderRadius: "var(--r-2)", padding: "16px 18px",
            marginTop: i === 0 ? 0 : 10,
            marginLeft: i * 16, marginRight: (2 - i) * 16,
            display: "flex", alignItems: "center", justifyContent: "space-between", gap: 12
          }}>
              <span style={{ fontSize: 15, fontWeight: 500, letterSpacing: "-0.01em" }}>{row.l}</span>
              <span className="mono" style={{ fontSize: 10.5, opacity: 0.85, letterSpacing: "0.03em" }}>{row.d}</span>
            </div>
          )}
          <div style={{ display: "flex", justifyContent: "center", marginTop: 16 }}>
            <span className="mono" style={{ fontSize: 10.5, color: "var(--steel)", letterSpacing: "0.04em" }}>
              cada capa se apoya en la de abajo
            </span>
          </div>
        </div>
      </div>
    </section>);

}

Object.assign(window, { Nav, Hero, ObraMock, Problema, IdeaCentral });