/*! Cookie Private v1.0 | Bigor Studio | Изолированные стили */

/* Базовый сброс */
.ccm-banner *,
.ccm-banner *::before,
.ccm-banner *::after,
.ccm-modal *,
.ccm-modal *::before,
.ccm-modal *::after {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    font-family: var(--ccm-font-family, Montserrat, sans-serif) !important;
    font-weight: var(--ccm-font-weight, 400) !important;
    line-height: 1.5 !important;
}

/* Баннер согласия */
.ccm-banner {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    max-width: 420px !important;
    width: calc(100% - 40px) !important;
    padding: 20px !important;
    background: var(--ccm-bg-color, #E8E8E8) !important;
    color: var(--ccm-text-color, #0D0D0D) !important;
    border-radius: var(--ccm-border-radius, 8px) !important;
    box-shadow: var(--ccm-box-shadow, 0 10px 25px rgba(0, 0, 0, 0.1)) !important;
    z-index: 999999 !important;
    transform: translateY(150%) !important;
    transition: transform var(--ccm-transition-speed, 0.3s) cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
    border: var(--ccm-btn-border-width, 1px) solid var(--ccm-secondary-color, #C4C4C4) !important;
    font-size: var(--ccm-font-size, 14px) !important;
}

.ccm-banner.active {
    transform: translateY(0) !important;
}

.ccm-banner-content {
    display: flex !important;
    flex-direction: column !important;
    gap: 15px !important;
}

.ccm-banner-text {
    margin: 0 !important;
    color: inherit !important;
}

.ccm-buttons {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
}

/* Общие стили кнопок */
.ccm-btn {
    padding: var(--ccm-btn-padding-y, 10px) var(--ccm-btn-padding-x, 16px) !important;
    border-radius: calc(var(--ccm-border-radius, 8px) - 2px) !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: all var(--ccm-transition-speed, 0.3s) ease !important;
    font-size: inherit !important;
    border: var(--ccm-btn-border-width, 1px) solid transparent !important;
    flex: 1 !important;
    min-width: 100px !important;
    text-align: center !important;
}

/* Кнопка "Принять" */
.ccm-btn-accept {
    background: var(--ccm-accept-bg, #0D0D0D) !important;
    color: var(--ccm-accept-text-color, #FFFFFF) !important;
    border-color: var(--ccm-accept-bg, #0D0D0D) !important;
}

.ccm-btn-accept:hover {
    background: var(--ccm-accept-hover-bg, #333333) !important;
    color: var(--ccm-accept-hover-text-color, #FFFFFF) !important;
    border-color: var(--ccm-accept-hover-bg, #333333) !important;
    transform: var(--ccm-hover-effect, translateY(-1px)) !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) !important;
}

/* Кнопка "Отказаться" */
.ccm-btn-reject {
    background: var(--ccm-reject-bg, #C4C4C4) !important;
    color: var(--ccm-reject-text-color, #0D0D0D) !important;
    border-color: var(--ccm-reject-bg, #C4C4C4) !important;
}

.ccm-btn-reject:hover {
    background: var(--ccm-reject-hover-bg, #D4D4D4) !important;
    color: var(--ccm-reject-hover-text-color, #0D0D0D) !important;
    border-color: var(--ccm-reject-hover-bg, #D4D4D4) !important;
    transform: var(--ccm-hover-effect, translateY(-1px)) !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1) !important;
}

/* Кнопка "Настроить" */
.ccm-btn-settings {
    background: var(--ccm-settings-bg, transparent) !important;
    color: var(--ccm-settings-text-color, #0D0D0D) !important;
    border-color: var(--ccm-secondary-color, #C4C4C4) !important;
}

.ccm-btn-settings:hover {
    background: var(--ccm-settings-hover-bg, #F0F0F0) !important;
    color: var(--ccm-settings-hover-text-color, #0D0D0D) !important;
    transform: var(--ccm-hover-effect, translateY(-1px)) !important;
}

/* Модальное окно */
.ccm-modal {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 1000000 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: all var(--ccm-transition-speed, 0.3s) ease !important;
    background: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(3px) !important;
}

.ccm-modal.active {
    opacity: 1 !important;
    visibility: visible !important;
}

.ccm-modal-content {
    position: relative !important;
    background: var(--ccm-bg-color, #E8E8E8) !important;
    border-radius: var(--ccm-border-radius, 8px) !important;
    max-width: 500px !important;
    width: calc(100% - 40px) !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    padding: 25px !important;
    box-shadow: var(--ccm-box-shadow, 0 20px 25px -5px rgba(0, 0, 0, 0.1)) !important;
    color: var(--ccm-text-color, #0D0D0D) !important;
    border: var(--ccm-btn-border-width, 1px) solid var(--ccm-secondary-color, #C4C4C4) !important;
    font-size: var(--ccm-font-size, 14px) !important;
}

.ccm-modal-title {
    margin: 0 0 20px 0 !important;
    font-size: 1.2em !important;
    color: var(--ccm-primary-color, #0D0D0D) !important;
}

.ccm-service {
    margin-bottom: 20px !important;
    padding-bottom: 15px !important;
    border-bottom: var(--ccm-btn-border-width, 1px) solid var(--ccm-secondary-color, #C4C4C4) !important;
}

.ccm-service:last-child {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
}

.ccm-service-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 10px !important;
}

.ccm-service-title {
    margin: 0 !important;
    font-size: 1em !important;
    color: var(--ccm-primary-color, #0D0D0D) !important;
}

.ccm-service-desc {
    margin: 0 !important;
    font-size: 0.9em !important;
    opacity: 0.9 !important;
}

/* Toggle переключатели */
.ccm-switch {
    position: relative !important;
    display: inline-block !important;
    width: 50px !important;
    height: 24px !important;
}

.ccm-switch input {
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
}

.ccm-slider {
    position: absolute !important;
    cursor: pointer !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background-color: var(--ccm-secondary-color, #C4C4C4) !important;
    transition: var(--ccm-transition-speed, 0.3s) !important;
    border-radius: 34px !important;
}

.ccm-slider:before {
    position: absolute !important;
    content: "" !important;
    height: 16px !important;
    width: 16px !important;
    left: 4px !important;
    bottom: 4px !important;
    background-color: white !important;
    transition: var(--ccm-transition-speed, 0.3s) !important;
    border-radius: 50% !important;
}

input:checked + .ccm-slider {
    background-color: var(--ccm-primary-color, #0D0D0D) !important;
}

input:checked + .ccm-slider:before {
    transform: translateX(26px) !important;
}

input:disabled + .ccm-slider {
    background-color: #e0e0e0 !important;
    cursor: not-allowed !important;
}

/* Кнопка "Сохранить" */
.ccm-modal-buttons {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 20px !important;
}

.ccm-modal-save {
    background: var(--ccm-save-bg, #0D0D0D) !important;
    color: var(--ccm-save-text-color, #FFFFFF) !important;
    border-color: var(--ccm-save-bg, #0D0D0D) !important;
    padding: var(--ccm-btn-padding-y, 10px) var(--ccm-btn-padding-x, 16px) !important;
    border-radius: calc(var(--ccm-border-radius, 8px) - 2px) !important;
    cursor: pointer !important;
    font-weight: 500 !important;
    transition: all var(--ccm-transition-speed, 0.3s) !important;
    font-size: inherit !important;
    min-width: 200px !important;
}

.ccm-modal-save:hover {
    background: var(--ccm-save-hover-bg, #333333) !important;
    color: var(--ccm-save-hover-text-color, #FFFFFF) !important;
    border-color: var(--ccm-save-hover-bg, #333333) !important;
    transform: var(--ccm-hover-effect, translateY(-1px)) !important;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) !important;
}

/* Ссылка для открытия настроек */
.ccm-open-modal {
    display: inline-block !important;
    padding: 5px 0 !important;
    transition: all var(--ccm-transition-speed, 0.3s) ease !important;
    color: #E6E9EA !important;
    cursor: pointer !important;
    background: none !important;
    border: none !important;
    font-size: inherit !important;
}

.ccm-open-modal:hover {
	color: #6ec1e4 !important;
}

/* Адаптивность */
@media (max-width: 480px) {
    .ccm-banner {
        max-width: none !important;
        right: 10px !important;
        bottom: 10px !important;
        width: calc(100% - 20px) !important;
    }
    
    .ccm-buttons {
        flex-direction: column !important;
    }
    
    .ccm-btn {
        width: 100% !important;
    }
}