/* Box sizing для всех элементов */
*,
*::before,
*::after {
  box-sizing: border-box;
}

:root {
    /* Цветовая система */
    --color-primary: #0696ee;        /* Основной цвет сайта (кнопки, ссылки) */
    --color-primary-hover: #ff8c00;  /* Цвет при наведении */
    --color-accent: #0696ee;         /* Акцентный цвет для чекбоксов */
    --color-text: #0a0a0a;           /* Основной цвет текста */
    --color-text-secondary: #555555; /* Вторичный цвет текста - улучшенный контраст */
    --color-text-light: #777777;     /* Светлый цвет текста - улучшенный контраст */
    --color-bg: #ffffff;             /* Основной фон */
    --color-bg-secondary: #f8f9fa;   /* Вторичный фон */
    --color-light: #fafbfc;          /* Светлый фон */
    --color-border: #e9ecef;         /* Цвет границ */
    --color-border-light: #f1f3f4;   /* Светлые границы */
    --success-color: #28a745;        /* Цвет успеха */
    --warning-color: #ffc107;        /* Цвет предупреждения */
    --error-color: #dc3545;          /* Цвет ошибки */
    --shadow-light: 0 2px 4px rgba(0, 0, 0, 0.1);
    --shadow-medium: 0 4px 8px rgba(0, 0, 0, 0.15);
    --shadow-heavy: 0 8px 16px rgba(0, 0, 0, 0.2);
  
    /* Типографика */
    --font-family: 'Raleway', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-size-base: 16px;
    --font-size-sm: 14px;
    --font-size-xs: 12px;
    --font-size-lg: 18px;
    --font-size-xl: 20px;
    --font-size-2xl: 24px;
    --font-size-3xl: 32px;
    --font-size-4xl: 40px;
    --font-size-5xl: 48px;
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-extrabold: 800;
    --line-height-tight: 1.2;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.7;
  
    /* Система отступов */
    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;
    --spacing-2xl: 48px;
    --spacing-3xl: 64px;
    --spacing-4xl: 80px;
    --spacing-5xl: 96px;
  
    /* Размеры компонентов */
    --border-radius-sm: 4px;
    --border-radius-md: 8px;
    --border-radius-lg: 12px;
    --border-radius-xl: 16px;
    --border-radius-full: 50%;
  
    /* Контейнеры и сетка */
    --container-max-width: 80vw;
    --container-padding: var(--spacing-md);
    --grid-gap: var(--spacing-lg);
  
    /* Переходы */
    --transition-fast: 0.15s ease;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;
  
    /* Z-index система */
    --z-dropdown: 1000;
    --z-sticky: 1020;
    --z-fixed: 1030;
    --z-modal-backdrop: 1040;
    --z-modal: 1050;
    --z-popover: 1060;
    --z-tooltip: 1070;
  
    /* Цвета фона */
    --bg-color: #ffffff;             /* Фон модальных окон и компонентов */
  
    /* Общие стили для focus-visible (добавлено для устранения дублирования) */
    --focus-outline: 3px solid var(--color-primary);
    --focus-outline-white: 3px solid #fff;
    --focus-offset-sm: 2px;
    --focus-offset-md: 3px;
    --focus-box-shadow: 0 0 0 6px var(--color-primary);
  
    /* Общие стили для hover эффектов */
    --hover-bg-primary: rgba(6, 150, 238, 0.05);
    --hover-bg-secondary: rgba(6, 150, 238, 0.1);
    --hover-transform-up: translateY(-0.1rem);
    --hover-transform-up-sm: translateY(-0.05rem);

  /* Дополнительные цвета для теней и эффектов */
  --shadow-primary-light: 0 2px 4px rgba(6, 150, 238, 0.3);
  --shadow-primary-medium: 0 0.5vw 1.5vw rgba(6, 150, 238, 0.3);
}

/* Предотвращение горизонтального скролла */
html,
body {
  overflow-x: hidden;
  max-width: 100vw;
  position: relative;
}

/* Блокировка скролла при открытом мобильном меню */
body.menu-open {
  overflow: hidden;
  position: fixed;
  width: 100%;
}

/* Предотвращаем нежелательный скролл при фокусе */
button:focus,
.header__hamburger:focus {
  scroll-behavior: auto !important;
}

/* Глобальные настройки скролла */
html {
  scroll-behavior: smooth;
}

html.no-scroll-behavior {
  scroll-behavior: auto !important;
}

/* Стили для toast уведомлений */
.toast {
  position: fixed;
  top: 20px;
  right: 20px;
  background: var(--success-color);
  color: white;
  padding: 12px 20px;
  border-radius: var(--border-radius-md);
  z-index: 10000;
  font-size: var(--font-size-sm);
  max-width: 300px;
  box-shadow: var(--shadow-medium);
  opacity: 0;
  transform: translateY(-20px);
  transition: all var(--transition-normal);
  font-weight: var(--font-weight-medium);
}

.toast--error {
  background: var(--error-color);
}

.toast--success {
  background: var(--success-color);
}

/* Базовая форма поиска (searchform.php) */
.search-form {
  display: flex;
  gap: 10px;
  max-width: 500px;
}

.search-form label {
  flex: 1;
  margin: 0;
}

.search-form .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Accessibility: Screen reader only text (alias) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.search-form .search-field {
  width: 100%;
  padding: 12px 20px;
  border: 2px solid var(--color-border);
  border-radius: var(--border-radius-md);
  font-size: var(--font-size-base);
  transition: border-color var(--transition-fast);
}

.search-form .search-field:focus {
  outline: none;
  border-color: var(--color-primary);
}

.search-form .search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  background: var(--color-primary);
  color: white;
  border: none;
  border-radius: var(--border-radius-md);
  font-size: var(--font-size-base);
  font-weight: var(--font-weight-semibold);
  cursor: pointer;
  transition: background var(--transition-fast);
}

.search-form .search-submit:hover {
  background: var(--color-primary-hover);
}

@media (max-width: 768px) {
  .search-form {
    flex-direction: column;
  }
  
  .search-form .search-submit {
    width: 100%;
  }
}

/* ===============================
   ОПТИМИЗАЦИИ ПРОИЗВОДИТЕЛЬНОСТИ
   =============================== */

/* Предотвращение горизонтального скролла */
* {
  max-width: 100%;
}

img,
video,
iframe {
  max-width: 100%;
  height: auto;
}

/* Оптимизация рендеринга для секций ниже видимой области */
.partners,
.before-after,
.video-reviews,
.equipment,
.faq {
  content-visibility: auto;
  contain-intrinsic-size: auto 500px;
}

/* Принудительное использование GPU для анимаций */
.hero__cta-btn,
.header--scrolled,
.modal {
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* Оптимизация изображений */
img {
  content-visibility: auto;
}