/* --- 1. General Form Field Heights & Consistency --- */
/* Forces Selects, Nice-Selects, and Date Pickers to match your Text Inputs */
.form-control-lg,
.nice-select,
input[type="date"].form-control {
    height: calc(3.5rem + 2px) !important;
    border-radius: 8px !important;
    border: 1px solid #dee2e6 !important;
}

/* --- 2. Nice Select Specific Fixes (Overlapping Solution) --- */
.nice-select {
    line-height: 50px !important; /* Vertically centers the selected text */
    padding-left: 20px !important;
    width: 100% !important;
    float: none !important;
    display: flex !important;
    align-items: center;
}

.nice-select .current {
    font-size: 1rem !important;
    color: #212529 !important;
    margin-top: 8px; /* Pushes text down to prevent overlap with the floating label */
}

/* Fix for the Floating Label overlapping the Select/Date text */
.form-floating > .nice-select ~ label,
.form-floating > input[type="date"] ~ label {
    transform: scale(0.85) translateY(-1.2rem) translateX(0.15rem) !important;
    background: #fff; /* Adds background so the label line doesn't cut through the border */
    padding: 0 5px;
    height: auto;
    opacity: 1;
    z-index: 5;
}

/* Fix specifically for Date Picker internal alignment */
#userDate {
    padding-top: 1.625rem !important;
}

/* --- 3. Time Slot Grid System (5 Columns) --- */
.col-xl-12.col-12.mb-4 label {
    display: block;
    width: 100%;
    font-weight: 600;
    margin-bottom: 15px;
    color: #333;
}

.time-slot-container {
    display: grid;
    grid-template-columns: repeat(5, 1fr); /* Desktop: 5 columns */
    gap: 12px;
    width: 100%;
}

.time-slot-container .btn {
    height: calc(3.5rem + 2px); 
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    transition: all 0.2s ease-in-out;
    padding: 5px;
    margin: 0 !important;
}

/* Hover, Focus, and Active States */
.time-slot-container .btn:hover {
    border-color: #007bff;
    background-color: #f0f7ff;
}

.time-slot-container .btn.active,
.time-slot-container .btn:focus {
    background-color: #007bff !important;
    color: white !important;
    border-color: #0056b3 !important;
    box-shadow: 0 0 0 0.25rem rgba(0, 123, 255, 0.25);
}

/* --- 4. Responsive Breakpoints --- */
@media (max-width: 1200px) {
    .time-slot-container { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 768px) {
    .time-slot-container { grid-template-columns: repeat(2, 1fr); }
    
    /* Ensure nice-select still looks good on mobile */
    .nice-select { font-size: 14px; }
}

@media (max-width: 480px) {
    .time-slot-container { grid-template-columns: 1fr; }
}

/* This ensures the 'active' class applied by JS is visible */
.slot-btn.active {
    background-color: #007bff !important;
    color: white !important;
    border-color: #0056b3 !important;
    box-shadow: 0 4px 8px rgba(0, 123, 255, 0.3) !important;
}

/* Fix for the overlapping dropdown labels we saw in your screenshots */
.form-floating > .nice-select ~ label {
    transform: scale(0.85) translateY(-1.2rem) translateX(0.15rem) !important;
    background: #fff;
    padding: 0 5px;
    opacity: 1;
}



.cta-banner{
    margin-top: 50px;
}


[data-theme= 'dark'] .question .span{
    font-size: larger;

}