/* Font Face Declarations */
@font-face {
    font-family: 'Amsterdam Four';
    src: url('../assets/fonts/Amsterdam-Four_ttf.woff2') format('woff2'),
         url('../assets/fonts/Amsterdam-Four_ttf.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Cormorant';
    src: url('../assets/fonts/Cormorant-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Cormorant Light';
    src: url('../assets/fonts/Cormorant-Light.woff2') format('woff2'),
         url('../assets/fonts/Cormorant-Light.woff') format('woff');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Cormorant Italic';
    src: url('../assets/fonts/Cormorant-Italic-VariableFont_wght.ttf') format('truetype');
    font-weight: 100 900;
    font-style: italic;
    font-display: swap;
}

:root {
    /* Colors */
    --color-primary: #000000;
    --color-secondary: #ffffff;
    --color-overlay: rgba(0, 0, 0, 0.5);
    
    /* Typography */
    --font-primary: 'Cormorant', serif;
    --font-secondary: 'Amsterdam Four', sans-serif;
    --font-light: 'Cormorant Light', serif;
    --font-italic: 'Cormorant Italic', serif;
    
    /* Font Sizes - Using clamp for fluid typography */
    --fs-small: clamp(0.875rem, 0.8vw + 0.7rem, 1rem);
    --fs-body: clamp(1rem, 1vw + 0.75rem, 1.125rem);
    --fs-nav: clamp(0.625rem, 2vw + 0.5rem, 2.188rem);
    --fs-heading: clamp(1.5rem, 3vw + 1rem, 2.5rem);
    
    /* Spacing */
    --spacing-xs: clamp(0.5rem, 1vw, 1rem);
    --spacing-sm: clamp(1rem, 2vw, 2rem);
    --spacing-md: clamp(2rem, 4vw, 4rem);
    --spacing-lg: clamp(3rem, 6vw, 6rem);
    
    /* Layout */
    --container-max-width: 120rem;
    --container-padding: clamp(1rem, 5vw, 3rem);
    
    /* Z-index layers */
    --z-behind: -1;
    --z-normal: 1;
    --z-overlay: 2;
    --z-header: 10;
    
    /* Transitions */
    --transition-fast: 200ms ease-in-out;
    --transition-normal: 300ms ease-in-out;
    --transition-slow: 500ms ease-in-out;
}

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

/* Base Styles */
html {
    font-size: 16px;
    scroll-behavior: smooth;
}

body {
    font-family: var(--font-primary);
    font-size: var(--fs-body);
    line-height: 1.5;
    color: var(--color-primary);
    overflow-x: hidden;
}

/* Utility Classes */
.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.container {
    width: 100%;
    max-width: var(--container-max-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}