/* Consent Banner Animations */
.animate-slide-up {
    animation: slideUpFadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.animate-slide-down {
    animation: slideDownFadeOut 0.3s cubic-bezier(0.4, 0, 1, 1);
}

@keyframes slideUpFadeIn {
    from { 
        transform: translateY(100%) scale(0.95); 
        opacity: 0; 
    }
    to { 
        transform: translateY(0) scale(1); 
        opacity: 1; 
    }
}

@keyframes slideDownFadeOut {
    from { 
        transform: translateY(0) scale(1); 
        opacity: 1; 
    }
    to { 
        transform: translateY(100%) scale(0.95); 
        opacity: 0; 
    }
}

/* Backdrop blur support */
.backdrop-blur-sm {
    backdrop-filter: blur(4px);
}

/* Consent banner specific styles - more prominent for GDPR compliance */
#consent-banner {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 2px solid rgba(59, 130, 246, 0.2);
}

/* Light glass morphism effect */
#consent-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.1));
    z-index: -1;
}

/* Hover effects for buttons */
#consent-banner button {
    transform: translateY(0);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

#consent-banner button:hover {
    transform: translateY(-0.5px);
}

#consent-banner button:active {
    transform: translateY(0);
}

/* Blue gradient button for light theme */
#accept-all-cookies {
    box-shadow: 0 4px 14px 0 rgba(37, 99, 235, 0.25);
}

#accept-all-cookies:hover {
    box-shadow: 0 6px 20px 0 rgba(37, 99, 235, 0.35);
}

/* Essential button styling for light theme */
#accept-necessary-only {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

#accept-necessary-only:hover {
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
}

/* Close button for light theme */
#close-consent-banner:hover {
    background-color: rgba(243, 244, 246, 1);
}

/* Modal overlay */
#consent-preferences-modal {
    backdrop-filter: blur(4px);
}

/* Custom toggle switch styles for better accessibility */
.consent-toggle input:checked + .toggle-slider {
    background-color: #2563eb;
}

.consent-toggle input:focus + .toggle-slider {
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

/* Responsive adjustments */
@media (max-width: 640px) {
    #consent-banner .container {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    
    #consent-preferences-modal .modal-content {
        margin: 1rem;
        max-height: calc(100vh - 2rem);
    }
}