// Root layout — minimal shell required by Next.js.
// Actual HTML/themed layout is in app/[locale]/layout.tsx
// This layout is only hit by /_not-found at the root level.
import type { Metadata } from "next";
import { Outfit } from "next/font/google";
import { headers } from "next/headers";
import { ThemeProvider } from "@/components/ThemeProvider";
import { LOCALES, SITE_URL } from "@/lib/site";
import "./globals.css";

const outfit = Outfit({
  variable: "--font-outfit",
  subsets: ["latin"],
  display: "swap",
});

export const metadata: Metadata = {
  metadataBase: new URL(SITE_URL),
  title: {
    default: "Norden | Premium Ankastre Ocaklar",
    template: "%s | Norden",
  },
  description:
    "Yüksek performanslı Inox, siyah cam, gazlı ve elektrikli Ceran ankastre ocak koleksiyonları.",
  applicationName: "Norden",
  keywords: ["ankastre ocak", "gazlı ocak", "elektrikli ocak", "Ceran ocak", "Inox ocak", "Norden"],
  openGraph: {
    type: "website",
    siteName: "Norden",
    title: "Norden | Premium Ankastre Ocaklar",
    description:
      "Tasarım, teknoloji ve dayanıklılığı buluşturan premium mutfak sistemleri.",
  },
};

export default async function RootLayout({ children }: { children: React.ReactNode }) {
  const requestHeaders = await headers();
  const nonce = requestHeaders.get("x-nonce") ?? undefined;
  const requestedLocale = requestHeaders.get("x-next-intl-locale");
  const documentLocale = LOCALES.includes(requestedLocale as (typeof LOCALES)[number])
    ? requestedLocale
    : "tr";

  return (
    <html
      lang={documentLocale ?? "tr"}
      suppressHydrationWarning
      data-scroll-behavior="smooth"
      className={outfit.variable}
    >
      <body suppressHydrationWarning>
        <ThemeProvider nonce={nonce}>{children}</ThemeProvider>
      </body>
    </html>
  );
}
