.gform_wrapper.gform-theme {
    --gf-field-gap-x: 0;
    --gf-field-gap-y: 0;
    --gf-form-gap-x: 0;
    --gf-form-gap-y: 0;
    --gf-ctrl-btn-shadow: none;
    --gf-ctrl-shadow: none;
    --gf-ctrl-bg-color-disabled: transparent;
    --gf-field-pg-prog-bar-bg-color-blue: var(--wp--preset--color--primary);
    --gf-ctrl-file-btn-color: var(--gf-ctrl-btn-color-ctrl);
    --gf-ctrl-file-btn-bg-color:  var(--gf-ctrl-btn-bg-color-ctrl);
    --gf-ctrl-file-btn-bg-color-hover: var(--gf-color-in-ctrl-primary-darker) !important;

    --gf-ctrl-btn-color-hover-primary: var(--wp--preset--color--contrast);
    --gf-ctrl-btn-bg-color-hover-ctrl: var(--gf-color-in-ctrl-primary-darker);
    --gf-ctrl-btn-bg-color-hover-primary: var(--wp--preset--color--neutral);
    --gf-ctrl-btn-bg-color-hover-secondary: var(--wp--preset--color--neutral);
    --gf-ctrl-btn-color-hover-secondary: var(--wp--preset--color--contrast);
    --gf-ctrl-select-dropdown-option-bg-color-hover: var(--wp--preset--color--neutral);
    --gf-ctrl-btn-icon-color-hover-primary: var(--wp--preset--color--contrast);
    --gf-desc-space: 0;

    --gf-ctrl-label-color-req: currentColor;
    --gf-ctrl-btn-font-family: var(--wp--preset--font-family--mono);
    --gf-ctrl-btn-text-transform: uppercase;
    --gf-ctrl-outline-color-focus: var(--gf-color-primary);
    --gf-ctrl-outline-offset: 0px;
    --gf-ctrl-outline-width: 1px;
    --gf-ctrl-outline-width-focus: 1px;
}

.gform_wrapper.gform-theme .gform_fields {
    border: 1px solid var(--gf-ctrl-border-color);
}

.gform_wrapper.gform-theme .gform_required_legend {
    display: none;
}

.gform_wrapper.gform-theme .gfield_required {
    --gf-ctrl-label-color-req: inherit;

    display: inline-flex;
}

.gform_wrapper.gform-theme .gfield_required .gfield_required {
    margin-left: 0.25em;
}

.gform_wrapper.gform-theme .gfield_required .gfield_required.gfield_required_asterisk {
    vertical-align: super;
    line-height: 0;
}

@media screen and (max-width: 639px) {
    .gform_wrapper.gform-theme .gfield {
        & input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
        & select,
        & textarea {
            border-width: 1px 0 1px 0 !important;
        }
    }
}

@media screen and (min-width: 640px) {
    .gform_wrapper.gform-theme div.gfield--width-full,
    .gform_wrapper.gform-theme div.gfield:not([class*=" gfield--width-"]):has(.large),
    .gform_wrapper.gform-theme div.gfield--type-textarea:not([class*=" gfield--width-"]) {
        & input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
        & select,
        & textarea {
            border-width: 1px 0 1px 0 !important;
        }
    }

    .gform_wrapper.gform-theme div.gfield[class*=" gfield--width-"]:not(.gfield--width-full) {
        border-right: 1px solid var(--gf-ctrl-border-color);
        & input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
        & select,
        & textarea {
            border-width: 1px 0 1px 0 !important;
        }
    }

    .gform_wrapper.gform-theme .gfield.gfield--width-half:nth-of-type(even) {
        border-right: 0px !important;
    }

    .gform_wrapper.gform-theme fieldset.gfield {
        & input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
        & select {
            border-left-width: 0px !important;
        }

        & .gform-grid-col .gform-field-label--type-sub {
            border-right: 1px solid var(--gf-ctrl-border-color);
        }
        & .gform-grid-col:last-child,
        & .gform-grid-col.ginput_right {
            & .gform-field-label--type-sub,
            & input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
            & select {
                border-right-width: 0px !important;
            }
        }

        & .gform-grid-col.ginput_full {
            & .gform-field-label--type-sub,
            & input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
            & select {
                border-left-width: 0px !important;
                border-right-width: 0px !important;
            }
        }
    }
    .gform_wrapper.gform-theme .gfield input:not([type="radio"],[type="checkbox"],[type="button"],[type="submit"]),
    .gform_wrapper.gform-theme .gfield select,
    .gform_wrapper.gform-theme .gfield textarea {
        &:focus {
            outline-width: 1px;
            outline-offset: 0px;
            box-shadow: 0px 0px 6px 1px var(--gf-color-primary);
        }
    }
}


.gform_wrapper.gform-theme .gfield_label,
.gform_wrapper.gform-theme .gform-field-label:not(.gform-field-label--type-inline) {
    font-family: var(--wp--preset--font-family--mono);
    text-transform: uppercase;
    margin:0;
    display: block;

    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.gform_wrapper.gform-theme .gsection_title,
.gform_wrapper.gform-theme .gfield_description {
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
    margin: 0;
}

.gform_wrapper.gform-theme .gfield--type-section {
    padding: 0;
}

.gform_wrapper.gform-theme .gfield--type-section:not(:last-child),
.gform_wrapper.gform-theme .gfield--type-checkbox:not(:last-child),
.gform_wrapper.gform-theme .gfield--type-radio:not(:last-child),
.gform_wrapper.gform-theme .gfield--type-fileupload:not(:last-child) {
    border-bottom: 1px solid var(--gf-ctrl-border-color);
}

.gform_wrapper.gform-theme .gfield--type-checkbox,
.gform_wrapper.gform-theme .gfield--type-radio {
    margin-top: var(--wp--preset--spacing--30);
    padding-top: var(--wp--preset--spacing--30);
    padding-bottom: var(--wp--preset--spacing--30);
    & .gchoice input[type="text"] {
        border-left-width: 1px !important;
        border-right-width: 1px !important;
    }
}

.gform_wrapper.gform-theme .ginput_container_checkbox,
.gform_wrapper.gform-theme .ginput_container_radio,
.gform_wrapper.gform-theme .ginput_container_consent {
    padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.gform_wrapper.gform-theme .gfield--type-date .gform-grid-col,
.gform_wrapper.gform-theme .gfield--type-time .gform-grid-col {
    flex-grow: 1;
}

.gform_wrapper.gform-theme .gfield--input-type-datepicker .ginput_container_date input {
    --gf-local-width: 100%;
}

.gform_wrapper.gform-theme .ginput_container select:not([multiple]) option {
    color: var(--wp--preset--color--contrast);
}

.gform_wrapper.gform-theme .gfield--type-multiselect:has(.chosen-container) .chosen-drop {
    background-color: var(--wp--preset--color--base);
}

.gform_wrapper.gform-theme .gfield--type-multiselect:has(.chosen-container) .chosen-drop li {
    color: var(--wp--preset--color--contrast);
}

.gform-theme--framework.gform-theme select:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *))[multiple] option:checked {
    background-color: var(--wp--preset--color--neutral) !important;
}

.ui-widget.ui-datepicker {
    --gf-ctrl-date-picker-header-icons-color: var(--wp--preset--color--contrast);
    --gf-ctrl-date-picker-header-icons-color-hover: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--contrast);
    --gf-ctrl-color: var(--wp--preset--color--contrast);
    --gf-ctrl-border-color: var(--wp--preset--color--contrast);
    --gf-ctrl-date-picker-bg-color: var(--wp--preset--color--base);
    --gf-ctrl-date-picker-cell-content-color: var(--wp--preset--color--contrast);
}

/* Form error messages */

.gform-theme--framework.gform_validation_error {
    --gf-form-error-font-size: 0.675rem;
}

.gform-theme--framework .gform_validation_errors {
    --gf-form-validation-margin-y: 0 1em;
    --gf-form-validation-bg-color: var(--gf-color-danger);
    --gf-form-validation-border-color: var(--gf-color-danger);
    --gf-form-validation-border-color-focus: var(--wp--preset--color--base);
    --gf-form-validation-heading-color: var(--wp--preset--color--base);
    --gf-form-validation-heading-font-family: var(--wp--preset--font-family--mono);
    --gf-form-validation-heading-icon-border-color: var(--wp--preset--color--base);
    --gf-form-validation-heading-icon-border-width: 1px;
    --gf-form-validation-heading-icon-color: var(--wp--preset--color--base);
    --gf-form-validation-heading-font-size: var(--gf-form-error-font-size);
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.gfield_error {
    --gf-ctrl-border-color-error: var(--wp--preset--color--base);
    --gf-ctrl-desc-font-family-error: var(--wp--preset--font-family--mono);
    --gf-ctrl-desc-font-size-error: var(--gf-form-error-font-size);

    display: flex;
    flex-direction: column;
}

.gfield_error .gfield_label {
    order: -1;
}

.gfield_error .gfield_validation_message {
    order: -1;
    text-transform: uppercase;
}

.gfield_error .gfield_validation_message::before {
    content: '[';
}

.gfield_error .gfield_validation_message::after {
    content: ' ↓]';
}

.gform_wrapper.gform-theme .gfield_error .gfield_label {
    padding-block-end: 0;
}

.gform_wrapper.gform-theme .gfield_error .gfield_validation_message {
    padding-block-start: 0.25em;
}
