/* Umbraco Forms theme: CNB-horizontal (single-column, stacked) */

.cnb-form {
    width: 100%;
    max-width: 100%;
}

    .cnb-form *,
    .cnb-form *::before,
    .cnb-form *::after {
        box-sizing: border-box;
    }

    /* 1. Section headings */
    .cnb-form .umbraco-forms-fieldset {
        border: 0;
        margin: 0;
        padding: 0;
        min-width: 0;
    }

        .cnb-form .umbraco-forms-fieldset + .umbraco-forms-fieldset {
            margin-top: 24px;
        }

    .cnb-form .cnb-form-section-heading {
        display: block;
        width: 100%;
        font-size: 26px;
        font-weight: 700;
        color: #002c7b;
        line-height: 1.3;
        border: 0;
        padding: 0;
        margin: 0 0 20px 0;
    }

        .cnb-form .cnb-form-section-heading::before {
            content: "";
            display: block;
            width: 45%;
            border-top: 2pt solid #5c9464;
            margin-bottom: 30px;
        }

    /* 2. Field labels and spacing */
    .cnb-form .cnb-form-group {
        display: block;
        width: 100%;
        margin: 0 0 24px 0;
    }

    .cnb-form .cnb-form-label-wrapper {
        display: block;
        margin-bottom: 8px;
    }

    .cnb-form .umbraco-forms-label {
        display: block;
        font-size: 17px;
        font-weight: 600;
        color: #212529;
        margin: 0;
    }

    .cnb-form .cnb-form-help {
        display: block;
        font-size: 15px;
        color: #495057;
        margin-top: 4px;
    }

    .cnb-form .cnb-form-field {
        display: block;
        width: 100%;
    }

    /* 3. Inputs */
    .cnb-form input[type="text"],
    .cnb-form input[type="email"],
    .cnb-form input[type="tel"],
    .cnb-form input[type="number"],
    .cnb-form input[type="password"],
    .cnb-form input[type="date"],
    .cnb-form input[type="datetime-local"],
    .cnb-form input[type="file"],
    .cnb-form select,
    .cnb-form textarea,
    .cnb-form .form-control {
        display: block;
        width: 100%;
        max-width: 100%;
        min-height: 44px;
        font-size: 17px;
        border: 1px solid #adb5bd;
        border-radius: 4px;
        padding: 8px 12px;
    }

        .cnb-form textarea,
        .cnb-form textarea.form-control {
            min-height: 120px;
            resize: vertical;
        }

    /* 4. Radio buttons and checkboxes */
    .cnb-form .radiobuttonlist,
    .cnb-form .checkboxlist {
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .cnb-form .form-check {
        display: flex;
        align-items: center;
        min-height: 12px;
        padding-left: 0;
        margin: 0;
    }

    .cnb-form .form-check-input {
        position: static;
        flex: 0 0 auto;
        width: 20px;
        height: 20px;
        min-height: 0;
        margin: 0 12px 0 0;
        cursor: pointer;
    }

    .cnb-form .form-check label,
    .cnb-form .form-check-label {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 4px 0;
        flex: 1 1 auto;
        font-size: 17px;
        font-weight: 400;
        color: #212529;
        margin: 0;
        cursor: pointer;
    }

    /* Validation */
    .cnb-form .field-validation-error {
        display: block;
        margin-top: 8px;
        font-size: 15px;
        color: #b00020;
    }

    /* 5. Overall layout / navigation */
    .cnb-form .cnb-form-navigation {
        margin-top: 15px;
    }

        .cnb-form .cnb-form-navigation .btn {
            min-height: 44px;
            font-size: 17px;
            margin: 0 8px 8px 0;
        }

@media (max-width: 575.98px) {
    .cnb-form .cnb-form-navigation .btn {
        width: 100%;
        margin-right: 0;
    }
}
