/* ==========================================================================
   CSS Custom Properties (Design Tokens)
   ========================================================================== */

:root {
    /* Colors — Primary */
    --color-primary: #1B2A4A;
    --color-primary-light: #2A3F6A;
    --color-primary-dark: #111C33;

    /* Colors — Accent */
    --color-accent: #C8942A;
    --color-accent-light: #D4A94D;
    --color-accent-dark: #A67A1F;

    /* Colors — Neutrals */
    --color-bg: #FAFAF7;
    --color-bg-warm: #F0EDE6;
    --color-bg-card: #FFFFFF;
    --color-border: #E2DDD5;
    --color-border-light: #F0EDE6;

    /* Colors — Text */
    --color-text: #2D2D2D;
    --color-text-light: #6B6B6B;
    --color-text-muted: #999999;
    --color-text-inverse: #FFFFFF;

    /* Colors — Semantic */
    --color-success: #2D8A56;
    --color-error: #C0392B;
    --color-info: #2980B9;

    /* Focus */
    --focus-outline: 2px solid var(--color-accent);
    --focus-outline-offset: 2px;
    --focus-shadow: 0 0 0 4px rgba(200, 148, 42, 0.25);

    /* Typography */
    --font-heading: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Source Sans 3', 'Segoe UI', Roboto, sans-serif;
    --font-ui: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

    /* Font Sizes (modular scale ~1.25) */
    --text-xs: 0.75rem;     /* 12px */
    --text-sm: 0.875rem;    /* 14px */
    --text-base: 1rem;      /* 16px */
    --text-lg: 1.125rem;    /* 18px */
    --text-xl: 1.25rem;     /* 20px */
    --text-2xl: 1.5rem;     /* 24px */
    --text-3xl: 1.875rem;   /* 30px */
    --text-4xl: 2.25rem;    /* 36px */
    --text-5xl: 3rem;       /* 48px */

    /* Font Weights */
    --weight-light: 300;
    --weight-regular: 400;
    --weight-medium: 500;
    --weight-semibold: 600;
    --weight-bold: 700;

    /* Line Heights */
    --leading-tight: 1.2;
    --leading-normal: 1.6;
    --leading-relaxed: 1.8;

    /* Spacing */
    --space-xs: 0.25rem;    /* 4px */
    --space-sm: 0.5rem;     /* 8px */
    --space-md: 1rem;       /* 16px */
    --space-lg: 1.5rem;     /* 24px */
    --space-xl: 2rem;       /* 32px */
    --space-2xl: 3rem;      /* 48px */
    --space-3xl: 4rem;      /* 64px */
    --space-4xl: 6rem;      /* 96px */

    /* Layout */
    --container-max: 1200px;
    --container-narrow: 800px;
    --container-padding: 1.5rem;

    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-xl: 16px;
    --radius-full: 9999px;

    /* Shadows */
    --shadow-sm: 0 1px 3px rgba(27, 42, 74, 0.08);
    --shadow-md: 0 4px 12px rgba(27, 42, 74, 0.1);
    --shadow-lg: 0 8px 24px rgba(27, 42, 74, 0.12);
    --shadow-xl: 0 16px 48px rgba(27, 42, 74, 0.15);

    /* Shadows — Enhanced */
    --shadow-hover: 0 8px 30px rgba(27, 42, 74, 0.15);
    --shadow-card-hover: 0 12px 36px rgba(27, 42, 74, 0.14);

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 400ms ease;

    /* Premium Easing Curves */
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
    --ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
    --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);

    /* Animation Durations */
    --duration-entrance: 800ms;
    --duration-stagger: 120ms;
    --duration-micro: 200ms;
    --duration-reveal: 600ms;

    /* Z-index */
    --z-dropdown: 100;
    --z-sticky: 200;
    --z-overlay: 300;
    --z-modal: 400;
    --z-toast: 500;

    /* Ornamental / Decorative */
    --ornament-color: var(--color-accent);
    --ornament-color-subtle: rgba(200, 148, 42, 0.15);

    /* Shadows — Layered */
    --shadow-layered: 0 1px 3px rgba(27, 42, 74, 0.06), 0 8px 24px rgba(27, 42, 74, 0.08);
    --shadow-layered-hover: 0 2px 6px rgba(27, 42, 74, 0.08), 0 16px 40px rgba(27, 42, 74, 0.14);

    /* Card Accent */
    --card-accent-border: 3px solid var(--color-accent);

    /* Gradients */
    --gradient-warm-subtle: linear-gradient(135deg, var(--color-bg-warm) 0%, var(--color-bg) 100%);
    --gradient-primary-dark: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);

    /* Extended Typography */
    --text-6xl: 3.75rem;   /* 60px */
    --text-display: 4.5rem; /* 72px */

    /* Animation Durations — Extended */
    --duration-count: 2000ms;

    /* Header */
    --header-height: 80px;
}
