/*********************************************
 * Plugin Gravity Form
 * Note: default GF CSS must be disabled.
**********************************************/
.gform_wrapper {
    /* Layout */
    --form-gap-h:var(--vii-spacing-12);
    --form-gap-v:var(--vii-spacing-12);
    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);}
.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-dropdown {
    --es-dropdown-height:280px;
    box-shadow:0 0 30px 0 rgba(0, 0, 0, 0.1);
}
.gform_wrapper .es-current {border:none !important; border-radius:0;}
.gform_wrapper .es-current .es-option {
    display:flex;
    color:var(--form-placeholder-color);
}
.gform_wrapper .es-current .es-option.vii-form-field:not([data-es-option=""]) {--form-placeholder-color:var(--vii-color-dark-blue);}
.gform_wrapper .es-current .es-option:is(:hover, :focus) {
    color:var(--form-placeholder-hover);
}
.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;}
.gform_wrapper .gfield.enhanced-ui-select .es-search-input {
    --form-field-height:44px;
    --form-field-padding-h:15px;

    padding-bottom:7px !important;
}

/* field date */
.ginput_container_date .easy-select {min-width:125px;}
.ginput_container_date .es-dropdown .es-option {min-width:100%;}



/*********************************************
 * 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;}

.vii-gforms .-checkbox-radio + label:before {--form-border-width:1px;}
.vii-gforms .vii-form-field[type="checkbox"] + label::before {border-radius:var(--vii-radius-4);}
.vii-gforms .vii-form-field:not([readonly]):focus-visible {border-width:0;}
.vii-gforms .gform_wrapper {--form-gap-v:var(--vii-spacing-12);}

/* extra link ul */
.vii-gform-extra-links-ul {row-gap:12px;}
.vii-gform-extra-links-ul li:not(:last-of-type) {padding-right:24px;}
.vii-gform-extra-links-ul li:not(:last-of-type)::after {
    content:"";position:absolute;top:50%;right:12px;
    width:1px;height:100%;
    background-color:var(--vii-color-dark-blue);
    transform:translateY(-50%);
}
.vii-gform-extra-links-ul a {gap:8px;text-decoration:none;}
.vii-gform-extra-links-ul a:is(:hover, :focus) {text-decoration:none;}
.vii-gform-extra-links-ul a [class*="icon-"] {font-size:16px;}


/*********************************************
 * Responsive
**********************************************/
@media only screen and (max-width:1024px) {
    .gform_wrapper {
        /* Layout */
        --form-gap-h:var(--vii-gap-container);
    }
}
@media only screen and (min-width:768px) {
    .vii-gforms .gfield.gfield--width-third {--field-col:1;margin-top:auto;}
    .vii-gforms .gfield.gfield--width-half {margin-top:auto;}
    .vii-gforms .gfield.gfield--width-quarter {--field-col:2;}
}

@media screen and (max-width:480px) {
    .vii-gform-extra-links-ul li:not(:last-of-type)::after {content:unset;}
    .vii-gform-extra-links-ul li:not(:last-of-type) {padding-right:0;}
    .vii-gform-extra-links-ul {flex-direction:column; align-items:flex-start;}
}