/**
 * Slider Scroll Fix - Исправления для стабильности слайдера при скролле
 * Этот файл содержит дополнительные исправления для предотвращения
 * изменения размеров слайдера при скролле на мобильных устройствах
 */

/* Дополнительные исправления для мобильного слайдера */
@media (max-width: 768px) {
  
  /* Принудительная стабилизация размеров слайдера */
  .header-hero--mobile {
    contain: layout style paint; /* CSS containment для изоляции */
    transform: translateZ(0); /* Создание нового слоя композиции */
    position: relative;
    overflow: hidden;
  }
  
  /* Стабилизация медиа элементов */
  .header-hero--mobile .header-hero__video,
  .header-hero--mobile .header-hero__image {
    contain: layout style paint;
    transform: translateZ(0);
    backface-visibility: hidden; /* Предотвращение мерцания */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  /* Стабилизация контейнера слайдера */
  .header-hero--mobile .header-hero__swiper {
    contain: layout style paint;
    transform: translateZ(0);
    backface-visibility: hidden;
    position: relative;
    overflow: hidden;
    /* Используем CSS переменную для высоты, если доступна */
    height: var(--visual-viewport-height, calc(100dvh - var(--sb-mobile-header-height) - var(--sb-ticker-height))) !important;
  }
  
  /* Предотвращение изменения размеров при скролле */
  .header-hero--mobile .swiper-slide {
    contain: layout style paint;
    transform: translateZ(0);
    backface-visibility: hidden;
    position: relative;
    width: 100%;
    height: 100%;
  }
  
  /* Стабилизация хедера */
  .header-mobile__bar {
    contain: layout style paint;
    transform: translateZ(0);
    backface-visibility: hidden;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
  }
  
  /* Дополнительная оптимизация для iOS и других мобильных браузеров */
  .header-hero--mobile,
  .header-hero--mobile * {
    -webkit-transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    -webkit-perspective: 1000;
    -webkit-font-smoothing: antialiased;
  }
  
  /* Специфичные исправления для iOS Safari - используем lvh (large viewport height) */
  @supports (-webkit-touch-callout: none) {
    /* lvh всегда использует максимальный размер viewport (без учёта адресной строки) */
    .header-hero--mobile .header-hero__swiper {
      height: calc(100lvh - var(--sb-mobile-header-height) - var(--sb-ticker-height)) !important;
      min-height: calc(100lvh - var(--sb-mobile-header-height) - var(--sb-ticker-height)) !important;
      max-height: calc(100lvh - var(--sb-mobile-header-height) - var(--sb-ticker-height)) !important;
    }
  }
  
  /* Дополнительно используем svh (small viewport height) как fallback */
  @supports (height: 100svh) {
    .header-hero--mobile .header-hero__swiper {
      height: calc(100svh - var(--sb-mobile-header-height) - var(--sb-ticker-height)) !important;
      min-height: calc(100svh - var(--sb-mobile-header-height) - var(--sb-ticker-height)) !important;
      max-height: calc(100svh - var(--sb-mobile-header-height) - var(--sb-ticker-height)) !important;
    }
  }
  
  /* Принудительное предотвращение изменения размеров */
  .header-hero--mobile .header-hero__swiper,
  .header-hero--mobile .swiper-slide,
  .header-hero--mobile .header-hero__video,
  .header-hero--mobile .header-hero__image {
    will-change: auto !important; /* Отключаем will-change для стабильности */
    transition: none !important; /* Отключаем переходы */
  }
}

/* Исправления для предотвращения layout shift */
@media (max-width: 768px) {
  
  /* Фиксируем размеры viewport с поддержкой Visual Viewport API */
  .header-hero--mobile .header-hero__swiper {
    min-height: var(--visual-viewport-height, calc(100dvh - var(--sb-mobile-header-height) - var(--sb-ticker-height)));
    max-height: var(--visual-viewport-height, calc(100dvh - var(--sb-mobile-header-height) - var(--sb-ticker-height)));
    height: var(--visual-viewport-height, calc(100dvh - var(--sb-mobile-header-height) - var(--sb-ticker-height))) !important;
  }
  
  /* Предотвращаем изменение размеров медиа */
  .header-hero--mobile .header-hero__video {
    min-height: 100%;
    max-height: 100%;
    min-width: 100%;
    max-width: 100%;
    object-fit: cover;
    object-position: center;
  }
  
  .header-hero--mobile .header-hero__image {
    min-height: 100%;
    max-height: 100%;
    min-width: 100%;
    max-width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
  
  /* Дополнительная стабилизация для всех элементов слайдера */
  .header-hero--mobile .swiper-wrapper {
    height: 100% !important;
    width: 100% !important;
  }
  
  .header-hero--mobile .swiper-slide {
    height: 100% !important;
    width: 100% !important;
    flex-shrink: 0;
  }
}

/* Дополнительные исправления для старых браузеров */
@supports not (height: 100dvh) {
  @media (max-width: 768px) {
    .header-hero--mobile .header-hero__swiper {
      min-height: var(--visual-viewport-height, calc(100vh - var(--sb-mobile-header-height) - var(--sb-ticker-height)));
      max-height: var(--visual-viewport-height, calc(100vh - var(--sb-mobile-header-height) - var(--sb-ticker-height)));
      height: var(--visual-viewport-height, calc(100vh - var(--sb-mobile-header-height) - var(--sb-ticker-height))) !important;
    }
  }
}

/* КРИТИЧНО: Фиксация размеров для элементов с заблокированной высотой */
@media (max-width: 768px) {
  /* Слайдер с зафиксированной высотой - ПОЛНАЯ блокировка изменений */
  .header-hero--mobile .header-hero__swiper[data-height-locked="true"] {
    /* Высота установлена через inline style в пикселях */
    transform: translateZ(0) !important;
    will-change: auto !important;
    transition: none !important;
    overflow: hidden !important;
    position: relative !important;
  }
  
  /* Все дочерние элементы также блокируются */
  .header-hero--mobile .header-hero__swiper[data-height-locked="true"] * {
    transform: translateZ(0) !important;
    will-change: auto !important;
    transition: none !important;
  }
  
  /* Медиа элементы в зафиксированном слайдере */
  .header-hero--mobile .header-hero__swiper[data-height-locked="true"] .header-hero__video,
  .header-hero--mobile .header-hero__swiper[data-height-locked="true"] .header-hero__image {
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    background-size: cover !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
  }
  
  /* Слайды в зафиксированном слайдере */
  .header-hero--mobile .header-hero__swiper[data-height-locked="true"] .swiper-slide {
    /* Высота установлена через inline style */
    width: 100% !important;
  }
  
  /* Wrapper в зафиксированном слайдере */
  .header-hero--mobile .header-hero__swiper[data-height-locked="true"] .swiper-wrapper {
    /* Высота установлена через inline style */
    width: 100% !important;
  }
}
