/* ============================================
   OVERFLOW FIX - Исправление горизонтального скролла
   ============================================ */

/* Глобальное исправление */
html {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
}

body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
    position: relative;
}

/* Все основные контейнеры */
#main-content,
main,
.page-wrapper {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
}

/* Container и row */
.container-fluid {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Container с правильным max-width как на оригинальном сайте */
@media (min-width: 1200px) {
    .container {
        max-width: 1200px !important;
    }
}

@media (max-width: 1199px) {
    .container {
        max-width: 100% !important;
    }
}

.row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
}

/* Navbar - базовые правила */
.navbar {
    width: 100% !important;
    max-width: 100vw !important;
}

.navbar .container {
    width: 100% !important;
}

/* Предотвращаем перенос элементов navbar */
@media (min-width: 992px) {
    .navbar .container {
        flex-wrap: nowrap !important;
    }
    
    .navbar-nav {
        flex-wrap: nowrap !important;
    }
    
    /* Разрешаем overflow для десктопа, чтобы увеличенные nav-link были видны */
    .navbar {
        overflow-x: hidden !important;
        overflow-y: hidden !important;
    }
    
    .navbar .container,
    .navbar-collapse,
    .navbar-collapse ul,
    .navbar-nav,
    .nav-item {
        overflow: visible !important;
        text-align: center;
    }
}

/* Мобильная версия - сохраняем overflow hidden */
@media (max-width: 991px) {
    .navbar {
        overflow: hidden !important;
    }
    
    .navbar .container {
        overflow: hidden !important;
    }
    
    .navbar-collapse {
        overflow-y: auto !important;
        overflow-x: hidden !important;
        max-height: calc(100vh - 80px) !important;
    }
}

/* Sections */
section {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
}

/* Images */
img {
    max-width: 100% !important;
    height: auto !important;
}

/* Offcanvas menu */
.hc-offcanvas-nav {
    max-width: 100vw !important;
}

.hc-offcanvas-nav .nav-container {
    max-width: 85% !important;
}

/* Footer */
footer {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
}

/* Owl Carousel (если используется) */
/* Разрешаем кнопкам nav выходить за пределы секции видео */
section#videos,
section#videos .col-12,
section#videos .row,
section#videos .container {
    overflow: visible !important;
}
/* Но сам stage (лента слайдов) должен обрезаться */
section#videos .owl-stage-outer {
    overflow: hidden !important;
}


/* Video containers */
.video-wrapper,
.video-container {
    max-width: 100% !important;
    overflow: hidden !important;
}

/* Исправление для элементов с position: absolute */
[style*="position: absolute"] {
    max-width: 100% !important;
}

/* Исправление для широких таблиц */
table {
    max-width: 100% !important;
    overflow-x: auto !important;
    display: block !important;
}

/* Исправление для pre и code блоков */
pre,
code {
    max-width: 100% !important;
    overflow-x: auto !important;
}

/* Mobile specific fixes */
@media (max-width: 991px) {
    /* Убираем любые отрицательные margin */
    * {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
    
    /* Исключения для элементов, которым нужны margin */
    .btn,
    .badge,
    .alert,
    p,
    h1, h2, h3, h4, h5, h6 {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    
    /* Исключение для owl carousel — не трогаем его внутренние отступы */
    .owl-item,
    .owl-stage,
    .owl-nav,
    .owl-nav button,
    .owl-nav .owl-prev,
    .owl-nav .owl-next,
    .owl-dots,
    .owl-dot {
        margin-left: unset !important;
        margin-right: unset !important;
    }
    
    /* Container padding */
    .container {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }
}

/* Исправление для элементов с calc() */
[style*="calc"] {
    max-width: 100% !important;
}

/* Исправление для flexbox элементов */
.d-flex,
.flex-row,
.flex-column {
    max-width: 100% !important
}

/* Grid elements */
.grid,
[class*="grid-"] {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Исправление для модальных окон */
.modal,
.modal-dialog {
    max-width: 100% !important;
}

/* Исправление для карточек */
.card,
.card-body {
    max-width: 100% !important;
}

/* Исправление для форм */
form,
.form-group,
.form-control {
    max-width: 100% !important;
}

/* Исправление для списков */
ul, ol {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Debugging - раскомментируйте для поиска проблемных элементов */
/*
* {
    outline: 1px solid red !important;
}
*/
