/* ROOT CSS - Статические переменные и базовые стили */

/* Подключение локальных шрифтов */
@font-face {
    font-family: 'Montserrat';
    src: url('/static/assets/fonts/Montserrat/static/Montserrat-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat';
    src: url('/static/assets/fonts/Montserrat/static/Montserrat-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat';
    src: url('/static/assets/fonts/Montserrat/static/Montserrat-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Montserrat';
    src: url('/static/assets/fonts/Montserrat/static/Montserrat-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-ExtraBold.ttf') format('truetype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

/* Playfair Display - Italic начертания */
@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-Italic.ttf') format('truetype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-MediumItalic.ttf') format('truetype');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-SemiBoldItalic.ttf') format('truetype');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-BoldItalic.ttf') format('truetype');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/static/assets/fonts/Playfair/static/PlayfairDisplay-ExtraBoldItalic.ttf') format('truetype');
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

:root {
    /* Цвета */
    --color-primary: #2c3e50;
    --color-secondary: #34495e;
    --color-accent: #3498db;
    --color-success: #27ae60;
    --color-danger: #e74c3c;
    --color-warning: #f39c12;
    --color-footer: #2d322a;
    
    --color-bg: #efefef;
    --color-bg-form: #f9f9f9;
    --color-banner-bg: #a9b193;
    --color-bg-dark: #bdc3c7;
    --color-white: #ffffff;
    --color-black: #000000;
    --color-text: #2c3e50;
    --color-text-green: #3c4a33;
    --color-text-light: #7f8c8d;
    --color-border: #dfe6e9;
    --color-form-inputs: #f2f2f2;
    --color-form-inputs-placeholder: #b3b3b3;
    
    /* Размеры */
    --sidebar-width: 240px;
    --header-height: 60px;
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    
    /* Шрифты */
    --font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-family-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-size-sm: clamp(10px, 1.2vw, 12px);
    --font-size-base: clamp(12px, 1.4vw, 14px);
    --font-size-lg: clamp(14px, 1.5vw, 16px);
    --font-size-l: clamp(14px, 1.6vw, 18px);
    --font-size-xl: clamp(16px, 1.8vw, 20px);
    --font-size-xxl: clamp(18px, 2.2vw, 24px);
    --font-size-xxxl: clamp(22px, 3vw, 32px);
    
    
    /* Тени */
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.12);
    --shadow-md: 0 2px 6px rgba(0,0,0,0.15);
    --shadow-lg: 0 4px 12px rgba(0,0,0,0.15);
    
    /* Радиусы */
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    
    /* Переходы */
    --transition-fast: 0.15s ease;
    --transition-base: 0.3s ease;
}

/* Сброс стилей */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-family);
    font-size: var(--font-size-base);
    color: var(--color-text);
    background-color: var(--color-bg);
    line-height: 1.6;
    overflow-x: hidden;
    max-width: 100vw;
}

html {
    overflow-x: hidden;
    max-width: 100vw;
}

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

button {
    font-family: inherit;
    cursor: pointer;
}

ul, ol {
    list-style: none;
}

table {
    border-collapse: collapse;
    width: 100%;
}

