/* Custom Fonts */
/*@font-face {
    font-family: 'dbold';
    src: url('../fonts/CooperHewitt-Book.otf') format('woff2');
}

@font-face {
    font-family: 'dbook';
    src: url('../fonts/CooperHewitt-Book.otf') format('woff2');
}*/

/* General Styles */
body {
    background-color: #f8f9fa;
    font-family: '', sans-serif;
}

.registration-form {
    background: #FFF;
    padding: 0rem;
    border-radius: 0px;
    box-shadow: 0 0 0px rgba(0,0,0,0);
    margin-top: 6rem;
    margin-bottom: 10em;
}

/* Progress Bar Styles */
.step-progress {
    display: flex;
    justify-content: space-between;
    margin-bottom: 2rem;
    position: relative;
}

.step-progress::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 2px;
    background: #e9ecef;
    z-index: 1;
}

.step {
    position: relative;
    z-index: 2;
    background: white;
    padding: 0 1rem;
    text-align: center;
}

.step.active .step-number {
    background: #8a005c;
    color: white;
}

.step-number {
    width: 30px;
    height: 30px;
    background: #e9ecef;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.5rem;
}

.step-text {
    font-size: 0.875rem;
    color: #6c757d;
}

/* Form Styles */
.form-control, .form-select {
    border: 1px solid #ced4da;
    padding: 0.75rem;
    font-family: 'cbook', sans-serif;
}

.form-control:focus, .form-select:focus {
    border-color: #8a005c;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25);
}

label {
    font-family: 'csb', sans-serif;
    margin-bottom: 0.5rem;
}


/* Optional Step Styles */
.optional-step label::after {
    content: ' (Optionnel)';
    color: #6c757d;
    font-style: italic;
}

.optional-step input[required],
.optional-step select[required] {
    background-color: #fff !important;
}

/* Button Styles */
.btn {
    padding: 0.75rem 2rem;
    font-family: 'cb', sans-serif;
}

.btn-primary {
    background-color: #8a005c;
    border: none;
}

.btn-primary:hover {
    background-color: #0056b3;
}

.btn-secondary {
    background-color: #6c757d;
    border: none;
}

.btn-success {
    background-color: #28a745;
    border: none;
}

/* Telephone Input Styles */
.iti {
    width: 100%;
    display: block;
}

.iti__flag {
    background-image: url("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/18.2.1/img/flags.png");
}

@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
    .iti__flag {
        background-image: url("https://cdnjs.cloudflare.com/ajax/libs/intl-tel-input/18.2.1/img/flags@2x.png");
    }
}

/* Enhanced Telephone Input Styles */
.iti__selected-flag {
    background-color: #f8f9fa !important;
    border: 0px solid #ced4da;
    border-right: none;
    border-radius: 20px 0 0 20px;
    transition: all 0.2s ease;
}

.iti__selected-flag:hover {
    background-color: #e9ecef !important;
}

.iti--separate-dial-code .iti__selected-flag {
    border-radius: 20px 0 0 20px;
}

.iti--separate-dial-code .form-control {
    border-radius: 20px;
    padding-left: 85px;
    font-size: 1rem;
    height: calc(3.5rem + 2px);
    transition: all 0.2s ease;
}

.iti--separate-dial-code .form-control:focus {
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
}

/* Select2 Custom Styles */
.select2-container--bootstrap-5 .select2-selection {
    min-height: calc(3.5rem + 2px) !important;
    padding: 1rem 0.75rem;
    font-size: 1rem;
    border-radius: 20px!important;
    border: 1px solid #ced4da;
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    padding: 0;
}

.select2-container--bootstrap-5 .select2-selection--single .select2-selection__arrow {
    height: 100%;
    top: 0;
    right: 0.75rem;
}

.select2-container--bootstrap-5 .select2-dropdown {
    border-color: #80bdff;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.select2-container--bootstrap-5 .select2-results__option--highlighted[aria-selected] {
    background-color: #007bff;
}

.select2-container--bootstrap-5 .select2-search--dropdown .select2-search__field {
    padding: 0.3rem;
    border-radius: 20px;
    border: 1px solid #ced4da;
}

.select2-container--bootstrap-5 .select2-results__option {
    padding: 0.75rem;
}

/* Time Input Styles */
.time-input {
    cursor: pointer;
    background-color: #fff;
}

.time-input:hover {
    background-color: #f8f9fa;
}


/* Responsive Adjustments */
@media (max-width: 768px) {
    .registration-form {
        padding: 1rem;
    }

    .step-text {
        font-size: 0.75rem;
    }

    .select2-container--bootstrap-5 .select2-selection {
        padding: 0.5rem;
    }
}