/* Оптимизация layout для всех размеров экранов */

/* Базовые настройки для оптимального отображения */
* {
  box-sizing: border-box;
}

html {
  /* Базовый размер шрифта для rem единиц */
  font-size: 16px;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  overflow-x: hidden;
}

/* Оптимизация основного контейнера */
.page-container {
  display: flex;
  min-height: 100vh;
  width: 100%;
  max-width: 100vw;
  position: relative;
}

/* Фиксированный sidebar */
.sidebar {
  width: 250px;
  min-width: 250px;
  max-width: 250px;
  position: fixed;
  left: 0;
  top: 0;
  height: 100vh;
  z-index: 1000;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Основной контент с правильными отступами */
.main-content {
  flex: 1;
  margin-left: 250px;
  width: calc(100% - 250px);
  min-height: 100vh;
  padding: 20px;
  max-width: calc(100vw - 250px);
  overflow-x: hidden;
}

/* Контейнер для контента с максимальной шириной */
.content-wrapper {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Адаптивные размеры шрифтов */
.hero-title {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  line-height: 1.2;
}

.hero-subtitle {
  font-size: clamp(1rem, 2vw, 1.2rem);
  line-height: 1.5;
}

/* Адаптивная сетка для feature cards */
.feature-grid,
.packages-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr));
  gap: 20px;
  width: 100%;
}

/* Правильное масштабирование карточек */
.feature-card,
.package-card {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

/* Timeline оптимизация */
.timeline-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: 10px;
  overflow-x: auto;
  overflow-y: visible;
  padding: 20px 0;
}

.timeline-item {
  flex: 0 0 auto;
  width: clamp(150px, 15vw, 180px);
  min-height: 200px;
}

/* Оптимизация для разных размеров экранов */

/* Большие мониторы (1920px+) */
@media (min-width: 1920px) {
  html {
    font-size: 18px;
  }
  
  .content-wrapper {
    max-width: 1600px;
  }
}

/* Средние мониторы (1366px - типичный 15" ноутбук) */
@media (min-width: 1366px) and (max-width: 1919px) {
  html {
    font-size: 16px;
  }
  
  .content-wrapper {
    max-width: 1200px;
  }
}

/* Маленькие ноутбуки (1280px - 720p) */
@media (min-width: 1280px) and (max-width: 1365px) {
  html {
    font-size: 15px;
  }
  
  .sidebar {
    width: 220px;
    min-width: 220px;
  }
  
  .main-content {
    margin-left: 220px;
    width: calc(100% - 220px);
    max-width: calc(100vw - 220px);
  }
  
  .content-wrapper {
    max-width: 100%;
    padding: 0 15px;
  }
}

/* Планшеты и маленькие экраны */
@media (max-width: 1279px) {
  html {
    font-size: 14px;
  }
  
  .sidebar {
    width: 200px;
    min-width: 200px;
  }
  
  .main-content {
    margin-left: 200px;
    width: calc(100% - 200px);
    max-width: calc(100vw - 200px);
  }
  
  .packages-container {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  }
}

/* Мобильные устройства */
@media (max-width: 991px) {
  html {
    font-size: 16px;
  }
  
  .sidebar {
    transform: translateX(-100%);
    transition: transform 0.3s ease;
  }
  
  .sidebar.show {
    transform: translateX(0);
  }
  
  .main-content {
    margin-left: 0;
    width: 100%;
    max-width: 100vw;
    padding: 15px;
  }
  
  .content-wrapper {
    padding: 0;
  }
  
  .mobile-menu-toggle {
    display: flex;
  }
  
  .packages-container {
    grid-template-columns: 1fr;
  }
  
  .timeline-container {
    flex-direction: column;
    align-items: center;
  }
  
  .timeline-item {
    width: 90%;
    max-width: 300px;
    margin: 10px 0;
  }
  
  .timeline-item:nth-child(odd),
  .timeline-item:nth-child(even) {
    margin-top: 10px;
    margin-bottom: 10px;
  }
}

/* Очень маленькие экраны */
@media (max-width: 576px) {
  html {
    font-size: 14px;
  }
  
  .hero-section {
    padding: 20px 15px;
  }
  
  .feature-grid {
    grid-template-columns: 1fr;
  }
}

/* Специальная оптимизация для 720p дисплеев (1280x720) */
@media (width: 1280px) and (height: 720px) {
  html {
    font-size: 14px;
  }
  
  .hero-section {
    padding: 25px;
    margin-bottom: 20px;
  }
  
  .sidebar {
    width: 200px;
  }
  
  .main-content {
    margin-left: 200px;
    padding: 15px;
  }
  
  .packages-container {
    gap: 15px;
  }
  
  .package-card {
    padding: 15px;
  }
}

/* Убираем горизонтальный скролл */
* {
  max-width: 100%;
}

img {
  height: auto;
  display: block;
}

/* Оптимизация производительности */
.hero-wave,
.timeline::after {
  will-change: transform;
}

/* Плавные переходы */
* {
  transition: none;
}

@media (prefers-reduced-motion: no-preference) {
  .sidebar,
  .feature-card,
  .package-card,
  .timeline-item {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
  }
}

/* Убеждаемся что контент не выходит за границы */
.main-content > * {
  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
}

/* Фикс для пакетов на странице package.php */
.packages-section {
  width: 100%;
  overflow: hidden;
}

.packages-container {
  width: 100%;
  padding: 0;
  margin: 0 auto;
}