/* CMS Integration Styles - Минимальные стили для состояний загрузки */

/* Состояние загрузки - ИСПРАВЛЕНО */
.cms-loading .main,
.cms-loading .navbar {
    opacity: 0.7 !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease-in-out !important;
}

/* ИСПРАВЛЕНО: Принудительное убирание состояния загрузки */
body:not(.cms-loading) .main,
body:not(.cms-loading) .navbar {
    opacity: 1 !important;
    pointer-events: auto !important;
    transition: opacity 0.5s ease-in-out !important;
}

.cms-loading::before {
    content: '';
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40px;
    height: 40px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #00FF7F;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 10000;
}

/* ИСПРАВЛЕНО: Убираем анимацию загрузки когда класс убран */
body:not(.cms-loading)::before {
    display: none !important;
}

@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Состояние ошибки */
.cms-error .main {
    opacity: 0.5;
}

.cms-error::after {
    content: 'Ошибка загрузки данных';
    position: fixed;
    top: 20px;
    right: 20px;
    background: #ff4444;
    color: white;
    padding: 10px 20px;
    border-radius: 5px;
    z-index: 10000;
    animation: slideIn 0.3s ease;
}

@keyframes slideIn {
    from { transform: translateX(100%); }
    to { transform: translateX(0); }
}

/* Скрытые элементы */
.cms-hidden {
    display: none !important;
}

/* Шаблоны по умолчанию скрыты */
[data-cms-template] {
    display: none !important;
}

/* Плавные переходы для загруженного контента */
[data-cms-loaded] {
    animation: fadeIn 0.5s ease;
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ИСПРАВЛЕНО: Класс для принудительного показа контента */
/* Этот класс переопределяет CSS с !important из HTML */
.cms-content-visible {
    visibility: visible !important;
    opacity: 1 !important;
    transition: opacity 0.5s ease-in-out !important;
}

/* Дополнительное переопределение для всех элементов с этим классом */
.cms-content-visible.main,
.cms-content-visible.navbar {
    visibility: visible !important;
    opacity: 1 !important;
    transition: opacity 0.5s ease-in-out !important;
}

/* Скрытие прелоадера при показе контента */
.cms-content-visible ~ .preloader,
.cms-content-visible + .preloader {
    opacity: 0 !important;
    transition: opacity 0.5s ease-in-out !important;
}

.cms-content-visible ~ .preloader.hidden,
.cms-content-visible + .preloader.hidden {
    display: none !important;
}

/* ИСПРАВЛЕНО: Дополнительная защита от застрявших состояний */
/* Принудительно показываем контент если загрузка завершена */
body:not(.cms-loading):not(.cms-error) .main,
body:not(.cms-loading):not(.cms-error) .navbar {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
}

/* ИСПРАВЛЕНО: Убираем все анимации загрузки когда они не нужны */
body:not(.cms-loading)::before,
body:not(.cms-loading)::after {
    display: none !important;
}

