/* ============================================================
Agency BRN — Header + Hero + Trust strip + Problem
============================================================ */
const { useState, useEffect, useRef, useContext } = React;
/* ---------- Header ---------- */
const SERVICE_SLUGS = [
"website-design-landing-pages",
"google-business-profile-optimization",
"crm-setup",
"marketing-automation",
"ai-powered-business-systems",
"paid-traffic-strategy",
"real-estate-rental-lead-systems",
];
function Header() {
const { lang, setLang, t, basePath = "" } = useContext(window.LanguageContext);
const [scrolled, setScrolled] = useState(false);
const [open, setOpen] = useState(false);
const [servicesOpen, setServicesOpen] = useState(false);
const [mobileServicesOpen, setMobileServicesOpen] = useState(false);
const servicesCloseTimer = useRef(null);
useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 8);
window.addEventListener("scroll", onScroll, { passive: true });
return () => window.removeEventListener("scroll", onScroll);
}, []);
useEffect(() => {
document.body.style.overflow = open ? "hidden" : "";
}, [open]);
// Close dropdowns on outside click
useEffect(() => {
if (!servicesOpen) return;
const onDoc = (e) => {
if (!e.target.closest(".nav__services")) setServicesOpen(false);
};
document.addEventListener("click", onDoc);
return () => document.removeEventListener("click", onDoc);
}, [servicesOpen]);
const homeHref = (frag) => `${basePath}index.html${frag}`;
const servicePageHref = (slug) => `${basePath}services/${slug}.html`;
const servicesIndexHref = `${basePath}services/`;
const navItems = [
{ href: homeHref("#home"), label: t.nav.home },
{ href: homeHref("#about"), label: t.nav.about },
{ isServices: true, label: t.nav.services },
{ href: homeHref("#industries"), label: t.nav.industries },
{ href: homeHref("#growth"), label: t.nav.growth },
{ href: homeHref("#blog"), label: t.nav.blog },
{ href: homeHref("#contact"), label: t.nav.contact },
];
const openServices = () => {
clearTimeout(servicesCloseTimer.current);
setServicesOpen(true);
};
const scheduleCloseServices = () => {
clearTimeout(servicesCloseTimer.current);
servicesCloseTimer.current = setTimeout(() => setServicesOpen(false), 180);
};
// Service titles come from translations
const serviceItems = (t.services.items || []).map((s, i) => ({
slug: SERVICE_SLUGS[i],
title: s.title,
}));
return (
{t.hero.sub}
{t.hero.h1A}
{t.hero.h1Grad}
{t.hero.h1B}
{t.problem.body}
{t.problem.body2}