/* CSS Custom Properties - Design Tokens
   This file is the primary place to update when the client provides the design.
   All colors, fonts, spacing, and layout values are defined here.
*/

/* ========================================
   FONT FACES - Public Sans Variable Font
   ======================================== */

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/PublicSans-VariableFont_wght.woff2') format('woff2-variations');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Public Sans';
    src: url('../fonts/PublicSans-Italic-VariableFont_wght.woff2') format('woff2-variations');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

:root {
    /* ========================================
       COLORS
       Update these values to match the client's design
       ======================================== */

    --color-primary: #1a1a1a;
    --color-secondary: #4a4a4a;
    --color-accent: #0066cc;
    --color-background: #ffffff;
    --color-background-alt: #f8f8f8;
    --color-text: #242424;
    --color-text-light: #666666;
    --color-border: #242424;
    --color-error: #cc0000;

    /* Interactive states */
    --color-link: #242424;
    --color-link-hover: #949494;
    --color-focus: #0066cc;

    /* Overlay colors */
    --color-overlay: rgba(0, 0, 0, 0.9);
    --color-overlay-light: rgba(0, 0, 0, 0.5);


    /* ========================================
       TYPOGRAPHY
       Update fonts to match the client's design
       Using Public Sans variable font with system font fallback
       ======================================== */

    --font-family-heading: 'Public Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-family-body: 'Public Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;

    /* Font sizes */
    --font-size-xs: 0.75rem;      /* 12px */
    --font-size-sm: 0.875rem;     /* 14px */
    --font-size-base: 1rem;       /* 16px */
    --font-size-lg: 1.125rem;     /* 18px */
    --font-size-xl: 1.25rem;      /* 20px */
    --font-size-2xl: 1.5rem;      /* 24px */
    --font-size-3xl: 1.875rem;    /* 30px */
    --font-size-4xl: 2.125rem;     /* 34px - custom */
    --font-size-5xl: 3rem;        /* 48px */

    /* Font weights */
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 900;

    /* Line heights */
    --line-height-logo: 1;
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;


    /* ========================================
       SPACING
       Using 8px base unit (multiples: 8, 16, 24, 32, 48, 64, 96, 128)
       ======================================== */

    --spacing-unit: 8px;
    --spacing-xs: calc(var(--spacing-unit) * 1);      /* 8px */
    --spacing-sm: calc(var(--spacing-unit) * 2);      /* 16px */
    --spacing-md: calc(var(--spacing-unit) * 3);      /* 24px */
    --spacing-lg: calc(var(--spacing-unit) * 4);      /* 32px */
    --spacing-xl: calc(var(--spacing-unit) * 6);      /* 48px */
    --spacing-2xl: calc(var(--spacing-unit) * 8);     /* 64px */
    --spacing-3xl: calc(var(--spacing-unit) * 12);    /* 96px */
    --spacing-4xl: calc(var(--spacing-unit) * 16);    /* 128px */


    /* ========================================
       LAYOUT
       ======================================== */

    --max-width: 1200px;
    --max-width-narrow: 800px;
    --container-padding: var(--spacing-md);

    /* Grid */
    --grid-gap: var(--spacing-lg);
    --grid-columns-mobile: 1;
    --grid-columns-tablet: 2;
    --grid-columns-desktop: 3;


    /* ========================================
       BORDERS & RADIUS
       ======================================== */

    --border-width: 1px;
    --border-radius-sm: 2px;
    --border-radius-md: 4px;
    --border-radius-lg: 8px;


    /* ========================================
       SHADOWS
       ======================================== */

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15);


    /* ========================================
       TRANSITIONS & ANIMATIONS
       ======================================== */

    --transition-fast: 150ms ease-in-out;
    --transition-base: 250ms ease-in-out;
    --transition-slow: 400ms ease-in-out;

    --easing-standard: cubic-bezier(0.4, 0.0, 0.2, 1);
    --easing-decelerate: cubic-bezier(0.0, 0.0, 0.2, 1);
    --easing-accelerate: cubic-bezier(0.4, 0.0, 1, 1);


    /* ========================================
       Z-INDEX LAYERS
       ======================================== */

    --z-index-base: 1;
    --z-index-dropdown: 100;
    --z-index-sticky: 200;
    --z-index-modal: 300;
    --z-index-overlay: 400;
    --z-index-toast: 500;



    /* ========================================
       BREAKPOINTS (for reference in media queries)
       ======================================== */

    --breakpoint-sm: 640px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 1024px;
    --breakpoint-xl: 1280px;
}
