import { P as reactExports, H as jsxRuntimeExports } from "./server-BDnlQLSR.js";
import { L as Link } from "./router-C10CjyU0.js";
const mergeClasses = (...classes) => classes.filter((className, index, array) => {
  return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
}).join(" ").trim();
const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
const toCamelCase = (string) => string.replace(
  /^([A-Z])|[\s-_]+(\w)/g,
  (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
);
const toPascalCase = (string) => {
  const camelCase = toCamelCase(string);
  return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
};
var defaultAttributes = {
  xmlns: "http://www.w3.org/2000/svg",
  width: 24,
  height: 24,
  viewBox: "0 0 24 24",
  fill: "none",
  stroke: "currentColor",
  strokeWidth: 2,
  strokeLinecap: "round",
  strokeLinejoin: "round"
};
const hasA11yProp = (props) => {
  for (const prop in props) {
    if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
      return true;
    }
  }
  return false;
};
const Icon = reactExports.forwardRef(
  ({
    color = "currentColor",
    size = 24,
    strokeWidth = 2,
    absoluteStrokeWidth,
    className = "",
    children,
    iconNode,
    ...rest
  }, ref) => reactExports.createElement(
    "svg",
    {
      ref,
      ...defaultAttributes,
      width: size,
      height: size,
      stroke: color,
      strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
      className: mergeClasses("lucide", className),
      ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
      ...rest
    },
    [
      ...iconNode.map(([tag, attrs]) => reactExports.createElement(tag, attrs)),
      ...Array.isArray(children) ? children : [children]
    ]
  )
);
const createLucideIcon = (iconName, iconNode) => {
  const Component = reactExports.forwardRef(
    ({ className, ...props }, ref) => reactExports.createElement(Icon, {
      ref,
      iconNode,
      className: mergeClasses(
        `lucide-${toKebabCase(toPascalCase(iconName))}`,
        `lucide-${iconName}`,
        className
      ),
      ...props
    })
  );
  Component.displayName = toPascalCase(iconName);
  return Component;
};
const __iconNode$1 = [
  ["path", { d: "M4 5h16", key: "1tepv9" }],
  ["path", { d: "M4 12h16", key: "1lakjw" }],
  ["path", { d: "M4 19h16", key: "1djgab" }]
];
const Menu = createLucideIcon("menu", __iconNode$1);
const __iconNode = [
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
];
const X = createLucideIcon("x", __iconNode);
const logo = "/assets/ev-logo-C6WMotBW.jpeg";
const ARTICLES_URL = "https://articles.emmanuelvoicepublication.com.ng/";
const nav = [
  { to: "/about", label: "About" },
  { to: ARTICLES_URL, label: "Articles", external: true },
  { to: "/hymn", label: "Hymns" },
  { to: "/testimonies", label: "Testimonies" },
  { to: "/events", label: "Events" },
  { to: "/gallery", label: "Gallery" }
];
function Header() {
  const [scrolled, setScrolled] = reactExports.useState(false);
  const [open, setOpen] = reactExports.useState(false);
  reactExports.useEffect(() => {
    const onScroll = () => setScrolled(window.scrollY > 12);
    onScroll();
    window.addEventListener("scroll", onScroll, { passive: true });
    return () => window.removeEventListener("scroll", onScroll);
  }, []);
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
    "header",
    {
      className: `fixed top-0 inset-x-0 z-50 transition-all duration-500 ${scrolled ? "py-3" : "py-5"}`,
      children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "container-page", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs(
          "div",
          {
            className: `glass flex items-center justify-between rounded-full border border-border/60 px-4 md:px-6 transition-all duration-500 ${scrolled ? "py-2 shadow-[0_8px_30px_-15px_rgba(15,23,42,0.2)]" : "py-3"}`,
            children: [
              /* @__PURE__ */ jsxRuntimeExports.jsxs(Link, { to: "/", className: "flex items-center gap-2.5 group", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "relative w-10 h-10 rounded-full bg-cream grid place-items-center overflow-hidden ring-1 ring-border", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: logo, alt: "Emmanuel Voice", className: "w-full h-full object-contain p-0.5" }) }),
                /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "hidden sm:block leading-none", children: [
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "font-display font-bold text-[15px] tracking-tight text-foreground", children: "Emmanuel Voice" }),
                  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "text-[10px] uppercase tracking-[0.22em] text-muted-foreground mt-0.5", children: "Publication" })
                ] })
              ] }),
              /* @__PURE__ */ jsxRuntimeExports.jsx("nav", { className: "hidden lg:flex items-center gap-1", children: nav.map(
                (item) => "external" in item && item.external ? /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "a",
                  {
                    href: item.to,
                    target: "_blank",
                    rel: "noreferrer",
                    className: "relative px-3.5 py-2 text-sm font-medium text-foreground/75 hover:text-foreground transition-colors rounded-full hover:bg-foreground/5",
                    children: item.label
                  },
                  item.to
                ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
                  Link,
                  {
                    to: item.to,
                    className: "relative px-3.5 py-2 text-sm font-medium text-foreground/75 hover:text-foreground transition-colors rounded-full hover:bg-foreground/5",
                    activeProps: { className: "text-foreground bg-foreground/5" },
                    children: item.label
                  },
                  item.to
                )
              ) }),
              /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
                /* @__PURE__ */ jsxRuntimeExports.jsxs(
                  Link,
                  {
                    to: "/give",
                    className: "hidden sm:inline-flex items-center gap-1.5 rounded-full bg-navy-deep text-cream px-4 py-2 text-sm font-medium hover:bg-navy transition-colors",
                    children: [
                      "Give",
                      /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-gold" })
                    ]
                  }
                ),
                /* @__PURE__ */ jsxRuntimeExports.jsx(
                  "button",
                  {
                    onClick: () => setOpen((v) => !v),
                    className: "lg:hidden grid place-items-center w-10 h-10 rounded-full bg-foreground/5 hover:bg-foreground/10 transition-colors",
                    "aria-label": "Menu",
                    children: open ? /* @__PURE__ */ jsxRuntimeExports.jsx(X, { className: "w-4 h-4" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Menu, { className: "w-4 h-4" })
                  }
                )
              ] })
            ]
          }
        ),
        open && /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "lg:hidden mt-2 glass rounded-3xl border border-border/60 p-3 reveal", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid", children: [
          nav.map(
            (item) => "external" in item && item.external ? /* @__PURE__ */ jsxRuntimeExports.jsx(
              "a",
              {
                href: item.to,
                target: "_blank",
                rel: "noreferrer",
                onClick: () => setOpen(false),
                className: "px-4 py-3 rounded-2xl text-sm font-medium text-foreground/80 hover:bg-foreground/5",
                children: item.label
              },
              item.to
            ) : /* @__PURE__ */ jsxRuntimeExports.jsx(
              Link,
              {
                to: item.to,
                onClick: () => setOpen(false),
                className: "px-4 py-3 rounded-2xl text-sm font-medium text-foreground/80 hover:bg-foreground/5",
                children: item.label
              },
              item.to
            )
          ),
          /* @__PURE__ */ jsxRuntimeExports.jsx(
            Link,
            {
              to: "/give",
              onClick: () => setOpen(false),
              className: "mt-1 px-4 py-3 rounded-2xl bg-navy-deep text-cream text-sm font-medium text-center",
              children: "Give"
            }
          )
        ] }) })
      ] })
    }
  );
}
function Footer() {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("footer", { className: "relative mt-32 bg-navy-deep text-cream overflow-hidden", children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx(
      "div",
      {
        className: "absolute inset-0 opacity-[0.06] pointer-events-none",
        style: { backgroundImage: "radial-gradient(white 1px, transparent 1px)", backgroundSize: "24px 24px" }
      }
    ),
    /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "container-page relative pt-24 pb-12", children: [
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "grid lg:grid-cols-12 gap-12", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "lg:col-span-5", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "eyebrow text-cream/60", children: "Emmanuel Voice" }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("h2", { className: "font-display text-4xl md:text-5xl mt-4 leading-[1.05] text-balance", children: [
            "A voice for a generation seeking ",
            /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "font-serif italic text-gold", children: "grace" }),
            "."
          ] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: "mt-6 text-cream/70 max-w-md leading-relaxed", children: "The official online publication of RCCG Emmanuel Sanctuary. Send testimonies, ideas and feedback — we read every message." }),
          /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-8 space-y-2 text-sm", children: [
            /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "mailto:testimonies@emmanuelvoicepublication.com.ng", className: "block text-cream/80 hover:text-gold transition-colors underline-grow", children: "testimonies@emmanuelvoicepublication.com.ng" }),
            /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: "mailto:info@emmanuelvoicepublication.com.ng", className: "block text-cream/80 hover:text-gold transition-colors underline-grow", children: "info@emmanuelvoicepublication.com.ng" })
          ] })
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "lg:col-span-7 grid grid-cols-2 sm:grid-cols-3 gap-8 lg:gap-6", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx(FooterCol, { title: "Read", links: [["https://articles.emmanuelvoicepublication.com.ng/", "Articles", true], ["/testimonies", "Testimonies"], ["/hymn", "Hymns"]] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(FooterCol, { title: "Church", links: [["/about", "About"], ["/events", "Events"], ["/gallery", "Gallery"]] }),
          /* @__PURE__ */ jsxRuntimeExports.jsx(FooterCol, { title: "Support", links: [["/give", "Give"], ["/about", "Contact"]] })
        ] })
      ] }),
      /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "editorial-rule mt-20 opacity-30" }),
      /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "mt-8 flex flex-col md:flex-row items-start md:items-center justify-between gap-4 text-xs text-cream/55", children: [
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
          "© ",
          (/* @__PURE__ */ new Date()).getFullYear(),
          " RCCG Emmanuel Sanctuary · Emmanuel Voice Publication"
        ] }),
        /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "flex items-center gap-2", children: [
          /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-gold" }),
          /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "Published monthly · Lagos, Nigeria" })
        ] })
      ] })
    ] })
  ] });
}
function FooterCol({ title, links }) {
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
    /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "eyebrow text-cream/55", children: title }),
    /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: "mt-5 space-y-3", children: links.map(([to, label, external]) => /* @__PURE__ */ jsxRuntimeExports.jsx("li", { children: external ? /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: to, target: "_blank", rel: "noreferrer", className: "text-cream/85 hover:text-gold transition-colors text-sm underline-grow", children: label }) : /* @__PURE__ */ jsxRuntimeExports.jsx(Link, { to, className: "text-cream/85 hover:text-gold transition-colors text-sm underline-grow", children: label }) }, to + label)) })
  ] });
}
export {
  Footer as F,
  Header as H,
  createLucideIcon as c,
  logo as l
};
