:root {
            --msf-primary-color: #fdc800;
            --msf-light-gray: #F7F7F7;
            --msf-medium-gray: #E0E0E0;
            --msf-dark-gray: #6c757d;
            --msf-text-color: #212529;
        }

        /* --- Body and Wrapper --- */
        body {
            font-family: 'Manrope', sans-serif;
            background-color: var(--msf-light-gray);
        }
        
        /* This new wrapper handles the centering of the form */
        .msf-form-wrapper {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            padding: 2rem 0;
        }

        .msf-form-container {
            background-color: #fff;
            padding: 2.5rem;
            border-radius: 1.5rem;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
            width: 100%;
            max-width: 1350px;
        }

        /* --- Step Indicator --- */
        .msf-step-indicator {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 3rem;
            position: relative;
        }

        .msf-step {
            text-align: center;
            flex: 1;
            position: relative;
        }

        .msf-step-number {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background-color: var(--msf-light-gray);
            border: 2px solid var(--msf-medium-gray);
            color: var(--msf-dark-gray);
            display: flex;
            justify-content: center;
            align-items: center;
            font-weight: 700;
            margin: 0 auto 0.5rem auto;
            transition: all 0.3s ease;
            position: relative;
            z-index: 2; /* Ensure number is above the line */
        }

        .msf-step-label {
            font-size: 16px;
            font-weight: 600;
            color: var(--msf-dark-gray);
            transition: all 0.3s ease;
        }

        /* Connecting Lines */
        .msf-step:not(:first-child)::before {
            content: '';
            position: absolute;
            top: 20px;
            right: 50%; /* Start from the center of the current step */
            width: 100%; /* Span the full width to the previous step */
            height: 2px;
            background-color: var(--msf-medium-gray);
            z-index: 1; /* Place line behind the number */
            transition: background-color 0.4s ease;
        }

        /* Active State */
        .msf-step.active .msf-step-number {
            background-color: var(--msf-primary-color);
            color: #fff;
            border-color: var(--msf-primary-color);
        }

        .msf-step.active .msf-step-label {
            color: var(--msf-text-color);
        }
        
        /* Completed State */
        .msf-step.completed .msf-step-number {
            background-color: var(--msf-primary-color);
            border-color: var(--msf-primary-color);
        }
        
        .msf-step.completed .msf-step-number span {
            display: none; /* Hide the number */
        }

        .msf-step.completed .msf-step-number::after {
            content: '\f00c'; /* Font Awesome check icon */
            font-family: 'Font Awesome 6 Free';
            font-weight: 900;
            color: #fff;
            font-size: 1rem;
            position: absolute;
        }

        .msf-step.completed::before {
            background-color: var(--msf-primary-color);
        }

        /* --- Form Styles --- */
        .msf-form-step {
            display: none;
        }
        .msf-form-step.active {
            display: block;
        }

        .form-control, .form-select {
            background-color: var(--msf-light-gray);
            border: 1px solid var(--msf-medium-gray);
            border-radius: 0.75rem;
            padding: 0.8rem 1rem;
            transition: all 0.3s ease;
        }
        .form-control:focus, .form-select:focus {
            background-color: #fff;
            border-color: var(--msf-primary-color);
            box-shadow: 0 0 0 3px rgba(74, 108, 253, 0.2);
        }
        
        .msf-checkbox-group {
            background-color: var(--msf-light-gray);
            padding: 1rem;
            border-radius: 0.75rem;
            border: 1px solid var(--msf-medium-gray);
        }

        /* --- Navigation Buttons --- */
        .msf-form-navigation {
            display: flex;
            justify-content: space-between;
            margin-top: 2.5rem;
        }

        .msf-btn-form {
            padding: 0.8rem 2.5rem;
            border-radius: 50px;
            font-weight: 700;
            border: none;
            transition: all 0.3s ease;
        }
        .msf-btn-next {
            background-color: var(--msf-primary-color);
            color: #fff;
        }
        .msf-btn-next:hover {
            background-color: #fdc800;
        }
        .msf-btn-prev {
            background-color: #fdc800;
            color: white;
        }
        .msf-btn-prev:hover {
            background-color: #d3d3d3;
        }
        
        /* Helper classes */
        .msf-hidden {
            display: none;
        }
        .msf-sub-input {
            margin-top: 0.75rem;
        }
        
        /* Validation Error */
        .form-control.is-invalid {
            border-color: red;
        }
        .msf-error-message {
            color: red;
            font-size: 0.8rem;
            margin-top: 2rem;
            text-align: center;
        }


        /* --- Form Header Styles --- */
.msf-form-header {
    text-align: center;
    max-width: 850px; /* Match the form container width */
    margin: 0 auto 0 auto; /* Center the header and add space below */
    padding: 0 1rem;
}

.msf-main-heading {
    font-weight: 800;
    font-size: 2.5rem;
    color: var(--msf-text-color);
    margin-bottom: 1rem;
}

.msf-sub-text {
    font-size: 1.1rem;
    color: var(--msf-dark-gray);
    max-width: 650px;
    margin: 0 auto 2rem auto;
}

.msf-form-title {
    font-weight: 700;
    font-size: 1.75rem;
    color: var(--msf-text-color);
    margin-bottom: 0.5rem;
}

.msf-form-instructions {
    color: var(--msf-dark-gray);
}