/*********************************************
 * Plugin Gravity Form
 * Note: default GF CSS must be disabled.
**********************************************/
.gform_wrapper {
    /* Layout */
    --form-gap-h:20px;
    --form-gap-v:var(--vii-spacing-32);
    display:flex;flex-direction:column;
}
.gform_wrapper form {position:relative;}

.vii-vc-gravity-forms {padding:clamp(20px, 5vw, 40px);}

/*********************
 * Body, Footer
**********************/
/* Field HTML */
.gform_fields p {margin-bottom:var(--vii-spacing-heading);}

/* Ajax loading spinner */
.gform_ajax_spinner {display:none;}

/* Clear legend position */
.gfield legend {float:left; width:100%;}

/* Permalink */
.txt_color_white .gfield a {color:#fff;}
.gfield a {text-decoration:underline; color:var(--vii-color-text); font-weight:600;}
.gfield a:hover,
.gfield a:focus {text-decoration:underline; color:var(--vii-color-primary);}
.gfield a:focus-visible {
    outline:2px solid var(--vii-color-primary); border-radius:3px; transition:none;
}

/*********************************************
 * Submit button
**********************************************/
/* full width */
.gform-button--width-full {width:100%;}

/* button position: inline */
@media only screen and (min-width:768px) {
    .gfield.gfield--type-submit[data-field-position="inline"] {text-align:right;}
}

/* button position: end of the form */
.gform_footer button {margin-top:var(--form-gap-v);}

/*********************
 * Grid, columns
**********************/
/* Field Columns */
.gform_fields, .ginput_container.ginput_complex {
    --field-col:1;
    display:flex; flex-wrap:wrap; gap:var(--form-gap-v) var(--form-gap-h);
}
.ginput_container.ginput_complex {width:100%;}

.gfield, .ginput_container.ginput_complex > span {
    width:calc((100% - var(--form-gap-h) * (var(--field-col) - 1)) / var(--field-col));
    padding:0; margin:0; border:none;
    display:block;
}

@media only screen and (min-width:768px) {
    /* full width fields: clear leftover gap */
    .gfield:not([class*="gfield--width-"]),
    .ginput_container.ginput_complex > span.ginput_full,
    .gfield.gfield--width-full {width:100%;}

    .gfield.gfield--width-third {--field-col:3;}
    .gfield.gfield--width-quarter {--field-col:4;}

    .ginput_container.ginput_complex > span:not([class*="ginput_"]),
    .ginput_container.ginput_complex > span.ginput_left,
    .ginput_container.ginput_complex > span.ginput_right,
    .gfield.gfield--width-half {--field-col:2;}

    .gfield.gfield--width-half:nth-child(2) {margin-top:0;}
}

/*********************
 * Misc
**********************/
/* Field validation (hidden by default) */
p.gform_required_legend,
.gfield_repeater_cell .gfield_label,
.hidden_sub_label,
.gfield.gform_validation_container {display:none;}

/* Validation message */
.gfield_validation_message {display:none;}

/* Validation error */
.gform_validation_errors {color:var(--form-color-error); margin-bottom:var(--form-gap-h);}

/* Confirmation (after submit form) */
.gform_confirmation_wrapper {margin-bottom:var(--vii-spacing-heading);}

/* Field Label */
.gfield.hidden_label .gfield_label {display:none;}
.gfield_required {color:var(--form-color-error); margin-left:2px; display:none;}

/* Description */
.gfield_description {font-size:13px; line-height:1.1; padding-top:0.5em;}

/* Hidden field */
.gfield_visibility_hidden, .gform_hidden {display:none;}


/*********************************************
 * Field: Easy select
**********************************************/
.gform_wrapper .easy-select {
    --es-height:var(--form-field-height);
    --es-radius:var(--form-radius);
    max-width:unset; width:100%;
}
.gform_wrapper .es-current {border:none !important; border-radius:0;}
.gform_wrapper .es-current .es-option {display:flex;}
.gform_wrapper .ginput_container_select {display:flex;}

/* Layout with user enhanced interface */
.gform_wrapper .gfield.enhanced-ui-select .es-current span {overflow:hidden; white-space:nowrap; text-overflow:ellipsis;}

/*********************************************
 * Field: Repeater
**********************************************/
fieldset.gfield_repeater {margin:0; border:none; padding:0;}

.gfield_repeater_item:not(:last-child) {margin-bottom:var(--form-gap-v);}
.gfield_repeater_item:not(:last-child) .gfield_repeater_buttons {display:none;}

.gfield_repeater_buttons {margin-top:var(--vii-spacing-10); display:flex; gap:15px;}
.gfield_repeater_buttons button {
    background:transparent;
    color:var(--vii-color-text); font-size:14px;
    text-decoration:underline;
}
.gfield_repeater_buttons button:hover {color:var(--vii-color-primary);}

/*********************
 * Layout
**********************/
/* heading */
.gform_heading {order:-1;}

/*********************
 * Newletters
**********************/
form.newsletter .gform_fields {
    --form-gap-h:0;--form-gap-v:0;
    flex-wrap:nowrap;align-items:center;

}
form.newsletter .gfield {width:auto;}
form.newsletter [class*="gfield--input"] {flex-grow:1;}
form.newsletter .vii-form-field {
    padding:14px 170px 14px 24px;
    border:1px solid var(--form-border-color);
}
form.newsletter .vii-form-field:not([aria-invalid="true"]) {
    --form-border-color:var(--vii-color-primary);
}

/* Loading */
form.newsletter.loading::before {
    border-radius:200px;
}

/* inline button submit */
.btn_submit_inline_field .gform_fields {
    position:relative;
}
.btn_submit_inline_field .gform-button {
    min-height:auto;
    position:absolute;
    top:3px; right:3px;bottom:3px;
}

/* txt_color_white */
.txt_color_white form.newsletter .vii-form-field:not([aria-invalid="true"]) {
    --form-border-color:var(--vii-color-white);
    --form-border-color-hover:var(--vii-color-white);
}
.txt_color_white form.newsletter .btn_primary {
    --btn-bg-color:var(--vii-color-primary); --btn-color:var(--vii-color-white);
    --btn-bg-color-hover:var(--vii-color-white); --btn-color-hover:var(--vii-color-primary);
    --btn-border-color-hover:var(--vii-color-primary);
}
/*********************************************
 * Responsive
**********************************************/
@media only screen and (max-width:1024px) {
    .gform_wrapper {
        /* Layout */
        --form-gap-h:var(--vii-gap-container);
    }
}

@media only screen and (max-width:480px) {
    form.newsletter .vii-form-field {padding:14px 160px 14px 14px;}
    .txt_color_white form.newsletter .btn_primary {
        min-width:110px;
    }
}