/* CSS Reset */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
}

body {
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas {
    display: block;
    max-width: 100%;
}

input,
button,
textarea,
select {
    font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
    overflow-wrap: break-word;
}

ul,
ol {
    list-style: none;
}

a {
    text-decoration: none;
    color: inherit;
}

/* Self-hosted fonts */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: optional; src: url('../fonts/montserrat-latin.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 700; font-display: optional; src: url('../fonts/montserrat-latin.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 800; font-display: optional; src: url('../fonts/montserrat-latin.woff2') format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; font-display: optional; src: url('../fonts/opensans-latin.woff2') format('woff2'); }
@font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 600; font-display: optional; src: url('../fonts/opensans-latin.woff2') format('woff2'); }
@font-face { font-family: 'Roboto Condensed'; font-style: normal; font-weight: 700; font-display: optional; src: url('../fonts/roboto-condensed-latin.woff2') format('woff2'); }

/* Font fallbacks to reduce CLS */
@font-face {
    font-family: 'Montserrat Fallback';
    src: local('Arial');
    size-adjust: 113.1%;
    ascent-override: 85%;
    descent-override: 22%;
    line-gap-override: 0%;
}

@font-face {
    font-family: 'Open Sans Fallback';
    src: local('Arial');
    size-adjust: 105.3%;
    ascent-override: 101%;
    descent-override: 28%;
    line-gap-override: 0%;
}

/* CSS Variables */
:root {
    /* Colors */
    --primary-gold: #D4A574;
    --dark-brown: #5C4033;
    --military-green: #4A5D23;
    --deep-charcoal: #2C2C2C;
    --cream: #F5F1E8;

    /* Accents */
    --primary-sand: #C4A882;
    --sage-green: #6B7F5E;
    --alert-orange: #E67E22;
    --success-green: #27AE60;
    --white: #FFFFFF;
    --light-gray: #E0E0E0;
    --dark-overlay: rgba(0, 0, 0, 0.6);

    /* Typography */
    --font-heading: 'Montserrat', 'Montserrat Fallback', sans-serif;
    --font-body: 'Open Sans', 'Open Sans Fallback', sans-serif;
    --font-stats: 'Roboto Condensed', sans-serif;

    /* Spacing */
    --space-xs: 8px;
    --space-sm: 16px;
    --space-md: 24px;
    --space-lg: 48px;
    --space-xl: 64px;
    --space-xxl: 96px;

    /* Breakpoints */
    --mobile: 480px;
    --tablet: 768px;
    --desktop: 1024px;
    --max-width: 1200px;

    /* Shadows */
    --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    --shadow-glow: 0 0 15px rgba(212, 165, 116, 0.5);

    /* Transitions */
    --transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-normal: 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    /* Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 16px;
}
