/* ============================================================
   Umbraco Forms - LA Works
   Scoped to .customForm wrapper
   ============================================================ */

.form-group {
    margin: 0 auto 1.25rem;
}

/* Main block wrapper used by the Form Picker block partial */
.umbraco-form-block-wrapper.customForm {
    max-width: 56rem;
    margin: 2rem auto;
    padding: clamp(1.25rem, 3vw, 2rem);
    background: #ffffff;
    border: 1px solid #d3d3d3;
    border-radius: .75rem;
    box-shadow: 0 .5rem 1.5rem rgba(4, 52, 92, 0.08);
}

/* Remove unexpected fieldset/page spacing from Umbraco Forms themes */
.customForm .umbraco-forms-page,
.customForm .umbraco-forms-fieldset,
.customForm .umbraco-forms-container {
    margin: 0;
    padding: 0;
    border: 0;
}

/* Field spacing */
/*.customForm .umbraco-forms-field {
    margin-top: 1.5rem;
}*/

/* Primary field labels */
.customForm label.umbraco-forms-label, .customForm legend.umbraco-forms-legend {
    display: block;
    margin-bottom: .4rem;
    color: #04345C;
    font-family: var(--bs-body-font-family);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.35;
}

/* Labels inside field wrappers */
.customForm .umbraco-forms-field-wrapper label {
    color: #333333;
    font-family: var(--bs-body-font-family);
    font-weight: 400;
    line-height: 1.6;
}

/* Standard fields */
.customForm input.text,
.customForm input[type="text"],
.customForm input[type="email"],
.customForm input[type="tel"],
.customForm input[type="number"],
.customForm input[type="url"],
.customForm input[type="date"],
.customForm input[type="password"],
.customForm select,
.customForm textarea {
    width: 100%;
    max-width: 42rem;
    min-height: 2.75rem;
    margin-left: 0;
    padding: .55rem .75rem;
    color: #333333;
    font-family: var(--bs-body-font-family);
    font-size: 1rem;
    line-height: 1.5;
    background-color: #ffffff;
    border: 1px solid #8a949b;
    border-radius: .375rem;
    box-shadow: none;
}

/* Textarea-specific sizing */
.customForm textarea {
    min-height: 8rem;
    resize: vertical;
}

/* Select-specific sizing */
.customForm select {
    height: 2.75rem;
    max-width: 42rem !important;
}

/* Focus states */
.customForm input.text:focus,
.customForm input[type="text"]:focus,
.customForm input[type="email"]:focus,
.customForm input[type="tel"]:focus,
.customForm input[type="number"]:focus,
.customForm input[type="url"]:focus,
.customForm input[type="date"]:focus,
.customForm input[type="password"]:focus,
.customForm select:focus,
.customForm textarea:focus {
    border-color: #04345C;
    outline: 3px solid #FFC107;
    outline-offset: 2px;
}

/* Placeholder text */
.customForm input::placeholder,
.customForm textarea::placeholder {
    color: #6c757d;
    opacity: 1;
}

/* Checkbox and radio groups */
.customForm .checkboxlist,
.customForm .radiobuttonlist {
    display: block;
    margin: .5rem 0 1.5rem;
    padding: 0 !important;
}

/* Actual Umbraco Forms option-row markup:
   .checkboxlist > div > input + label
   .radiobuttonlist > div > input + label
*/
.customForm .checkboxlist > div,
.customForm .radiobuttonlist > div {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    margin: .45rem 0;
}

.customForm .checkboxlist input[type="checkbox"],
.customForm .radiobuttonlist input[type="radio"], 
.customForm input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    margin: .2rem 0 0;
    accent-color: #005E3D;
}

.customForm .checkboxlist label,
.customForm .radiobuttonlist label {
    float: none !important;
    display: block !important;
    width: auto !important;
    max-width: none;
    margin: 0 !important;
    color: #333333;
    font-weight: 400;
    line-height: 1.5;
}

/* Defensive cleanup in case a theme inserts breaks */
.customForm .checkboxlist br,
.customForm .radiobuttonlist br {
    display: none !important;
}

/* Help text / tooltips / descriptions */
.customForm .umbraco-forms-tooltip,
.customForm .umbraco-forms-field-description,
.customForm .umbraco-forms-help-text {
    display: block;
    margin-top: .25rem;
    margin-left: 0;
    color: #555555;
    font-family: var(--bs-body-font-family);
    font-size: .9375rem;
    font-style: italic;
    line-height: 1.45;
}

/* Required indicator and validation */
.customForm .umbraco-forms-indicator {
    color: #b00020;
    font-weight: 700;
}

.customForm .field-validation-error,
.customForm .umbraco-forms-error,
.customForm .validation-summary-errors {
    color: #b00020;
    font-weight: 700;
}

.customForm .validation-summary-errors {
    margin: 1rem 0;
    padding: 1rem;
    background: #fff5f5;
    border-left: 5px solid #b00020;
    border-radius: .375rem;
}

.customForm input.input-validation-error,
.customForm textarea.input-validation-error,
.customForm select.input-validation-error {
    border-color: #b00020;
}

.customForm input.input-validation-error:focus,
.customForm textarea.input-validation-error:focus,
.customForm select.input-validation-error:focus {
    border-color: #b00020;
    outline: 3px solid #FFC107;
    outline-offset: 2px;
}

/* Submit button */
.customForm .btn.primary,
.customForm input[type="submit"],
.customForm button[type="submit"] {
    display: inline-block;
    min-height: 2.75rem;
    margin-top: 1.5rem;
    padding: .55rem 1.25rem;
    color: #ffffff !important;
    font-family: var(--bs-body-font-family);
    font-size: 1rem !important;
    font-weight: 700;
    line-height: 1.5 !important;
    letter-spacing: normal;
    text-align: center;
    text-decoration: none;
    vertical-align: middle;
    cursor: pointer;
    background-color: #04345C !important;
    border: 2px solid #04345C !important;
    border-radius: .375rem;
    box-shadow: 0 .25rem .75rem rgba(4, 52, 92, 0.18);
    transition: color .15s ease-in-out,
                background-color .15s ease-in-out,
                border-color .15s ease-in-out,
                box-shadow .15s ease-in-out;
}

.customForm .btn.primary:hover,
.customForm input[type="submit"]:hover,
.customForm button[type="submit"]:hover {
    color: #ffffff !important;
    background-color: #005E3D !important;
    border-color: #005E3D !important;
}

.customForm .btn.primary:focus,
.customForm input[type="submit"]:focus,
.customForm button[type="submit"]:focus {
    outline: 3px solid #FFC107;
    outline-offset: 3px;
}

.customForm .btn.primary:active,
.customForm input[type="submit"]:active,
.customForm button[type="submit"]:active {
    background-color: #04345C !important;
    border-color: #04345C !important;
    box-shadow: none;
}

/* Form navigation buttons, where applicable */
.customForm .umbraco-forms-navigation {
    margin-top: 1.5rem;
}

/* Success / submitted message */
.customForm .umbraco-forms-submitmessage,
.customForm .umbraco-forms-message {
    margin: 1rem 0;
    padding: 1rem;
    color: #04345C;
    background: #f3faf7;
    border-left: 5px solid #0C9162;
    border-radius: .375rem;
    font-weight: 600;
}

/* Hidden fields */
.umbraco-forms-hidden {
    display: none !important;
}

/* Recaptcha / security widgets, if used */
.customForm .umbraco-forms-recaptcha,
.customForm .g-recaptcha {
    margin-top: 1.5rem;
}

/* Responsive adjustments */
@media (max-width: 800px) {
    .umbraco-form-block-wrapper.customForm {
        margin: 1.5rem auto;
        padding: 1rem;
        border-radius: .5rem;
    }

    .customForm input.text,
    .customForm input[type="text"],
    .customForm input[type="email"],
    .customForm input[type="tel"],
    .customForm input[type="number"],
    .customForm input[type="url"],
    .customForm input[type="date"],
    .customForm input[type="password"],
    .customForm select,
    .customForm textarea {
        max-width: none !important;
        width: 100% !important;
    }

    .customForm .btn.primary,
    .customForm input[type="submit"],
    .customForm button[type="submit"] {
        width: 100%;
    }
}

/* High contrast / forced colors support */
@media (forced-colors: active) {
    .customForm input.text,
    .customForm input[type="text"],
    .customForm input[type="email"],
    .customForm input[type="tel"],
    .customForm input[type="number"],
    .customForm input[type="url"],
    .customForm input[type="date"],
    .customForm input[type="password"],
    .customForm select,
    .customForm textarea,
    .customForm .btn.primary,
    .customForm input[type="submit"],
    .customForm button[type="submit"] {
        forced-color-adjust: auto;
    }
}
.customForm .umbraco-forms-form input.text, .customForm .umbraco-forms-form textarea, .customForm select {
    margin-bottom:1.5rem!important;
}