/* Gravity Forms - Custom CSS */

/*
 **Override .gform-theme--framework :where(...) { all: unset; display: revert }
 ** Re-apply layout and display so Choices.js works. Use same/wider selector so we win after the reset.
 */

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices {
    position: relative;
    overflow: hidden;
    /* Match .gfield row rhythm; 24px plugin default made selects sit lower than text inputs */
    margin-bottom: 0;
    font-size: 16px;
    display: block;
    font-family: var(--font-body);
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices.is-open {
    overflow: visible;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__inner {
    display: flex;
    align-items: center;
    border-radius: 4px;
    padding: 0 45px 0 15px;
    min-height: 0;
    height: 44px;
    line-height: 1.3;
    font-family: var(--font-body);
        color: var(--color-body);
    font-size: 18px;
    background: var(--color-accent-green-soft);
    box-shadow: none;
    -webkit-box-shadow: none;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
    width: 100%;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__list--single.choices__list {
    display: flex;
    align-items: center;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__list--single .choices__item {
    display: block;
}

.form-block .gform_wrapper.gform-theme .choices.is-open .choices__inner {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.form-block .choices.is-open .choices__list--dropdown {
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    box-shadow: var(--shadow-md);
    -webkit-box-shadow: var(--shadow-md);
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__list--dropdown {
    display: block;
    position: absolute;
    box-sizing: border-box;
    left: 0;
    right: 0;
    width: 100%;
    padding-right: 14px;
    padding-bottom: 15px;

    background-color: var(--color-accent-green-soft);
    border: 0;
    color: var(--color-body);
    -webkit-box-shadow: none;
    box-shadow: none;
    transition: border-color 0s, box-shadow 0s, -webkit-box-shadow 0s;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__list--dropdown .choices__list {
    display: block;
    max-height: 300px;
    overflow-y: auto;
    overflow-x: hidden;
    /* scrollbar-width: thin;
    scrollbar-color: var(--color-primary) #91B495;
    scrollbar-gutter: stable; */
}

/* GF Choices dropdown scrollbar: see block at end of file (wins cascade). */

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__list--dropdown .choices__item {
    display: block;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .choices__button {
    display: inline-block;
}

/* Choices.js: keep dropdown closed on load (GF can leave it open after init) */
.gform_wrapper.gform-theme .choices:not(.is-open) .choices__list--dropdown {
    visibility: hidden;
}

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

.gform_wrapper.gform-theme label {
    color: var(--color-body);
    display: block;
    position: static;
    transform: none;
    font-size: 16px;
    font-weight: 700;
    font-family: var(--font-body);
    line-height: 1.3;
    margin: 0 0 3px;
    padding: 0;
    background: transparent;
    pointer-events: auto;
    transition: none;
    z-index: auto;
}

.gform_wrapper.gform-theme label .gfield_required {
    color: var(--color-secondary);
    font-size: 16px;
    top: 0;
    padding-left: 2px;
}

.gform_wrapper.gform-theme label sup {
    font-size: 16px;
    top: 0;
}

.gform_wrapper.gform-theme--framework.gform-theme .gform_heading {
    display: none;
}

/* Override for specific field types */
.gform_wrapper.gform-theme .gfield:has(textarea) label {
    top: auto;
    transform: none;
}

.gform_wrapper.gform-theme .gfield .gfield_label {
    color: var(--color-body);
    display: block;
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 16px;
    margin: 0 0 8px;
}

.gform_wrapper.gform-theme .gchoice label {
    position: static;
    transform: none !important;
    color: var(--color-body);
}

.gform_wrapper.gform-theme .gfield.gfield_error label {
    top: auto;
    transform: none;
}

.form-block .gform_wrapper.gform-theme .gsection_title {
    font-size: 30px;
}

/* Remove all animated label states */
/* .gform_wrapper.gform-theme .gfield:has(textarea:focus) label,
.gform_wrapper.gform-theme .gfield:has(input:focus) label,
.gform_wrapper.gform-theme .gfield.gfield_error:has(textarea:focus) label,
.gform_wrapper.gform-theme .gfield.gfield_error:has(input:focus) label,
.gform_wrapper.gform-theme .gfield:has(input:not(:placeholder-shown)) label,
.gform_wrapper.gform-theme .gfield.gfield_error:has(input:not(:placeholder-shown)) label,
.gform_wrapper.gform-theme .gfield:has(textarea:not(:placeholder-shown)) label,
.gform_wrapper.gform-theme .gfield.gfield_error:has(textarea:not(:placeholder-shown)) label,
.gform_wrapper.gform-theme .gfield:has(.choices select:valid) label,
.gform_wrapper.gform-theme .gfield:has(.choices select:focus) label {
    top: auto;
    transform: none;
    margin: 0;
    color: var(--color-body);
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: var(--font-size-body);
    line-height: 1.5;
    margin-bottom: 8px;
} */

.gform_wrapper.gform-theme input:active,
.gform_wrapper.gform-theme textarea:active,
.gform_wrapper.gform-theme select:active,
.gform_wrapper.gform-theme input:focus,
.gform_wrapper.gform-theme textarea:focus,
.gform_wrapper.gform-theme select:focus {
    outline: none;
    -webkit-box-shadow: none;
    box-shadow: none;
    border: 2px solid var(--color-primary);
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

/* Show placeholders */
.gform_wrapper.gform-theme .gfield input::placeholder,
.gform_wrapper.gform-theme .gfield textarea::placeholder,
.gform_wrapper.gform-theme .gfield .choices__placeholder {
    display: block;
    visibility: visible;
    opacity: 1;
    color: var(--color-body);
}

.gform_wrapper.gform-theme [type="text"],
.gform_wrapper.gform-theme [type="date"],
.gform_wrapper.gform-theme [type="datetime"],
.gform_wrapper.gform-theme [type="datetime-local"],
.gform_wrapper.gform-theme [type="email"],
.gform_wrapper.gform-theme [type="month"],
.gform_wrapper.gform-theme [type="number"],
.gform_wrapper.gform-theme [type="password"],
.gform_wrapper.gform-theme [type="search"],
.gform_wrapper.gform-theme [type="tel"],
.gform_wrapper.gform-theme [type="url"],
.gform_wrapper.gform-theme [type="week"] {
    width: 100%;
    display: block;
    background: var(--color-accent-green-soft);
    color: var(--color-body);
    border: 2px solid transparent;
    border-radius: 4px;
    padding: 15px;
    height: 44px;
    font-size: 16px;
    font-weight: normal;
    font-family: var(--font-body);
    box-shadow: none;
    line-height: 1.3;
}

.gform_wrapper.gform-theme :is(
    [type="text"],
    [type="date"],
    [type="datetime"],
    [type="datetime-local"],
    [type="email"],
    [type="month"],
    [type="number"],
    [type="password"],
    [type="search"],
    [type="tel"],
    [type="url"],
    [type="week"],
    select,
    textarea
) {
    box-shadow: none;
    -webkit-box-shadow: none;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

.gform_wrapper.gform-theme [type="text"]::placeholder,
.gform_wrapper.gform-theme [type="date"]::placeholder,
.gform_wrapper.gform-theme [type="datetime"]::placeholder,
.gform_wrapper.gform-theme [type="datetime-local"]::placeholder,
.gform_wrapper.gform-theme [type="email"]::placeholder,
.gform_wrapper.gform-theme [type="month"]::placeholder,
.gform_wrapper.gform-theme [type="number"]::placeholder,
.gform_wrapper.gform-theme [type="password"]::placeholder,
.gform_wrapper.gform-theme [type="search"]::placeholder,
.gform_wrapper.gform-theme [type="tel"]::placeholder,
.gform_wrapper.gform-theme [type="url"]::placeholder,
.gform_wrapper.gform-theme [type="week"]::placeholder {
    opacity: 1;
    color: #757575;
}

.gform_wrapper.gform-theme input:-webkit-autofill,
.gform_wrapper.gform-theme input:-webkit-autofill:hover,
.gform_wrapper.gform-theme input:-webkit-autofill:focus,
.gform_wrapper.gform-theme input:-webkit-autofill:active,
.gform_wrapper.gform-theme textarea:-webkit-autofill,
.gform_wrapper.gform-theme textarea:-webkit-autofill:hover,
.gform_wrapper.gform-theme textarea:-webkit-autofill:focus,
.gform_wrapper.gform-theme textarea:-webkit-autofill:active {
    background-color: var(--color-accent-green-soft) !important;
    -webkit-text-fill-color: var(--color-body) !important;
    -webkit-box-shadow: none;
    box-shadow: none;
    transition: background-color 0s, box-shadow 0s, -webkit-box-shadow 0s;
}

.gform_wrapper.gform-theme .gfield.focused input[type="text"],
.gform_wrapper.gform-theme .gfield.focused input[type="email"],
.gform_wrapper.gform-theme .gfield.focused input[type="tel"],
.gform_wrapper.gform-theme .gfield.focused input[type="number"],
.gform_wrapper.gform-theme .gfield.focused textarea {
    border: 2px solid var(--color-primary);
    -webkit-box-shadow: none;
    box-shadow: none;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

.gform_wrapper.gform-theme .gfield.gfield_error.focused input[type="text"],
.gform_wrapper.gform-theme .gfield.gfield_error.focused input[type="email"],
.gform_wrapper.gform-theme .gfield.gfield_error.focused input[type="tel"],
.gform_wrapper.gform-theme .gfield.gfield_error.focused input[type="number"],
.gform_wrapper.gform-theme .gfield.gfield_error.focused textarea {
    border: 2px solid var(--color-error);
    -webkit-box-shadow: none;
    box-shadow: none;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

.gform_wrapper.gform-theme .gfield.gfield_error [type="text"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="date"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="datetime"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="datetime-local"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="email"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="month"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="number"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="password"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="search"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="tel"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="url"],
.gform_wrapper.gform-theme .gfield.gfield_error [type="week"],
.gform_wrapper.gform-theme .gfield.gfield_error textarea.large,
.gform_wrapper.gform-theme .gfield.gfield_error textarea.medium,
.gform_wrapper.gform-theme .gfield.gfield_error select {
    border: 2px solid var(--color-error);
}

.form-block .gform_wrapper.gform-theme textarea {
    background: var(--color-accent-green-soft);
    color: var(--color-body);
    border: 2px solid transparent;
    border-radius: 4px;
    padding: 15px;
    font-size: 16px;
    font-weight: normal;
    font-family: var(--font-body);
    box-shadow: none;
    -webkit-box-shadow: none;
    line-height: 1.3;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

.form-block .gform_wrapper.gform-theme .gfield.gfield_error textarea.large {
    border-color: var(--color-error);
}

.form-block .gform_wrapper.gform-theme textarea:focus {
    border-color: var(--color-primary);
    box-shadow: none;
    -webkit-box-shadow: none;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

/* Left accent bar for error state - applied to input container */
.gform_wrapper.gform-theme .gfield.gfield_error .ginput_container {
    position: relative;
}

/* .gform_wrapper.gform-theme .gfield.gfield_error .ginput_container::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--color-error);
    z-index: 2;
} */

/* Warning state - Yellow/orange border with left accent (optional via custom class) */
.gform_wrapper.gform-theme .gfield.gfield_warning [type="text"],
.gform_wrapper.gform-theme .gfield.gfield_warning [type="email"],
.gform_wrapper.gform-theme .gfield.gfield_warning [type="tel"],
.gform_wrapper.gform-theme .gfield.gfield_warning textarea,
.gform_wrapper.gform-theme .gfield.gfield_warning select {
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield.gfield_warning .ginput_container {
    position: relative;
}

.gform_wrapper.gform-theme .gfield.gfield_warning .ginput_container::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--color-primary);
    z-index: 2;
}

/* Address Styling */
.ginput_complex .gform-grid-col {
    position: relative;
}

.ginput_complex .gform-grid-col label {
    left: 0;
    margin: 0 0 3px;
    position: static;
}

/* Removes inconsistent padding from Firefox buttons */
.gform_wrapper.gform-theme button::-moz-focus-inner,
.gform_wrapper.gform-theme [type="reset"]::-moz-focus-inner,
.gform_wrapper.gform-theme [type="button"]::-moz-focus-inner,
.gform_wrapper.gform-theme [type="submit"]::-moz-focus-inner {
    border: none;
    padding: 0;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .gform-footer {
    justify-content: center;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .gform_button[type="submit"] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--btn-icon-gap);
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-primary-text);
    padding: 8px 8px 8px 20px;
    padding-right: var(--btn-padding-y);
    font-family: var(--font-button);
    font-size: var(--font-size-button);
    font-weight: 700;
    line-height: var(--line-height-button);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-decoration: none;
    text-align: center;
    border: 2px solid transparent;
    border-radius: var(--border-radius-pill);
    cursor: pointer;
    transition:
        background-color var(--transition-medium),
        border-color var(--transition-medium),
        color var(--transition-medium),
        transform var(--transition-medium);
    -webkit-appearance: none;
    appearance: none;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .gform_button[type="submit"]::after {
    content: "\e91a";
    font-family: var(--font-icon) !important;
    display: inline-block;
    flex-shrink: 0;
    font-size: 1.5em;
    transition: transform var(--transition-medium), color var(--transition-medium);
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .gform_button[type="submit"]:focus {
    outline: none;
    box-shadow: none;
}

/* AJAX spinner - primary color via gform_ajax_spinner_url filter (frontend.php). */
.gform_wrapper img.gform_ajax_spinner {
    width: 20px;
    height: 20px;
    vertical-align: middle;
}

.form-block .gform_wrapper.gform-theme .gfield textarea.large,
.form-block .gform_wrapper.gform-theme .gfield textarea.medium {
    margin: 0;
    color: var(--color-body);
    font-family: var(--font-body);
    font-weight: normal;
    font-size: var(--font-size-body);
    line-height: 1.3;
    min-block-size: 169px;
}

.gform_wrapper.gform-theme .gform_fields .gfield {
    position: relative;
}

.gform_wrapper.gform-theme .gform_fields .gfield:not(.gfield--type-html) {
    margin: 0;
}

.gform_wrapper.gform-theme .gform_fields .gfield:not(.gfield--type-html).gfield--type-choice {
    margin-bottom: 0;
}

.form-block .gform_wrapper.gform-theme--framework.gform-theme .gchoice label,
.form-block .gform_wrapper.gform-theme--framework.gform-theme .gfield_error .gchoice label {
    color: var(--color-body);
    font-weight: normal;
    font-family: var(--font-body);
    margin-top: 0;
    top: 0;
    padding-left: 30px;
}

.gform_wrapper.gform-theme .gform-page-footer {
    margin-top: 0;
}

.gform_wrapper.gform-theme form .gform-page-footer button[type="submit"].gform_button.btn,
.gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform-theme-button.btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--btn-icon-gap);
    background-color: var(--color-primary);
    border-color: var(--color-primary);
    color: var(--color-primary-text);
    padding: var(--btn-padding-y) var(--btn-padding-x);
    padding-right: var(--btn-padding-y);
    font-family: var(--font-button);
    font-size: var(--font-size-button);
    font-weight: 700;
    line-height: var(--line-height-button);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-decoration: none;
    text-align: center;
    border: 2px solid transparent;
    border-radius: var(--border-radius-pill);
    cursor: pointer;
    transition:
        background-color var(--transition-medium),
        border-color var(--transition-medium),
        color var(--transition-medium),
        transform var(--transition-medium);
    -webkit-appearance: none;
    appearance: none;
}

.gform_wrapper.gform-theme form .gform-page-footer button[type="submit"].gform_button.btn::after,
.gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform-theme-button.btn::after {
    content: "\e91a";
    font-family: var(--font-icon) !important;
    display: inline-block;
    flex-shrink: 0;
    font-size: 1.5em;
    transition: transform var(--transition-medium), color var(--transition-medium);
}

.gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform_previous_button.btn::after {
    right: unset;
    left: 34px;
    transform: translate(0, -50%) rotate(180deg);
}

.gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform_previous_button.btn {
    margin-left: unset;
    margin-right: auto;
    padding: 19px 34px 19px 62px;
}

.gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform_next_button.btn {
    margin-left: unset;
}

.gform_wrapper.gform-theme .gfield.gfield_error .gfield_validation_message {
    position: relative;
    bottom: auto;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;
    width: 100%;
    text-align: left;
    background: transparent;
    color: var(--color-error);
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-body);
    text-transform: uppercase;
    padding: 0;
    margin: 5px 0 0;
    line-height: 1;
}

.gform_wrapper.gform-theme .gfield.gfield_error .ginput_container::before {
    display: none;
}

.gform_wrapper.gform-theme .gfield.gfield--type-phone.gfield_error .ginput_container::before {
    top: 32%;
}

.gform_wrapper.gform-theme .gfield.gfield--type-textarea.gfield_error .ginput_container::before {
    top: 20%; 
}

.gform_wrapper.gform-theme .gfield.gfield_error.gfield--type-checkbox .ginput_container_checkbox::before,
.gform_wrapper.gform-theme .gfield.gfield_error.gfield--type-radio .ginput_container_radio::before,
.gform_wrapper.gform-theme .gfield.gfield_error.gfield--type-consent .ginput_container_consent::before {
    display: none;
}

.form-block .gform-theme--framework input[type=radio]::before,
.form-block .gform-theme--framework input[type=checkbox]::before {
    display: none;
}

.form-block .gform_wrapper.gform-theme .gfield.gfield_error.gfield--input-type-address .ginput_container::before {
    top: 42%;
}

.gform_wrapper.gform-theme .gfield.gfield--type-checkbox.gfield_error .gfield_validation_message,
.gform_wrapper.gform-theme .gfield.gfield--type-consent.gfield_error .gfield_validation_message {
    position: relative;
    left: 0;
}

.gform_wrapper.gform-theme .gfield.gfield--type-radio.gfield_error .gfield_validation_message {
    position: relative;
    bottom: 0;
    left: 0;
    margin: 5px 0 0;
}

.gform_wrapper.gform-theme .gfield.gfield_error .ginput_container_phone .instruction {
    position: relative;
    top: auto;
    left: 0;
    color: var(--color-secondary);
    font-size: 12px;
    font-weight: 700;
    font-family: var(--font-body);
    text-transform: uppercase;
    padding: 0;
    margin: 5px 0 0;
}

/* Remove validation icons */
.gform_wrapper.gform-theme .gfield.gfield--type-checkbox.gfield_error .gfield_validation_message::before,
.gform_wrapper.gform-theme .gfield.gfield--type-consent.gfield_error .gfield_validation_message::before,
.gform_wrapper.gform-theme .gfield.gfield--type-radio.gfield_error .gfield_validation_message::before,
.gform_wrapper.gform-theme .gfield.gfield_error .ginput_container_phone .instruction::before {
    display: none;
}

.gform_wrapper.gform-theme .gform_fields {
    row-gap: 20px;
}

.gform_wrapper.gform-theme:has(.gfield.gfield_error) .gform_page_fields {
    padding-bottom: 0;
}

.gform_wrapper.gform-theme .gform_fields .gfield + .gfield--type-section {
    margin-top: 25px;
    margin-bottom: 15px;
    padding-bottom: 0;
}

.gform_wrapper.gform-theme .gform_fields .gfield.gfield--type-address {

    .ginput_full label {
        display: none;
    }

    .gform-grid-col {
        display: flex;
        flex-direction: column-reverse;
    }
}

.gform_wrapper.gform-theme .gform-loader {
    border-block-end-color: var(--color-primary);
    border-block-start-color: var(--color-primary);
    border-inline-end-color:var(--gf-form-spinner-bg-color);
    border-inline-start-color: var(--color-primary);
}

@media ( min-width: 1025px ) {
    .gform_wrapper.gform-theme .gform_fields .gfield.gfield--type-address {
        
        .ginput_address_city,
        .ginput_address_country,
        .ginput_address_state,
        .ginput_address_zip {
            inline-size: 33.33%;
        }

        .ginput_full label {
            display: none;
        }
    }

    .form-block .gform_wrapper.gform-theme .gform_fields .gfield.gfield--type-address .ginput_container:is(.has_city, .has_state):not(.has_zip) {
        .ginput_address_city,
        .ginput_address_state {
            inline-size: 50%;
        }
    }
}

/* Desktop hover states */
@media (min-width: 1200px) {
    .gform_wrapper.gform-theme .gfield .gfield_label {
        font-size: 18px;
    }
    
    .form-block .gform_wrapper.gform-theme--framework.gform-theme .gform_button[type="submit"]:hover,
    .gform_wrapper.gform-theme form .gform-page-footer button[type="submit"].gform_button.btn:hover,
    .gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform-theme-button.btn:hover {
        background-color: var(--color-primary-hover);
        border-color: var(--color-primary-hover);
		color: var(--color-primary-text);
    }

    .form-block .gform_wrapper.gform-theme--framework.gform-theme .gform_button[type="submit"]:hover::after {
        color: var(--color-primary-text);
    }

    .gform_wrapper.gform-theme form .gform-page-footer button[type="submit"].gform_button.btn::after,
    .gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform-theme-button.btn::after {
        right: 34px;
    }

    .gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform-theme-button.gform_previous_button.btn::after {
        right: unset;
        left: 34px;
    }

    .gform_wrapper.gform-theme form .gform-page-footer button[type="button"].gform_next_button.btn {
        margin-left: auto;
    }
}

/* Checkbox styling - match text/select field surface, border, and primary accent when checked */
.gform_wrapper.gform-theme .gfield--type-checkbox .gfield_checkbox {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.gform_wrapper.gform-theme .gfield--type-checkbox .gchoice {
    z-index: 1;
    position: relative;
    margin: 0;
    padding: 0 0 0 52px;
    min-height: 20px;
    width: 100% !important;
}

.gform_wrapper.gform-theme .gfield--type-checkbox .gchoice label {
    z-index: 3;
    font-weight: normal;
    color: var(--color-body);
    font-size: 16px;
    font-family: var(--font-body);
    display: block;
    position: absolute;
    padding: 0 0 0 30px;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    overflow: visible;
    text-transform: none;
}

/* All checkbox inputs in checkbox fields (includes .gfield-choice-input; GF omits that class on consent) */
.gform_wrapper.gform-theme .gfield--type-checkbox input[type="checkbox"] {
    z-index: 2;
    appearance: none;
    -webkit-appearance: none;
    margin: 0;
    padding: 0;
    width: 20px;
    height: 20px;
    border-radius: 4px;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    transition:
        background-color var(--transition-medium),
        border-color var(--transition-medium);
}

/* !important beats half-text-half-form and GF theme shorthands that reset background on :checked */
.gform_wrapper.gform-theme .gfield--type-checkbox input[type="checkbox"]:checked,
.gform_wrapper.gform-theme .gfield--type-consent .ginput_container_consent input[type="checkbox"]:checked {
    background-color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
}

.gform_wrapper.gform-theme .gfield--type-checkbox input[type="checkbox"]:focus {
    outline: none;
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield--type-checkbox input[type="checkbox"]:focus:not(:checked) {
    background-color: var(--color-white) !important;
    border-color: var(--color-border);
}

.gform_wrapper.gform-theme .gfield.gfield_error.gfield--type-checkbox input[type="checkbox"] {
    border-color: var(--color-secondary);
}

/* Consent - agreement text + checkbox row aligned with checkbox field styling */
.gform_wrapper.gform-theme .gfield--type-consent .gfield_consent_description {
    margin: 0 0 12px;
    padding: 15px;
    max-height: 280px;
    overflow-y: auto;
    font-size: 14px;
    font-family: var(--font-body);
    color: var(--color-body);
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 4px;
}

.gform_wrapper.gform-theme .gfield--type-consent .ginput_container_consent {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    padding: 0;
    width: 100%;
}

.gform_wrapper.gform-theme .gfield--type-consent .ginput_container_consent input[type="checkbox"] {
    flex-shrink: 0;
    margin: 3px 0 0;
    appearance: none;
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 0;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    cursor: pointer;
    transition:
        border-color var(--transition-medium),
        background-color var(--transition-medium);
}

.gform_wrapper.gform-theme .gfield--type-consent .ginput_container_consent input[type="checkbox"]:focus {
    outline: none;
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield--type-consent .ginput_container_consent input[type="checkbox"]:focus:not(:checked) {
    background-color: var(--color-white) !important;
    background-image: none !important;
    border-color: var(--color-border);
}

.gform_wrapper.gform-theme .gfield--type-consent .ginput_container_consent label.gfield_consent_label,
.gform_wrapper.gform-theme .gfield--type-consent .gfield_consent_label {
    position: static;
    transform: none;
    flex: 1;
    margin: 0;
    padding: 0;
    font-weight: normal;
    font-size: 16px;
    font-family: var(--font-body);
    color: var(--color-body);
    text-transform: none;
}

.gform_wrapper.gform-theme .gfield.gfield_error.gfield--type-consent .ginput_container_consent input[type="checkbox"] {
    border-color: var(--color-secondary);
}

/* Radio button styling */
.gform_wrapper.gform-theme .gfield--type-radio .gchoice {
    z-index: 1;
    position: relative;
    margin: 0;
    padding: 0 0 0 52px;
    min-height: 20px;
    width: 100%!important;
}

.gform_wrapper.gform-theme .gfield--type-radio .gchoice label {
    z-index: 3;
    font-weight: normal;
    color: var(--color-body);
    font-size: 16px;
    font-family: var(--font-body);
    display: block;
    position: absolute;
    padding: 0 0 0 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    overflow: visible;
    text-transform: none;
}

.gform_wrapper.gform-theme .gfield--type-radio input[type="radio"].gfield-choice-input {
    z-index: 2;
    appearance: none;
    margin: 0;
    padding: 0;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    box-shadow: none;
    -webkit-box-shadow: none;
    transition:
        background-color var(--transition-medium),
        border-color var(--transition-medium);
    position: absolute;
    left: 0;
    top: 0;
}

.gform_wrapper.gform-theme .gfield--type-radio input[type="radio"].gfield-choice-input:checked {
    background:
        radial-gradient(circle, var(--color-primary) 0, var(--color-primary) 38%, transparent 39%),
        var(--color-white);
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield--type-radio input[type="radio"].gfield-choice-input:focus {
    outline: none;
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield.gfield_error.gfield--type-radio input[type="radio"].gfield-choice-input {
    border-color: var(--color-secondary);
}

.gform_wrapper.gform-theme .gfield--type-radio input[type="radio"].gfield-choice-input:checked + label {
    color: var(--color-body);
}

.gform_wrapper.gform-theme .gfield--type-radio .gfield_radio {
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

/* File upload - single file input and multi-file drop zone aligned with other field controls */
.gform_wrapper.gform-theme .ginput_container_fileupload input[type="file"] {
    width: 100%;
    box-sizing: border-box;
    min-height: 56px;
    padding: 8px 12px;
    margin: 0;
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--color-body);
    background-color: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    transition:
        border-color var(--transition-medium),
        background-color var(--transition-medium);
}

.gform_wrapper.gform-theme .ginput_container_fileupload input[type="file"]:focus {
    outline: none;
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield.gfield_error .ginput_container_fileupload input[type="file"] {
    border-color: var(--color-secondary);
    border-left-width: 4px;
}

.gform_wrapper.gform-theme .ginput_container_fileupload input[type="file"]::file-selector-button {
    margin-right: 15px;
    padding: 10px 18px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-secondary);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 4px;
    cursor: pointer;
}

.gform_wrapper.gform-theme .ginput_container_fileupload input[type="file"]::-webkit-file-upload-button {
    margin-right: 15px;
    padding: 10px 18px;
    font-family: var(--primary-font);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--secondary-color);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 4px;
    cursor: pointer;
}

.gform_wrapper.gform-theme .gform_fileupload_multifile .gform_drop_area {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
    box-sizing: border-box;
    min-height: 46px;
    padding: 12px 15px;
    margin: 0;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.3;
    color: var(--color-body);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    transition:
        border-left-width var(--transition-medium),
        border-left-color var(--transition-medium),
        box-shadow var(--transition-medium);
}

.gform_wrapper.gform-theme .gform_fileupload_multifile:focus-within .gform_drop_area {
    border-color: var(--color-primary);
}

.gform_wrapper.gform-theme .gfield.gfield_error .gform_fileupload_multifile .gform_drop_area {
    border-color: var(--color-secondary);
    border-left-width: 4px;
}

.gform_wrapper.gform-theme .gform_fileupload_multifile .gform_drop_instructions {
    color: var(--color-body);
}

.gform_wrapper.gform-theme .gform_fileupload_multifile .gform_button_select_files {
    padding: 10px 18px;
    font-family: var(--font-body);
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-secondary);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
    border-radius: 0;
    cursor: pointer;
    margin: 0;
}

.gform_wrapper.gform-theme .gform_fileupload_multifile .gform_button_select_files:focus {
    outline: none;
    box-shadow: 0 0 0 1px var(--color-primary);
}

.gform_wrapper.gform-theme .ginput_container_fileupload .gform_fileupload_rules {
    display: block;
    margin-top: 8px;
    font-size: 12px;
    color: #757575;
    font-family: var(--font-body);
}

.gform_wrapper.gform-theme .ginput_container_fileupload .ginput_preview {
    margin-top: 10px;
    padding: 12px 15px;
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--color-body);
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--color-border);
    border-radius: 0;
}

.gform_wrapper.gform-theme .ginput_container_fileupload .gfield_fileupload_filename {
    color: var(--color-body);
}

.gform_wrapper.gform-theme select {
    width: 100%;
    display: block;
    background: var(--color-accent-green-soft);
    color: var(--color-body);
    border: 0;
    padding: 15px;
    padding-right: 40px;
    height: 44px;
    font-size: 16px;
    font-weight: normal;
    font-family: var(--font-body);
    box-shadow: none;
    -webkit-box-shadow: none;
    border-radius: 0;
    line-height: 1.3;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 13L4.5 6.5H15.5L10 13Z' fill='%23ffffff'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 20px;
    transition: border var(--transition-medium), box-shadow var(--transition-medium), -webkit-box-shadow var(--transition-medium);
}

@media ( min-width: 768px ) {
    .gform_wrapper.gform-theme .gform_fields {
        row-gap: 32px;
        column-gap: 32px;
    }

    .gform_wrapper.gform-theme [type="text"],
    .gform_wrapper.gform-theme [type="date"],
    .gform_wrapper.gform-theme [type="datetime"],
    .gform_wrapper.gform-theme [type="datetime-local"],
    .gform_wrapper.gform-theme [type="email"],
    .gform_wrapper.gform-theme [type="month"],
    .gform_wrapper.gform-theme [type="number"],
    .gform_wrapper.gform-theme [type="password"],
    .gform_wrapper.gform-theme [type="search"],
    .gform_wrapper.gform-theme [type="tel"],
    .gform_wrapper.gform-theme [type="url"],
    .gform_wrapper.gform-theme [type="week"] {
        height: 54px;
    }

    .gform_wrapper.gform-theme select {
        height: 54px;
    }
}

@media (min-width: 1200px) {
    .gform_wrapper.gform-theme [type="text"],
    .gform_wrapper.gform-theme [type="date"],
    .gform_wrapper.gform-theme [type="datetime"],
    .gform_wrapper.gform-theme [type="datetime-local"],
    .gform_wrapper.gform-theme [type="email"],
    .gform_wrapper.gform-theme [type="month"],
    .gform_wrapper.gform-theme [type="number"],
    .gform_wrapper.gform-theme [type="password"],
    .gform_wrapper.gform-theme [type="search"],
    .gform_wrapper.gform-theme [type="tel"],
    .gform_wrapper.gform-theme [type="url"],
    .gform_wrapper.gform-theme [type="week"] {
        font-size: 18px;
    }

    .gform_wrapper.gform-theme .ginput_container_fileupload input[type="file"]::file-selector-button:hover,
    .gform_wrapper.gform-theme .ginput_container_fileupload input[type="file"]::-webkit-file-upload-button:hover {
        background: var(--color-primary-hover);
        border-color: var(--color-primary-hover);
        color: var(--color-primary-text);
    }

    .gform_wrapper.gform-theme .gform_fileupload_multifile .gform_button_select_files:hover {
        background: var(--color-primary-hover);
        border-color: var(--color-primary-hover);
        color: var(--color-primary-text);
    }
}

/*---*\
    GF Choices dropdown scrollbar (prototype)
    End of file so these beat GF theme + plugin rules.
    Thumb border matches track so the sage pill track stays visible behind a
    rounded primary thumb (same pattern as ninja-tables.css).
\*---*/

/* .form-block .choices__list--dropdown > .choices__list {
    scrollbar-width: thin;
    scrollbar-color: var(--color-primary) #91B495;
} */

.form-block .choices__list--dropdown > .choices__list::-webkit-scrollbar {
    -webkit-appearance: none;
    appearance: none;
    width: 10px;
}

.form-block .choices__list--dropdown > .choices__list::-webkit-scrollbar-button {
    display: none;
    width: 0;
    height: 0;
}

.form-block .choices__list--dropdown > .choices__list::-webkit-scrollbar-track {
    background: #91B495 !important;
    border-radius: 100px !important;
}

.form-block .choices__list--dropdown > .choices__list::-webkit-scrollbar-thumb {
    background: var(--color-primary) !important;
    border-radius: 100px !important;
    border: 2px solid #91B495;
    border: 0;
    min-height: 48px;
}