/* ==========================================================
   EDI - Gravity Forms Theme Override
   Coherent style aligned with site variables
   ========================================================== */


.gform_button.button {

    border-radius: 20px!important;

}

body .gform_wrapper {
    --edi-gf-bg: var(--site-bg-color, #ffffff);
    --edi-gf-text: var(--site-text-color, #333333);
    --edi-gf-border: var(--site-border-color, #d3e4e6);
    --edi-gf-primary: var(--primary-button-bg-color, #429382);
    --edi-gf-primary-fg: var(--primary-button-fg-color, #ffffff);
    --edi-gf-danger: var(--preferred-color, #e62336);
    --edi-gf-radius: 18px;
    --edi-gf-pill: var(--standard-border-radius, 60px);
    --edi-gf-shadow: var(--site-box-shadows, 0 0 18px 0 rgba(0, 0, 0, 0.1));
    margin: 24px 0;
    color: var(--edi-gf-text);
    font-family: var(--primary-font-family, inherit);
}

body .gform_wrapper form {
    border: 1px solid var(--edi-gf-border);
    border-radius: var(--edi-gf-radius);
    background: var(--edi-gf-bg);
    box-shadow: var(--edi-gf-shadow);
    padding: 26px;
}

body .gform_wrapper .gform_heading {
    margin-bottom: 18px;
}

body .gform_wrapper .gform_title {
    margin: 0 0 10px;
    font-family: var(--secondary-font-family, var(--primary-font-family, inherit));
    font-size: clamp(24px, 2.2vw, 32px);
    line-height: 1.2;
    font-weight: 700;
    color: var(--edi-gf-text);
}

body .gform_wrapper .gform_description {
    font-size: 15px;
    line-height: 1.5;
    color: #5d6b6d;
}

body .gform_wrapper .gform_required_legend {
    display: none;
}

body .gform_wrapper .gfield {
    margin-bottom: 16px;
}

body .gform_wrapper .gfield_label {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--edi-gf-text);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
}

body .gform_wrapper .gfield_required {
    color: var(--green1);
}

body .gform_wrapper :is(
    input[type="text"],
    input[type="email"],
    input[type="url"],
    input[type="password"],
    input[type="search"],
    input[type="number"],
    input[type="tel"],
    input[type="date"],
    input[type="time"],
    input[type="month"],
    input[type="week"],
    textarea,
    select
) {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--edi-gf-border);
    border-radius: 14px;
    background: #ffffff;
    color: var(--edi-gf-text);
    font-family: var(--primary-font-family, inherit);
    font-size: 15px;
    line-height: 1.4;
    padding: 10px 14px;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

body .gform_wrapper textarea {
    min-height: 120px;
    resize: vertical;
}

body .gform_wrapper select {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 40px;
    background-image:
        linear-gradient(45deg, transparent 50%, #667c7e 50%),
        linear-gradient(135deg, #667c7e 50%, transparent 50%);
    background-position:
        calc(100% - 18px) calc(50% - 3px),
        calc(100% - 12px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

body .gform_wrapper :is(input, textarea, select)::placeholder {
    color: #8ca0a2;
}

body .gform_wrapper :is(input, textarea, select):focus {
    outline: 0;
    border-color: var(--edi-gf-primary);
    box-shadow: 0 0 0 3px rgba(66, 147, 130, 0.2);
}

body .gform_wrapper .gfield_description,
body .gform_wrapper .gfield_consent_description {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.45;
    color: #677779;
}

body .gform_wrapper .ginput_complex label,
body .gform_wrapper .name_prefix_label {
    margin-top: 6px;
    font-size: 14px;
    color: #6f7f81;
}

body .gform_wrapper .gfield_checkbox,
body .gform_wrapper .gfield_radio {
    display: grid;
    gap: 8px;
}

body .gform_wrapper .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

body .gform_wrapper .gchoice > label {
    margin: 1px 0 0;
    font-weight: 400;
    font-size: 15px;
    line-height: 1.4;
}

body .gform_wrapper :is(input[type="checkbox"], input[type="radio"]) {
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 2px 0 0;
    accent-color: var(--edi-gf-primary);
}

body .gform_wrapper .ginput_container_fileupload input[type="file"] {
    border: 1px dashed var(--edi-gf-border);
    border-radius: 14px;
    background: #f4faf9;
    padding: 14px;
}

body .gform_wrapper .gfield_error :is(input, textarea, select) {
    border-color: #e9a5ae;
    background: #fff9fa;
}

body .gform_wrapper .gfield_validation_message,
body .gform_wrapper .validation_message,
body .gform_wrapper .gfield_error .gfield_repeater_cell label {
    margin-top: 8px;
    border: 1px solid #f3cdd3;
    border-radius: 12px;
    background: #fff5f7;
    color: #8f2332;
    font-size: 13px;
    line-height: 1.4;
    padding: 8px 10px;
}

body .gform_wrapper .gform_validation_errors {
    margin-bottom: 18px;
    border: 1px solid #f3cdd3;
    border-left: 4px solid var(--edi-gf-danger);
    border-radius: 14px;
    background: #fff5f7;
    box-shadow: none;
    padding: 12px 14px;
}

body .gform_wrapper .gform_validation_errors > h2 {
    margin: 0;
    font-size: 15px;
    line-height: 1.4;
    color: #8f2332;
    font-family: var(--primary-font-family, inherit);
}

body .gform_wrapper .validation_error {
    margin-bottom: 12px;
}

body .gform_wrapper .gform_confirmation_message {
    border: 1px solid #cde8d7;
    border-left: 4px solid var(--edi-gf-primary);
    border-radius: 14px;
    background: #f2fbf5;
    color: #2f6b48;
    padding: 14px 16px;
    font-size: 15px;
    line-height: 1.45;
}

body .gform_wrapper .gsection {
    margin: 24px 0 12px;
    padding-top: 18px;
    border-top: 1px solid var(--edi-gf-border);
}

body .gform_wrapper .gsection_title {
    margin: 0;
    font-size: clamp(20px, 2vw, 26px);
    line-height: 1.25;
    font-weight: 700;
    color: var(--edi-gf-text);
}

body .gform_wrapper .gf_page_steps {
    border: 1px solid var(--edi-gf-border);
    border-radius: 14px;
    background: #f4faf9;
    padding: 8px;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

body .gform_wrapper .gf_step {
    margin: 0;
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 13px;
    line-height: 1.1;
    color: #5e6f71;
}

body .gform_wrapper .gf_step.gf_step_active {
    background: var(--edi-gf-primary);
    color: var(--edi-gf-primary-fg);
}

body .gform_wrapper .gf_step.gf_step_completed {
    background: #dff1ea;
    color: var(--edi-gf-primary);
}

body .gform_wrapper .gform_footer,
body .gform_wrapper .gform_page_footer {
    margin-top: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

body .gform_wrapper .gform_footer input[type="submit"],
body .gform_wrapper .gform_footer input[type="button"],
body .gform_wrapper .gform_page_footer input[type="submit"],
body .gform_wrapper .gform_page_footer input[type="button"],
body .gform_wrapper .gform_button,
body .gform_wrapper .gform_next_button,
body .gform_wrapper .gform_previous_button {
    min-height: 44px;
    border-radius: var(--edi-gf-pill);
    border: 1px solid var(--edi-gf-primary);
    background: var(--edi-gf-primary);
    color: var(--edi-gf-primary-fg);
    padding: 0 20px;
    font-size: 15px;
    font-weight: 600;
    font-family: var(--primary-font-family, inherit);
    line-height: 1;
    cursor: pointer;
    transition: transform 0.2s ease, filter 0.2s ease, box-shadow 0.2s ease;
}

body .gform_wrapper .gform_previous_button,
body .gform_wrapper input[type="button"].gform_previous_button {
    border-color: var(--edi-gf-border);
    background: #ffffff;
    color: var(--edi-gf-text);
}

body .gform_wrapper .gform_save_link {
    color: var(--edi-gf-primary);
    font-weight: 600;
    text-decoration: none;
}

body .gform_wrapper :is(
    .gform_footer input[type="submit"],
    .gform_footer input[type="button"],
    .gform_page_footer input[type="submit"],
    .gform_page_footer input[type="button"],
    .gform_button,
    .gform_next_button,
    .gform_previous_button
):hover {
    filter: brightness(0.96);
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(66, 147, 130, 0.24);
}

body .gform_wrapper :is(
    .gform_footer input[type="submit"],
    .gform_footer input[type="button"],
    .gform_page_footer input[type="submit"],
    .gform_page_footer input[type="button"],
    .gform_button,
    .gform_next_button,
    .gform_previous_button
):focus-visible {
    outline: 0;
    box-shadow: 0 0 0 3px rgba(66, 147, 130, 0.2);
}

body .gform_wrapper table.gfield_list,
body .gform_wrapper table.gsurvey-likert {
    border: 1px solid var(--edi-gf-border);
    border-radius: 12px;
    overflow: hidden;
}

body .gform_wrapper table.gfield_list th,
body .gform_wrapper table.gfield_list td,
body .gform_wrapper table.gsurvey-likert th,
body .gform_wrapper table.gsurvey-likert td {
    border-color: var(--edi-gf-border);
    padding: 10px;
}

body .gform_wrapper table.gfield_list thead th,
body .gform_wrapper table.gsurvey-likert thead th {
    background: #f4faf9;
    font-weight: 600;
}

@media screen and (max-width: 900px) {
    body .gform_wrapper form {
        padding: 20px;
        border-radius: 16px;
    }
}

@media screen and (max-width: 767px) {
    body .gform_wrapper .gform_footer,
    body .gform_wrapper .gform_page_footer {
        flex-direction: column;
        align-items: stretch;
    }

    body .gform_wrapper :is(
        .gform_footer input[type="submit"],
        .gform_footer input[type="button"],
        .gform_page_footer input[type="submit"],
        .gform_page_footer input[type="button"],
        .gform_button,
        .gform_next_button,
        .gform_previous_button
    ) {
        width: 100%;
    }
}
