import type { Metadata } from "next";
import Script from "next/script";
import { Lato, IBM_Plex_Serif } from "next/font/google";
import "./globals.css";
import { OrganizationJsonLd } from "@/components/JsonLd";

const lato = Lato({
  variable: "--font-lato",
  subsets: ["latin"],
  weight: ["300", "400", "700", "900"],
});

const plexSerif = IBM_Plex_Serif({
  variable: "--font-plex-serif",
  subsets: ["latin"],
  weight: ["400", "600"],
  style: ["normal", "italic"],
});

export const metadata: Metadata = {
  title: "Sigma Tax Pro",
  description: "Professional tax software for tax preparers.",
};

const SITE_URL = "https://sigmataxpro.com";

export default function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  return (
    <html
      lang="en"
      className={`${lato.variable} ${plexSerif.variable}`}
    >
      <head>
        <meta httpEquiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://connect.facebook.net https://googleads.g.doubleclick.net https://js.authorize.net https://jstest.authorize.net https://www.google.com https://www.gstatic.com https://www.googletagmanager.com https://www.googleadservices.com https://www.recaptcha.net; connect-src 'self' https://ad.doubleclick.net https://adservice.google.com https://analytics.google.com https://connect.facebook.net https://dashstp.sigmataxpro.com https://stats.g.doubleclick.net https://www.facebook.com https://www.google-analytics.com https://www.google.com https://www.googletagmanager.com https://www.googleadservices.com https://www.recaptcha.net; img-src 'self' https://adservice.google.com https://dashstp.sigmataxpro.com https://stats.g.doubleclick.net https://www.facebook.com https://www.google.com https://www.googleadservices.com https://googleads.g.doubleclick.net data:; style-src 'self' 'unsafe-inline'; font-src 'self' https://fonts.gstatic.com; frame-src https://accept.authorize.net https://js.authorize.net https://jstest.authorize.net https://www.google.com https://www.recaptcha.net;" />

        {/* Preload LCP images */}
        <link rel="preload" as="image" href="/img/hero-support-desk.webp" type="image/webp" />
        <link rel="preload" as="image" href="/img/logo.webp" type="image/webp" />

        {/* Preconnect to third-party origins */}
        <link rel="preconnect" href="https://www.googletagmanager.com" />
        <link rel="preconnect" href="https://connect.facebook.net" />
        <link rel="preconnect" href="https://fonts.gstatic.com" />
        <link rel="preconnect" href="https://www.google.com" />
        <link rel="preconnect" href="https://js.authorize.net" />
        <link rel="preconnect" href="https://dashstp.sigmataxpro.com" />

      </head>
      <body>
        {children}

        {/* JSON-LD — placed in <body> so Next.js static export doesn't strip it */}
        <OrganizationJsonLd
          siteTitle="Sigma Tax Pro"
          siteDescription="Professional tax software for tax preparers."
          url={SITE_URL}
          logo={`${SITE_URL}/wp-content/uploads/2022/03/Sigma-Tax-Pro-Logo.png`}
        />

        {/* GA4 + Google Ads — afterInteractive so they don't block */}
        <Script
          src="https://www.googletagmanager.com/gtag/js?id=G-MVKC1C0G2P"
          strategy="afterInteractive"
        />
        <Script id="gtag-init" strategy="afterInteractive">
          {[
            "window.dataLayer = window.dataLayer || [];",
            "function gtag(){dataLayer.push(arguments);}",
            "gtag('js', new Date());",
            "gtag('config', 'G-MVKC1C0G2P');",
            "gtag('config', 'AW-979437692');",
          ].join("\n")}
        </Script>

        {/* Facebook Pixel — lazy after page load */}
        <Script id="fb-pixel" strategy="lazyOnload">
          {[
            "!function(f,b,e,v,n,t,s)",
            "{if(f.fbq)return;n=f.fbq=function(){n.callMethod?",
            "n.callMethod.apply(n,arguments):n.queue.push(arguments)};",
            "if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';",
            "n.queue=[];t=b.createElement(e);t.async=!0;",
            "t.src=v;s=b.getElementsByTagName(e)[0];",
            "s.parentNode.insertBefore(t,s)}(window, document,'script',",
            "'https://connect.facebook.net/en_US/fbevents.js');",
            "fbq('init', '1722841821299879');",
            "fbq('track', 'PageView');",
          ].join("\n")}
        </Script>
        <noscript>
          <img height="1" width="1" src="https://www.facebook.com/tr?id=1722841821299879&ev=PageView&noscript=1" />
        </noscript>
      </body>
    </html>
  );
}
