// Hero variants — 3 different treatments. All use real photography.

const HERO_IMAGES = {
  port: "https://images.unsplash.com/photo-1494412519320-aa613dfb7738?w=2400&q=85&auto=format&fit=crop",
  ship: "https://images.unsplash.com/photo-1494412519320-aa613dfb7738?w=2400&q=85&auto=format&fit=crop",
  container: "https://images.unsplash.com/photo-1578575437130-527eed3abbec?w=2400&q=85&auto=format&fit=crop",
  crane: "https://images.unsplash.com/photo-1605745341112-85968b19335b?w=2400&q=85&auto=format&fit=crop",
  truck: "https://images.unsplash.com/photo-1601584115197-04ecc0da31d7?w=2400&q=85&auto=format&fit=crop",
  containerSide: "https://images.unsplash.com/photo-1605745341112-85968b19335b?w=2400&q=85&auto=format&fit=crop",
};

// ─────────────────────────────────────────────────────────────
// V1 — Editorial full-bleed
// ─────────────────────────────────────────────────────────────
function HeroFullbleed({ t, anim }) {
  const { pal, typo, dens } = t;
  return (
    <section style={{
      position: "relative", height: "100vh", minHeight: 720, maxHeight: 980,
      background: pal.inverseBg, overflow: "hidden", color: pal.inverseInk,
    }}>
      <div style={{
        position: "absolute", inset: 0,
        backgroundImage: `url(${HERO_IMAGES.port})`,
        backgroundSize: "cover", backgroundPosition: "center 35%",
        animation: anim ? "ls-kb 24s ease-in-out infinite alternate" : "none",
        filter: "brightness(0.55) contrast(1.05)",
      }} />
      <div style={{
        position: "absolute", inset: 0,
        background: `linear-gradient(180deg, ${pal.inverseBg}aa 0%, ${pal.inverseBg}00 30%, ${pal.inverseBg}00 60%, ${pal.inverseBg}ee 100%)`,
      }} />

      <div style={{ position: "relative", height: "100%", padding: `120px ${dens.pad.split(" ")[1]} ${dens.pad.split(" ")[0]}`, display: "flex", flexDirection: "column", justifyContent: "space-between" }}>
        <div style={{ fontFamily: typo.mono, fontSize: 12, letterSpacing: "0.22em", textTransform: "uppercase", opacity: 0.7, textAlign: "right" }}>
          <span style={{ display: "inline-flex", alignItems: "center", gap: 10 }}>
            <span style={{ width: 6, height: 6, borderRadius: "50%", background: pal.accent }} />
            Especialistas en carga líquida a granel · Desde 2014
          </span>
        </div>

        <div style={{ display: "grid", gridTemplateColumns: "1fr auto", alignItems: "flex-end", gap: 64 }}>
          <h1 className="ls-h1" style={{
            fontFamily: typo.display, fontWeight: typo.displayWeight,
            fontSize: "clamp(72px, 11vw, 168px)", lineHeight: 0.9,
            letterSpacing: typo.displayTracking, margin: 0,
            textWrap: "balance", maxWidth: "min(1200px, 90%)",
          }}>
            Líquidos a granel.
            <br />
            <span style={{ color: pal.accent, fontStyle: typo.italicFor === "accent" ? "italic" : "normal" }}>
              Del valle al puerto.
            </span>
          </h1>

          <div style={{ fontFamily: typo.body, display: "flex", flexDirection: "column", gap: 14, minWidth: 280 }}>
            <p style={{ fontSize: 17, lineHeight: 1.5, margin: 0, opacity: 0.88, maxWidth: 360 }}>
              Especialistas en flexitanks e isotanks. Cada gota de aceite, jugo y vino que sale de Cuyo hacia los principales puertos del mundo.
            </p>
            <div style={{ display: "flex", gap: 10, marginTop: 8 }}>
              <a href="#contacto" style={{
                padding: "16px 24px", background: pal.accent, color: pal.inverseBg,
                border: "none", fontFamily: typo.body, fontSize: 13, fontWeight: 600,
                letterSpacing: "0.12em", textTransform: "uppercase", cursor: "pointer", flex: 1,
                textDecoration: "none", textAlign: "center",
              }}>Cotizar →</a>
              <a href="#equipamiento" style={{
                padding: "16px 24px", background: "transparent", color: pal.inverseInk,
                border: `1px solid ${pal.inverseInk}55`, fontFamily: typo.body, fontSize: 13, fontWeight: 600,
                letterSpacing: "0.12em", textTransform: "uppercase", cursor: "pointer", flex: 1,
                textDecoration: "none", textAlign: "center",
              }}>Servicios</a>
            </div>
          </div>
        </div>
      </div>
    </section>
  );
}

// ─────────────────────────────────────────────────────────────
// V2 — Split tile (default)
// ─────────────────────────────────────────────────────────────
function useMobile(bp = 720) {
  const [mob, setMob] = React.useState(() => window.innerWidth <= bp);
  React.useEffect(() => {
    const h = () => setMob(window.innerWidth <= bp);
    window.addEventListener("resize", h, { passive: true });
    return () => window.removeEventListener("resize", h);
  }, [bp]);
  return mob;
}

// ─────────────────────────────────────────────────────────────
// V2 mobile — single-viewport editorial cover
// Full-bleed photo as background for the WHOLE hero, with all
// content (title, body, CTAs, stats, marquee) stacked over a
// dark bottom gradient so everything fits in one screen.
// ─────────────────────────────────────────────────────────────
function HeroSplitMobile({ t, anim }) {
  const { pal, typo } = t;
  const { lang } = useLang();
  const s = I18N[lang].hero;
  const NAV_H = 64;

  return (
    <section id="inicio" style={{
      position: "relative",
      background: pal.inverseBg,
      color: pal.inverseInk,
      overflow: "hidden",
      minHeight: "100dvh",
      display: "flex", flexDirection: "column",
    }}>
      <style>{`
        @keyframes ls-hero-marquee { to { transform: translateX(-50%); } }
        @keyframes ls-hero-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(62,224,122,0.55); } 50% { box-shadow: 0 0 0 8px rgba(62,224,122,0); } }
        @keyframes ls-hero-kb-mob { 0% { transform: scale(1.04); } 100% { transform: scale(1.14); } }
      `}</style>

      {/* ═══════ FULL-BLEED PHOTO BACKGROUND ═══════ */}
      <img
        src={HERO_IMAGES.containerSide}
        alt="Contenedor de carga marítima saliendo del puerto"
        style={{
          position: "absolute", inset: 0, width: "100%", height: "100%",
          objectFit: "cover", objectPosition: "62% 30%",
          animation: anim ? "ls-hero-kb-mob 26s ease-in-out infinite alternate" : "none",
          filter: "brightness(0.72) contrast(1.05) saturate(0.92)",
          zIndex: 0,
        }}
      />

      {/* top vignette — nav legibility */}
      <div style={{
        position: "absolute", left: 0, right: 0, top: 0, height: NAV_H + 80,
        background: `linear-gradient(180deg, ${pal.inverseBg}cc 0%, ${pal.inverseBg}55 55%, transparent 100%)`,
        pointerEvents: "none", zIndex: 1,
      }} />
      {/* bottom heavy vignette — content legibility */}
      <div style={{
        position: "absolute", left: 0, right: 0, bottom: 0, top: "32%",
        background: `linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.45) 30%, ${pal.inverseBg}f2 65%, ${pal.inverseBg} 100%)`,
        pointerEvents: "none", zIndex: 1,
      }} />

      {/* ═══════ TOP CHIPS — status + coords ═══════ */}
      <div style={{
        position: "relative", zIndex: 2,
        paddingTop: NAV_H + 16, paddingLeft: 20, paddingRight: 20,
        display: "flex", justifyContent: "space-between", alignItems: "flex-start", gap: 12,
      }}>
        <div style={{
          display: "inline-flex", alignItems: "center", gap: 9,
          fontFamily: typo.mono, fontSize: 10, letterSpacing: "0.22em",
          color: "#fff", padding: "8px 12px",
          background: "rgba(0,0,0,0.42)", backdropFilter: "blur(10px)",
          WebkitBackdropFilter: "blur(10px)",
          border: "1px solid rgba(255,255,255,0.22)",
        }}>
          <span style={{
            width: 7, height: 7, borderRadius: "50%", background: "#3ee07a",
            animation: anim ? "ls-hero-pulse 2.2s ease-out infinite" : "none",
          }} />
          {s.status}
        </div>
        <div style={{
          fontFamily: typo.mono, fontSize: 9.5, letterSpacing: "0.2em",
          color: "rgba(255,255,255,0.85)", textAlign: "right", lineHeight: 1.7,
          textShadow: "0 1px 4px rgba(0,0,0,0.6)",
        }}>
          <div>32°53′S · 68°51′W</div>
          <div style={{ opacity: 0.75 }}>{s.vessel}</div>
        </div>
      </div>

      {/* breathing space — pushes content to the bottom half */}
      <div style={{ flex: 1 }} />

      {/* ═══════ CONTENT STACK — over bottom gradient ═══════ */}
      <div style={{
        position: "relative", zIndex: 2,
        padding: "0 20px 0",
        display: "flex", flexDirection: "column", gap: 14,
      }}>
        {/* hairline accent rule */}
        <div style={{ width: 40, height: 2, background: pal.accent }} />

        {/* TITLE */}
        <h1 className="ls-h1" style={{
          margin: 0,
          fontFamily: typo.display, fontWeight: typo.displayWeight,
          fontSize: "clamp(34px, 9.5vw, 50px)",
          lineHeight: 0.94, letterSpacing: typo.displayTracking,
          color: "#fff",
          textWrap: "balance",
          textShadow: "0 2px 24px rgba(0,0,0,0.55), 0 1px 2px rgba(0,0,0,0.35)",
        }}>
          {s.h1a}<br />{s.h1b}<br />
          <span style={{
            color: pal.accent,
            fontStyle: typo.italicFor === "accent" ? "italic" : "normal",
          }}>{s.h1c}</span>
        </h1>

        {/* BODY — compact */}
        <p style={{
          fontFamily: typo.body, fontSize: 14, lineHeight: 1.5,
          margin: 0, maxWidth: 520,
          color: "rgba(255,255,255,0.82)",
          textShadow: "0 1px 4px rgba(0,0,0,0.5)",
        }}>{s.body}</p>

        {/* CTAs — primary fills width, secondary inline below */}
        <div style={{ display: "flex", flexDirection: "column", gap: 8, marginTop: 4 }}>
          <a href="#contacto" className="ls-cta-primary"
            onClick={() => window.va?.('event', { name: 'click_cotizar', data: { source: 'hero' } })}
            style={{
              padding: "15px 20px", background: pal.accent, color: pal.inverseBg,
              textDecoration: "none",
              fontFamily: typo.body, fontSize: 12.5, fontWeight: 700,
              letterSpacing: "0.14em", textTransform: "uppercase",
              display: "inline-flex", alignItems: "center", justifyContent: "space-between", gap: 10,
            }}>
            {s.cta1}
            <svg width="18" height="11" viewBox="0 0 20 12" fill="none" aria-hidden="true">
              <path d="M0 6 L18 6 M12 1 L19 6 L12 11" stroke="currentColor" strokeWidth="1.6"/>
            </svg>
          </a>
          <a href="#equipamiento" style={{
            padding: "13px 20px", background: "rgba(255,255,255,0.06)", color: "#fff",
            textDecoration: "none",
            border: "1px solid rgba(255,255,255,0.28)",
            fontFamily: typo.body, fontSize: 12, fontWeight: 600,
            letterSpacing: "0.14em", textTransform: "uppercase",
            display: "inline-flex", alignItems: "center", justifyContent: "center", gap: 10,
            backdropFilter: "blur(6px)", WebkitBackdropFilter: "blur(6px)",
          }}>{s.cta2}</a>
        </div>
      </div>

      {/* ═══════ STATS RIBBON — 3 cols, transparent ═══════ */}
      <div style={{
        position: "relative", zIndex: 2,
        margin: "16px 20px 0",
        padding: "14px 0 14px",
        borderTop: "1px solid rgba(255,255,255,0.16)",
        borderBottom: "1px solid rgba(255,255,255,0.16)",
        display: "grid", gridTemplateColumns: "repeat(3, 1fr)", gap: 6,
      }}>
        {s.stats.map(([k, v], i) => (
          <div key={i} style={{
            paddingLeft: i > 0 ? 10 : 0,
            borderLeft: i > 0 ? "1px solid rgba(255,255,255,0.16)" : "none",
          }}>
            <div style={{
              fontFamily: typo.mono, fontSize: 8.5, letterSpacing: "0.18em",
              textTransform: "uppercase", color: pal.accent, marginBottom: 4,
              whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis",
            }}>{k}</div>
            <div style={{
              fontFamily: typo.display, fontWeight: typo.displayWeight,
              fontSize: 22, lineHeight: 1, letterSpacing: typo.displayTracking,
              color: "#fff",
            }}>{v}</div>
          </div>
        ))}
      </div>

      {/* ═══════ DESTINATIONS MARQUEE — at the very bottom ═══════ */}
      <div style={{
        position: "relative", zIndex: 2,
        overflow: "hidden",
        padding: "12px 0 14px",
        marginTop: 4,
      }}>
        <div style={{
          display: "flex", gap: 32, whiteSpace: "nowrap", width: "max-content",
          animation: "ls-hero-marquee 48s linear infinite",
        }}>
          {[...DESTINATIONS, ...DESTINATIONS, ...DESTINATIONS].map((d, i) => (
            <span key={i} style={{
              fontFamily: typo.display, fontWeight: typo.displayWeight,
              fontSize: 18, letterSpacing: typo.displayTracking, lineHeight: 1.0,
              color: "#fff", opacity: 0.88,
            }}>
              {d}<span aria-hidden="true" style={{ display: "inline-block", width: 6, height: 6, borderRadius: "50%", background: pal.accent, marginLeft: 24, verticalAlign: "middle" }} />
            </span>
          ))}
        </div>
      </div>
    </section>
  );
}

function HeroSplit({ t, anim }) {
  const { pal, typo, dens } = t;
  const { lang } = useLang();
  const s = I18N[lang].hero;
  const mobile = useMobile();
  const NAV_H = 64;

  if (mobile) return <HeroSplitMobile t={t} anim={anim} />;

  return (
    <section id="inicio" style={{
      background: pal.bg, color: pal.ink, position: "relative", paddingTop: NAV_H,
      height: mobile ? "auto" : "100vh",
      overflow: mobile ? "visible" : "hidden",
      scrollSnapAlign: "start",
      display: mobile ? "block" : "flex",
      flexDirection: "column",
    }}>
      <style>{`@keyframes ls-hero-marquee { to { transform: translateX(-50%); } }`}</style>
      <div className="ls-grid-hero" style={{ display: "grid", gridTemplateColumns: "1.15fr 1fr", alignItems: "stretch", height: mobile ? "auto" : undefined, flex: mobile ? undefined : 1, minHeight: 0, position: "relative" }}>
        {/* TEXT column */}
        <div className="ls-hero-text" style={{
          paddingTop: mobile ? 28 : 48,
          paddingRight: mobile ? 20 : dens.pad.split(" ")[1],
          paddingBottom: mobile ? 0 : 48,
          paddingLeft: mobile ? 20 : `calc(${dens.pad.split(" ")[1]} + 28px)`,
          display: "flex", flexDirection: "column",
          justifyContent: mobile ? "flex-start" : "center",
          gap: mobile ? 24 : 40,
          minHeight: mobile ? "calc(100dvh - 64px)" : undefined,
          minWidth: mobile ? 0 : undefined,
          overflow: mobile ? "visible" : "hidden",
          position: "relative",
        }}>
          <div style={{ flex: "none", minHeight: 0, overflow: mobile ? "visible" : "hidden" }}>
            <div style={{ fontFamily: typo.mono, fontSize: 11, letterSpacing: "0.28em", textTransform: "uppercase", color: pal.accent, marginBottom: 16, display: "flex", alignItems: "center", gap: 12 }}>
              <span style={{ width: 28, height: 1, background: pal.accent }} />
              {s.eyebrow}
            </div>
            <h1 className="ls-h1" style={{
              fontFamily: typo.display, fontWeight: typo.displayWeight,
              fontSize: "clamp(38px, 5.6vw, 88px)", lineHeight: 0.92,
              letterSpacing: typo.displayTracking, margin: 0,
              textWrap: "balance",
            }}>
              {s.h1a}<br />{s.h1b}<br />
              <span style={{ color: pal.accent, fontStyle: typo.italicFor === "accent" ? "italic" : "normal" }}>
                {s.h1c}
              </span>
            </h1>
            <p className="ls-hero-body" style={{ fontFamily: typo.body, fontSize: 17, lineHeight: 1.5, marginTop: 20, marginBottom: 0, maxWidth: 520, color: pal.inkSoft }}>
              {s.body}
            </p>
          </div>

          <div className="ls-hero-actions" style={{ paddingBottom: mobile ? 0 : 8 }}>
            <div style={{ display: "flex", gap: 14, flexWrap: "wrap" }}>
              <a href="#contacto" className="ls-cta-primary"
                onClick={() => window.va?.('event', { name: 'click_cotizar', data: { source: 'hero' } })}
                style={{
                padding: "20px 36px", background: pal.ink, color: pal.inverseInk,
                border: "none", textDecoration: "none",
                fontFamily: typo.body, fontSize: 13, fontWeight: 600,
                letterSpacing: "0.12em", textTransform: "uppercase", cursor: "pointer",
                display: "inline-flex", alignItems: "center", gap: 10,
              }}>{s.cta1}
                <svg width="16" height="10" viewBox="0 0 20 12" fill="none"><path d="M0 6 L18 6 M12 1 L19 6 L12 11" stroke="currentColor" strokeWidth="1.5"/></svg>
              </a>
              <a href="#equipamiento" style={{
                padding: "20px 36px", background: "transparent", color: pal.ink, textDecoration: "none",
                border: `1px solid ${pal.ink}33`, fontFamily: typo.body, fontSize: 13, fontWeight: 600,
                letterSpacing: "0.12em", textTransform: "uppercase",
              }}>{s.cta2}</a>
            </div>
          </div>

        </div>

        {/* PHOTO column */}
        <div className="ls-hero-photo" style={{
          position: "relative", display: "flex", flexDirection: "column",
        }}>
          <div style={{ position: "relative", flex: 1, minHeight: 0, overflow: "hidden", background: pal.inverseBg }}>
            <img src={HERO_IMAGES.containerSide} alt="" style={{
              position: "absolute", inset: 0, width: "100%", height: "100%",
              objectFit: "cover", objectPosition: mobile ? "60% 30%" : "center",
              display: "block",
              animation: (anim && !mobile) ? "ls-kb 26s ease-in-out infinite alternate" : "none",
            }} />
            <div style={{
              position: "absolute", inset: 0,
              background: `linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.55) 100%)`,
            }} />
            {/* status tag */}
            <div style={{
              position: "absolute", top: 24, left: 24,
              display: "inline-flex", alignItems: "center", gap: 8,
              fontFamily: typo.mono, fontSize: 11, letterSpacing: "0.22em",
              color: "#fff", padding: "9px 14px",
              background: "rgba(0,0,0,0.55)", backdropFilter: "blur(8px)",
              border: "1px solid rgba(255,255,255,0.22)",
            }}>
              <span style={{ width: 6, height: 6, borderRadius: "50%", background: "#3ee07a",
                            boxShadow: "0 0 0 4px rgba(62,224,122,0.22)" }} />
              {s.status}
            </div>
            {/* coordinate ticks */}
            <div style={{
              position: "absolute", top: 24, right: 24,
              fontFamily: typo.mono, fontSize: 10, letterSpacing: "0.22em",
              color: "rgba(255,255,255,0.78)", textAlign: "right", lineHeight: 1.7,
            }}>
              <div>32°53′S · 68°51′W</div>
              <div>{s.vessel}</div>
            </div>
          </div>
          {/* data strip below photo */}
          <div style={{
            background: pal.ink, color: pal.inverseInk,
            padding: "22px 28px", display: "grid", gridTemplateColumns: "1fr 1fr 1fr", gap: 24,
          }} className="ls-grid-hero-stats">
            {s.stats.map(([k, v], i) => (
              <div key={i} style={{ borderLeft: i > 0 ? `1px solid ${pal.inverseInk}1f` : "none", paddingLeft: i > 0 ? 20 : 0 }}>
                <div style={{ fontFamily: typo.mono, fontSize: 10, letterSpacing: "0.18em", textTransform: "uppercase", color: pal.accent, marginBottom: 4 }}>{k}</div>
                <div style={{ fontFamily: typo.display, fontWeight: typo.displayWeight, fontSize: 30, lineHeight: 1, letterSpacing: typo.displayTracking }}>{v}</div>
              </div>
            ))}
          </div>
        </div>
      </div>

      {/* Desktop-only full-width marquee — bottom of hero, spans both columns */}
      {!mobile && (
        <div style={{ overflow: "hidden", background: pal.inverseBg, padding: "14px 0", flexShrink: 0, borderTop: `1px solid ${pal.inverseInk}18` }}>
          <div style={{ display: "flex", gap: 40, whiteSpace: "nowrap", width: "max-content", animation: "ls-hero-marquee 48s linear infinite" }}>
            {[...DESTINATIONS, ...DESTINATIONS, ...DESTINATIONS].map((d, i) => (
              <span key={i} style={{
                fontFamily: typo.display, fontWeight: typo.displayWeight,
                fontSize: "clamp(14px, 1.4vw, 20px)", letterSpacing: typo.displayTracking, lineHeight: 1.0,
                color: pal.inverseInk,
              }}>
                {d}<span aria-hidden="true" style={{ display: "inline-block", width: 6, height: 6, borderRadius: "50%", background: pal.accent, marginLeft: 36, verticalAlign: "middle" }} />
              </span>
            ))}
          </div>
        </div>
      )}
    </section>
  );
}

// ─────────────────────────────────────────────────────────────
// V3 — Centered bold
// ─────────────────────────────────────────────────────────────
function HeroCentered({ t, anim }) {
  const { pal, typo, dens } = t;
  return (
    <section style={{
      position: "relative", height: "100vh", minHeight: 700, maxHeight: 940,
      background: pal.inverseBg, color: pal.inverseInk, overflow: "hidden",
    }}>
      <div style={{
        position: "absolute", inset: 0,
        backgroundImage: `url(${HERO_IMAGES.ship})`,
        backgroundSize: "cover", backgroundPosition: "center 40%",
        animation: anim ? "ls-kb 26s ease-in-out infinite alternate" : "none",
        filter: "brightness(0.5)",
      }} />
      <div style={{
        position: "absolute", inset: 0,
        background: `radial-gradient(ellipse at center, ${pal.inverseBg}66 0%, ${pal.inverseBg}cc 70%, ${pal.inverseBg}ff 100%)`,
      }} />

      <div style={{ position: "relative", height: "100%", display: "grid", placeItems: "center", padding: `120px ${dens.pad.split(" ")[1]} ${dens.pad.split(" ")[0]}`, textAlign: "center" }}>
        <div style={{ maxWidth: 1200 }}>
          <div style={{ fontFamily: typo.mono, fontSize: 12, letterSpacing: "0.32em", textTransform: "uppercase", opacity: 0.75, marginBottom: 40 }}>
            <span style={{ display: "inline-flex", alignItems: "center", gap: 14 }}>
              <span style={{ width: 32, height: 1, background: pal.accent }} />
              Desde 2014 · Mendoza → Mundo
              <span style={{ width: 32, height: 1, background: pal.accent }} />
            </span>
          </div>
          <h1 className="ls-h1" style={{
            fontFamily: typo.display, fontWeight: typo.displayWeight,
            fontSize: "clamp(64px, 10vw, 156px)", lineHeight: 0.92,
            letterSpacing: typo.displayTracking, margin: 0,
            textWrap: "balance",
          }}>
            Especialistas en{" "}
            <span style={{ color: pal.accent, fontStyle: typo.italicFor === "accent" ? "italic" : "normal" }}>
              carga líquida a granel.
            </span>
          </h1>
          <p style={{ fontFamily: typo.body, fontSize: 20, lineHeight: 1.55, marginTop: 40, maxWidth: 680, marginLeft: "auto", marginRight: "auto", opacity: 0.88 }}>
            Flexitanks, isotanks y dry containers desde Mendoza hacia los principales puertos de Europa, Asia y América. Operamos +3.000 contenedores FCL al año.
          </p>
          <div style={{ display: "inline-flex", gap: 12, marginTop: 48 }}>
            <a href="#contacto" style={{
              padding: "20px 40px", background: pal.accent, color: pal.inverseBg,
              border: "none", fontFamily: typo.body, fontSize: 14, fontWeight: 700,
              letterSpacing: "0.12em", textTransform: "uppercase", cursor: "pointer",
              textDecoration: "none",
            }}>Cotizar un envío →</a>
            <a href="#equipamiento" style={{
              padding: "20px 40px", background: "transparent", color: pal.inverseInk,
              border: `1px solid ${pal.inverseInk}55`, fontFamily: typo.body, fontSize: 14, fontWeight: 700,
              letterSpacing: "0.12em", textTransform: "uppercase", cursor: "pointer",
              textDecoration: "none",
            }}>Ver servicios</a>
          </div>
        </div>

        <div style={{ position: "absolute", bottom: 32, left: "50%", transform: "translateX(-50%)", fontFamily: typo.mono, fontSize: 11, letterSpacing: "0.24em", opacity: 0.6, display: "flex", alignItems: "center", gap: 10 }}>
          <span style={{ width: 1, height: 28, background: pal.inverseInk, opacity: 0.5 }} />
          SCROLL
        </div>
      </div>
    </section>
  );
}

const HERO_VARIANTS = {
  fullbleed: { name: "Editorial · Full-bleed", Component: HeroFullbleed },
  split:     { name: "Split · Foto + Texto",   Component: HeroSplit },
  centered:  { name: "Centered · Bold",        Component: HeroCentered },
};

Object.assign(window, { HeroFullbleed, HeroSplit, HeroCentered, HERO_VARIANTS, HERO_IMAGES, useMobile });
