/* Импортируем шрифт Butler */
@font-face {
    font-family: 'Butler';
    src: url('https://cdnjs.cloudflare.com/ajax/libs/fonts/butler/butler.woff2') format('woff2');
    font-weight: normal;
    font-style: normal;
}

/* Основные цвета из ТЗ */
:root {
    --bg-primary: #EEE9DA; /* молочно-бежевый */
    --accent: #B45444; /* томатный красный */
    --text-primary: #1D2B36; /* тёмно-синий */
    --light-olive: #D9D5C3; /* светло-оливковый */
    --light-gray: rgba(255, 255, 255, 0.8); /* полупрозрачный белый */
}

/* Нормализация и базовые стили */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Montserrat', sans-serif;
    font-weight: 300;
    color: var(--text-primary);
    background: linear-gradient(135deg, var(--bg-primary) 0%, #F2E9D5 100%);
    line-height: 1.6;
    overflow-x: hidden;
    margin: 0;
    padding: 0;
    min-height: 100vh;
}

/* Базовые типографские стили */
h1, h2, h3, h4 {
    font-family: 'Butler', serif;
    font-weight: normal;
    color: var(--text-primary);
    margin-bottom: 1rem;
    position: relative;
}

h1 {
    font-size: 3.5rem;
    letter-spacing: 0.05em;
}

h2 {
    font-size: 2.5rem;
    margin-bottom: 2rem;
}

h3 {
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
}

p {
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

a {
    color: var(--accent);
    text-decoration: none;
    transition: all 0.3s ease;
}

a:hover {
    opacity: 0.8;
}

/* Дополнительные стили для блокировки прокрутки при открытом меню */
body.menu-open {
    overflow: hidden;
}

/* Оптимизация производительности */
.loaded .hero, .loaded section, .loaded footer {
    will-change: transform;
    transform: translateZ(0);
    backface-visibility: hidden;
}