---
import Header from '@/components/Header.astro';
import Footer from '@/components/Footer.astro';
import '@shared/styles/global.css';
import faviconIco from '@assets/out/cultguard-favicon.ico';
import appleTouchIcon from '@assets/out/cultguard-apple-touch-icon.png';
import icon192 from '@assets/out/cultguard-icon-192.png';
import Logo from '@assets/src/cultguard-logo.svg';
import socialShareImg from '@assets/out/cultguard-social-share.jpg';

interface Props {
    title: string;
    description: string;
    keywords?: string;
    ogTitle?: string;
    ogDescription?: string;
    structuredData?: string;
}

const {
    title,
    description,
    keywords = 'copyright monitoring, piracy monitoring, release protection, rights intelligence, anti-piracy for film, copyright enforcement',
    ogTitle,
    ogDescription,
    structuredData
} = Astro.props;

const gitTimestamp = String(Math.floor(Date.now() / 1000));

const finalOgTitle = ogTitle || title;
const finalOgDescription = ogDescription || description;
const canonicalUrl = new URL(Astro.url.pathname, Astro.url.origin).href;
---

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="theme-color" content="#121212">
    <title>{title}</title>
    <meta name="description" content={description}>
    <meta name="keywords" content={keywords}>
    <meta name="author" content="CULTGUARD">

    <meta property="og:type" content="website">
    <meta property="og:site_name" content="CULTGUARD">
    <meta property="og:url" content={canonicalUrl}>
    <meta property="og:title" content={finalOgTitle}>
    <meta property="og:description" content={finalOgDescription}>
    <meta property="og:image" content={`${Astro.url.origin}${socialShareImg.src}`}>
    <meta property="og:image:secure_url" content={`${Astro.url.origin}${socialShareImg.src}`}>
    <meta property="og:image:width" content="1200">
    <meta property="og:image:height" content="630">
    <meta property="og:image:type" content="image/jpeg">
    <meta property="og:image:alt" content="CULTGUARD - online monitoring for titles and release materials">
    <meta property="og:logo" content={`${Astro.url.origin}${Logo.src}`}>
    <meta property="og:updated_time" content={gitTimestamp}>

    <meta name="twitter:card" content="summary_large_image">
    <meta name="twitter:url" content={canonicalUrl}>
    <meta name="twitter:title" content={finalOgTitle}>
    <meta name="twitter:description" content={finalOgDescription}>
    <meta name="twitter:image" content={`${Astro.url.origin}${socialShareImg.src}`}>
    <meta name="twitter:image:alt" content="CULTGUARD - online monitoring for titles and release materials">

    <link rel="canonical" href={canonicalUrl}>
    <link rel="icon" type="image/x-icon" href={(faviconIco as any).src ?? faviconIco}>
    <link rel="apple-touch-icon" sizes="180x180" href={appleTouchIcon.src}>
    <link rel="icon" type="image/png" sizes="192x192" href={icon192.src}>

    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap" media="print" onload="this.media='all'">
    <noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap"></noscript>

    {structuredData && <script type="application/ld+json" set:html={structuredData}></script>}

    <style>
        :root {
            --guard-black: #121212;
            --guard-surface: #18181c;
            --guard-panel: #202127;
            --guard-line: rgba(255, 255, 255, 0.1);
            --guard-grid: rgba(196, 107, 67, 0.14);
            --guard-text: #e6e6e6;
            --guard-white: #ffffff;
            --guard-copper: #c46b43;
            --guard-copper-soft: rgba(196, 107, 67, 0.14);
            --cult-black: var(--guard-black);
            --cult-accent: var(--guard-surface);
            --cult-gray: var(--guard-text);
            --cult-white: var(--guard-white);
            --cult-gold: var(--guard-copper);
        }

        html, body {
            margin: 0;
            padding: 0;
            background: var(--guard-black);
            color: var(--guard-white);
            font-family: 'Space Grotesk', system-ui, sans-serif;
            -webkit-font-smoothing: antialiased;
        }

        main {
            display: block;
        }

        a {
            color: inherit;
        }

        ::selection {
            background: rgba(196, 107, 67, 0.45);
            color: var(--guard-white);
        }
    </style>
</head>
<body>
    <slot name="header">
        <Header />
    </slot>
    <main>
        <slot />
    </main>
    <Footer />
</body>
</html>
