@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-300-normal.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-300-normal.woff2') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-400-normal.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-500-normal.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-500-normal.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-600-normal.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-600-normal.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-700-normal.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-800-normal.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-800-normal.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-cyrillic-900-normal.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0400-045F, U+0490-0491, U+2116;
}

@font-face {
  font-family: 'Onest';
  src: url('../assets/fonts/onest/onest-latin-900-normal.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* =============================================
   ДИЗАЙН-ТОКЕНЫ / CSS CUSTOM PROPERTIES
   Извлечены из макета Figma (1920px)
   ============================================= */

:root {
  /* --- Цвета --- */
  --color-black: #1A1A1A;
  --color-white: #FFFFFF;
  --color-red: #E02F12;
  --color-red-hover: #C72A10;
  --color-red-light: rgba(230, 50, 34, 0.1);
  --color-gray-100: #F5F5F5;
  --color-gray-200: #E8E8E8;
  --color-gray-300: #D4D4D4;
  --color-gray-400: #A3A3A3;
  --color-gray-500: #737373;
  --color-gray-600: #525252;
  --color-gray-700: #404040;
  --color-gray-800: #262626;
  --color-gray-900: #171717;

  /* --- Типографика --- */
  --font-primary: 'Onest', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display: 'Onest', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Размеры шрифтов (будут уточняться по Figma) */
  --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 */
  --text-6xl: 3.75rem;    /* 60px */
  --text-7xl: 4.5rem;     /* 72px */
  --text-8xl: 6rem;       /* 96px */
  --text-9xl: 8rem;       /* 128px */

  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --font-weight-black: 900;

  --line-height-tight: 1.1;
  --line-height-snug: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.625;

  /* --- Отступы (8px grid) --- */
  --space-1: 0.25rem;   /* 4px */
  --space-2: 0.5rem;    /* 8px */
  --space-3: 0.75rem;   /* 12px */
  --space-4: 1rem;      /* 16px */
  --space-5: 1.25rem;   /* 20px */
  --space-6: 1.5rem;    /* 24px */
  --space-8: 2rem;      /* 32px */
  --space-10: 2.5rem;   /* 40px */
  --space-12: 3rem;     /* 48px */
  --space-16: 4rem;     /* 64px */
  --space-20: 5rem;     /* 80px */
  --space-24: 6rem;     /* 96px */
  --space-32: 8rem;     /* 128px */

  /* --- Контейнер --- */
  --container-max: 1440px;
  --container-padding: var(--space-8);
  --page-max: 1736px;
  --page-gutter: clamp(16px, 4.8vw, 92px);
  --app-stable-vh: 1vh;
  --section-title-size: clamp(32px, min(2.6vw, 4vh), 50px);
  --section-title-line: 1.1;
  --section-lead-size: clamp(14px, min(1.56vw, 2.6vh), 30px);
  --section-lead-line: 1.33;
  --section-heading-gap: clamp(14px, min(1.6vw, 2vh), 24px);
  --section-heading-margin: clamp(32px, min(4.8vw, 5vh), 76px);
  --section-card-gap: clamp(13px, 1.35vw, 26px);
  --section-card-radius: 20px;

  /* --- Скругления --- */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* --- Тени --- */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1);

  /* --- Анимации --- */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 350ms ease;

  /* --- Z-index --- */
  --z-header: 100;
  --z-modal-overlay: 200;
  --z-modal: 210;
}

@media (max-width: 1279px) {
  :root {
    --page-gutter: clamp(24px, 3vw, 40px);
  }
}

@media (max-width: 1023px) {
  :root {
    --page-gutter: 24px;
  }
}

@media (max-width: 639px) {
  :root {
    --page-gutter: 16px;
    --mobile-title: clamp(24px, 6.6vw, 28px);
    --mobile-subtitle: clamp(18px, 5.2vw, 20px);
    --mobile-body: clamp(13px, 3.7vw, 15px);
    --mobile-body-lg: clamp(14px, 4.2vw, 17px);
    --mobile-small: clamp(11px, 3.1vw, 13px);
    --mobile-caption: clamp(9px, 2.7vw, 11px);
    --mobile-micro: clamp(8px, 2.35vw, 9.5px);
    --mobile-title-line: 1.1;
    --mobile-subtitle-line: 1.08;
    --mobile-body-line: 1.35;
    --mobile-small-line: 1.3;
    --mobile-caption-line: 1.12;
    --mobile-micro-line: 1.12;
    --section-title-size: var(--mobile-title);
    --section-title-line: var(--mobile-title-line);
    --section-lead-size: var(--mobile-body-lg);
    --section-lead-line: var(--mobile-body-line);
    --section-heading-gap: clamp(10px, 3vw, 14px);
    --section-heading-margin: clamp(24px, 6vw, 36px);
  }
}
