.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.gym-card {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.gym-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

/* Custom scrollbar for select */
select::-ms-expand {
    display: none;
}

select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

 /* Custom Checkbox Styles */
 .amenity-checkbox, .rating-checkbox, .class-checkbox, .service-checkbox {
     transition: all 0.2s ease-in-out;
     background-color: #ffffff;
     border-color: #d1d5db;
     cursor: pointer;
     user-select: none;
 }
 
 /* Checked state - multiple selectors for better coverage */
 .amenity-filter:checked + .amenity-checkbox,
 .rating-filter:checked + .rating-checkbox,
 .class-filter:checked + .class-checkbox,
 .service-filter:checked + .service-checkbox,
 input[type="checkbox"]:checked + .amenity-checkbox,
 input[type="checkbox"]:checked + .rating-checkbox,
 input[type="checkbox"]:checked + .class-checkbox,
 input[type="checkbox"]:checked + .service-checkbox {
     background-color: #1f2937 !important;
     border-color: #1f2937 !important;
 }
 
 .amenity-filter:checked + .amenity-checkbox .amenity-checkmark,
 .rating-filter:checked + .rating-checkbox .rating-checkmark,
 .class-filter:checked + .class-checkbox .class-checkmark,
 .service-filter:checked + .service-checkbox .service-checkmark,
 input[type="checkbox"]:checked + .amenity-checkbox .amenity-checkmark,
 input[type="checkbox"]:checked + .rating-checkbox .rating-checkmark,
 input[type="checkbox"]:checked + .class-checkbox .class-checkmark,
 input[type="checkbox"]:checked + .service-checkbox .service-checkmark {
     opacity: 1 !important;
 }
 
 /* Unchecked state */
 .amenity-filter:not(:checked) + .amenity-checkbox,
 .rating-filter:not(:checked) + .rating-checkbox,
 .audience-filter:not(:checked) + .audience-checkbox,
 input[type="checkbox"]:not(:checked) + .amenity-checkbox,
 input[type="checkbox"]:not(:checked) + .rating-checkbox,
 input[type="checkbox"]:not(:checked) + .class-checkbox,
 input[type="checkbox"]:not(:checked) + .service-checkbox {
     background-color: #ffffff !important;
     border-color: #d1d5db !important;
 }
 
 .amenity-filter:not(:checked) + .amenity-checkbox .amenity-checkmark,
 .rating-filter:not(:checked) + .rating-checkbox .rating-checkmark,
 .audience-filter:not(:checked) + .audience-checkbox .audience-checkmark,
 input[type="checkbox"]:not(:checked) + .amenity-checkbox .amenity-checkmark,
 input[type="checkbox"]:not(:checked) + .rating-checkbox .rating-checkmark,
 input[type="checkbox"]:not(:checked) + .class-checkbox .class-checkmark,
 input[type="checkbox"]:not(:checked) + .service-checkbox .service-checkmark {
     opacity: 0 !important;
 }
 
 /* Additional checked state using class */
 .amenity-checkbox.checked,
 .rating-checkbox.checked,
 .class-checkbox.checked,
 .service-checkbox.checked {
     background-color: #1f2937 !important;
     border-color: #1f2937 !important;
 }
 
 .amenity-checkbox.checked .amenity-checkmark,
 .rating-checkbox.checked .rating-checkmark,
 .class-checkbox.checked .class-checkmark,
 .service-checkbox.checked .service-checkmark {
     opacity: 1 !important;
 }
 
 /* Fix any Bootstrap conflicts */
 .form-check-input {
     display: none !important;
 }
 
 .form-check-label {
     margin-bottom: 0 !important;
 }
 
 /* Ensure checkboxes are properly hidden but still functional */
 .amenity-filter, .rating-filter, .class-filter, .service-filter {
     position: absolute !important;
     opacity: 0 !important;
     pointer-events: none !important;
 }

/* Filter sidebar modern styling */
#filterSidebar {
    backdrop-filter: blur(10px);
}

/* Smooth transitions for filter toggles */
.filter-transition {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.filter-card {
    position: relative;
}

.filter-card.active {
    border-color: #3b82f6 !important;
    box-shadow: 0 20px 25px -5px rgba(59, 130, 246, 0.1), 0 10px 10px -5px rgba(59, 130, 246, 0.04) !important;
}

.filter-card.active::before {
    content: '✓';
    position: absolute;
    top: 8px;
    right: 8px;
    width: 28px;
    height: 28px;
    background-color: #3b82f6;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: bold;
    font-size: 16px;
    z-index: 10;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

/* Welcome Modal Animations */
#welcomeModal.hidden {
    display: none;
}

#welcomeModal:not(.hidden) {
    display: block;
}

/* Icon animation */
@keyframes bounceIn {
    0% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#welcomeIcon {
    animation: bounceIn 0.6s ease-out;
}

#welcomeTitle {
    animation: fadeInUp 0.6s ease-out 0.2s both;
}

#modalPanel {
    animation: fadeInUp 0.5s ease-out;
}

#modalBackdrop {
    animation: fadeIn 0.3s ease-out;
}

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