import type { Metadata, Viewport } from "next";
import { Hanken_Grotesk, Inter } from "next/font/google";
import "./globals.css";
import { Navbar } from "@/components/layout/Navbar";
import { Footer } from "@/components/layout/Footer";

const hankenGrotesk = Hanken_Grotesk({
  subsets: ["latin"],
  weight: ["600", "700", "800"],
  variable: "--font-display",
  display: "swap",
});

const inter = Inter({
  subsets: ["latin"],
  weight: ["400", "600", "700"],
  variable: "--font-body",
  display: "swap",
});

export const metadata: Metadata = {
  metadataBase: new URL("https://nearle.in"),
  title: {
    default: "Nearle — Your Neighborhood, Delivered",
    template: "%s | Nearle",
  },
  description:
    "Hyper-local essentials, hot meals, and professional services from verified businesses within your 2km radius. India's #1 neighborhood commerce platform.",
  keywords: [
    "hyperlocal",
    "neighborhood delivery",
    "Coimbatore",
    "local grocery",
    "Nearle",
    "home services",
    "India delivery",
    "neighborhood commerce",
  ],
  openGraph: {
    title: "Nearle — Your Neighborhood, Delivered",
    description:
      "Hyper-local essentials, hot meals, and professional services from verified businesses within your 2km radius.",
    url: "https://nearle.in",
    siteName: "Nearle",
    locale: "en_IN",
    type: "website",
    images: [
      {
        url: "/logo.png",
        width: 512,
        height: 512,
        alt: "Nearle logo",
      },
    ],
  },
  twitter: {
    card: "summary",
    title: "Nearle — Your Neighborhood, Delivered",
    description:
      "India's hyperlocal neighborhood commerce platform",
    images: ["/logo.png"],
  },
  alternates: { canonical: "/" },
  icons: {
    icon: "/favicon.ico",
    shortcut: "/favicon.ico",
    apple: "/apple-icon.png",
  },
  robots: { index: true, follow: true },
};

export const viewport: Viewport = {
  themeColor: "#4d046a",
  width: "device-width",
  initialScale: 1,
};

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html
      lang="en"
      className={`${hankenGrotesk.variable} ${inter.variable}`}
      suppressHydrationWarning
    >
      <head>
        {/* Material Symbols Outlined */}
        <link
          href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:wght,FILL@100..700,0..1&display=swap"
          rel="stylesheet"
        />
      </head>
      <body className="bg-background text-on-surface font-body antialiased" suppressHydrationWarning>
        <Navbar />
        <main>{children}</main>
        <Footer />
      </body>
    </html>
  );
}
