// ─── Top navigation + footer ──────────────────────────────────── const NAV_ITEMS = [ { id: "home", label: "トップ", labelEn: "Home" }, { id: "services", label: "サービス", labelEn: "Services" }, { id: "wp-maint", label: "WP保守", labelEn: "Maintenance" }, { id: "seo", label: "SEO対策", labelEn: "SEO" }, { id: "works", label: "実績", labelEn: "Works" }, { id: "company", label: "会社概要", labelEn: "Company" }]; function TopNav({ page, go }) { const [scrolled, setScrolled] = React.useState(false); const [menuOpen, setMenuOpen] = React.useState(false); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 10); window.addEventListener("scroll", onScroll, { passive: true }); onScroll(); return () => window.removeEventListener("scroll", onScroll); }, []); React.useEffect(() => { setMenuOpen(false); }, [page]); React.useEffect(() => { document.body.style.overflow = menuOpen ? "hidden" : ""; return () => { document.body.style.overflow = ""; }; }, [menuOpen]); const nav = (pageId, opts) => { setMenuOpen(false); go(pageId, opts); }; return ( <>
{menuOpen &&
setMenuOpen(false)} />}
UIARB合同会社
); } function Logo() { return ( ); } function Footer({ go }) { return ( ); } function FooterCol({ label, items, go, children }) { return (
{label}
{children || }
); } // Big CTA block used at the bottom of every page function BigCTA({ go, tweaks }) { const strong = tweaks?.ctaStrength === "strong"; const subtle = tweaks?.ctaStrength === "subtle"; return (
{!subtle &&
}
GET IN TOUCH

まずは、お話から。

30分の無料相談で、現状の課題・予算・ゴールを整理します。
その場での見積り・営業は一切行いません。

3営業日以内にご返信しています
); } function ScrollToTop() { const [visible, setVisible] = React.useState(false); React.useEffect(() => { const onScroll = () => setVisible(window.scrollY > 400); window.addEventListener("scroll", onScroll, { passive: true }); return () => window.removeEventListener("scroll", onScroll); }, []); return ( ); } Object.assign(window, { TopNav, Footer, BigCTA, ScrollToTop, NAV_ITEMS });