/* =====================================================================
   FORM PORTAL REFRESH ("Impeccable")
   Gravity Forms Modern Stylizer

   Loaded AFTER the selected theme stylesheet, so everything here wins
   over the theme defaults.

   DELIBERATELY CONTAINS NO BUTTON COLOR OR SIZE RULES.
   Submit / Next / Previous buttons are governed entirely by the theme
   CSS and the Button Colors settings. Do not add background-color,
   color, padding, width, min-width or font-size rules for
   .gform_footer / .gform_page_footer buttons to this file.
   ===================================================================== */

/* ---- 0. Remove the "* - Indicates a required response" legend ---- */
.gform-theme--no-framework .gform_heading .gform_required_legend {
    display: none !important;
}

/* ---- 1. Outfit everywhere (icon fonts excluded) ---- */
body, button, input, select, textarea, optgroup,
h1, h2, h3, h4, h5, h6, p, li, dt, dd, td, th, caption,
label, legend, blockquote, a, strong, b, em, small, address,
.gform_wrapper,
.gform_wrapper :is(div, span, label, legend, p, td, th, li, h1, h2, h3, h4, h5, h6, strong, b, em, a, blockquote, input, select, textarea, button):not([class*="icon"]):not([class*="fa-"]):not(.fa):not(.fas):not(.far):not(.fab),
body a.gform_save_link {
    font-family: "Outfit", sans-serif !important;
}

/* ---- 2. The form card ---- */
body .box-gray,
body .box-grey,
body .box-quickquote {
    box-sizing: border-box;
    width: 100%;
    max-width: 1100px;
    margin: 40px auto 24px;
    padding: 48px 44px;
    background: #FFFFFF;
    border: 1px solid #E3E9EF;
    border-radius: 20px;
    box-shadow: 0 24px 50px -26px rgba(6, 24, 43, 0.20);
    color: #41576B;
    overflow: hidden;
}

/* legacy tables / images inside form HTML blocks must never force width */
.box-gray table, .box-grey table, .box-quickquote table,
.gform_wrapper table {
    max-width: 100% !important;
}
.box-gray img, .box-grey img, .box-quickquote img,
.gform_wrapper img {
    max-width: 100%;
    height: auto;
}
.gform_wrapper, .gform_wrapper form, .gform_wrapper .gform_body {
    max-width: 100%;
    min-width: 0;
}

/* the card supplies the breathing room - the form inside it adds none */
body .box-gray .gform_wrapper,
body .box-grey .gform_wrapper,
body .box-quickquote .gform_wrapper {
    padding: 0 !important;
    margin: 0 !important;
}

/* ---- 3. Labels, descriptions, sub-labels ---- */
body .gform_wrapper .gform_body .gform_fields .gfield .gfield_label,
body .gform_wrapper .top_label .gfield_label {
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: -0.005em;
    color: #001D3D !important;
    font-variant: normal !important;
    margin: 22px 0 8px 0 !important;
}

/* theme draws a grey rule under every legend; labels don't need it */
body .gform_wrapper legend.gfield_label {
    border: 0 !important;
    padding: 0 !important;
    width: auto;
}
.gform_wrapper .gfield_label::after {
    font-size: 0.7em !important;
    vertical-align: 0.35em;
}
body .gform_wrapper .gfield_description,
body .gform_wrapper .gform_body .gfield .gfield_description {
    font-size: 13.5px !important;
    line-height: 1.55;
    color: #6B7280;
    padding-top: 6px;
}
body .gform_wrapper .gform_body .gform_fields .gfield .ginput_complex label,
body .gform_wrapper .gform_body .gform_fields .gfield .gform-field-label--type-sub,
body .gform_wrapper .gform_body .gform_fields .gfield .instruction {
    font-size: 12.5px !important;
    font-weight: 500;
    color: #6B7280 !important;
    margin: 5px 0 0 1px !important;
    letter-spacing: 0.01em;
}

/* ---- 4. Inputs ---- */
body .gform_wrapper .gform_body .gform_fields .gfield input[type=text],
body .gform_wrapper .gform_body .gform_fields .gfield input[type=email],
body .gform_wrapper .gform_body .gform_fields .gfield input[type=tel],
body .gform_wrapper .gform_body .gform_fields .gfield input[type=url],
body .gform_wrapper .gform_body .gform_fields .gfield input[type=number],
body .gform_wrapper .gform_body .gform_fields .gfield input[type=password],
body .gform_wrapper .gform_body .gform_fields .gfield input[type=date],
body .gform_wrapper .gform_body .gform_fields .gfield select,
body .gform_wrapper .gform_body .gform_fields .gfield textarea {
    font-size: 15px !important;
    font-weight: 400 !important;
    color: #001D3D;
    background-color: #FFFFFF !important;
    border: 1px solid #CBD5DF !important;
    border-radius: 8px !important;
    padding: 11px 14px !important;
    min-height: 46px;
    line-height: 1.4;
    box-shadow: none !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
body .gform_wrapper .gform_body .gform_fields .gfield textarea {
    min-height: 120px;
    line-height: 1.55 !important;
}
body .gform_wrapper .gform_body .gform_fields .gfield select:not([multiple]) {
    -webkit-appearance: none;
    appearance: none;
    padding-right: 40px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%2341576B' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 14px center !important;
    background-size: 12px 8px !important;
}
.gform_wrapper ::placeholder { color: #9CA3AF; opacity: 1; }

/* hover + focus.
   Button types are excluded so the plugin's own button styling is never
   touched by these rules. */
body .gform_wrapper .gfield input:not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):hover,
body .gform_wrapper .gfield select:hover,
body .gform_wrapper .gfield textarea:hover {
    border-color: #9CA3AF !important;
}
body .gform_wrapper input:not([type=submit]):not([type=button]):not([type=reset]):not([type=image]):focus,
body .gform_wrapper textarea:focus,
body .gform_wrapper select:focus {
    outline: none !important;
    border: 1px solid #001D3D !important;
    background-color: #FFFFFF !important;
    box-shadow: 0 0 0 3px rgba(0, 29, 61, 0.12) !important;
    font-weight: 400 !important;
    border-radius: 8px !important;
}

/* radios + checkboxes */
.gform_wrapper input[type=radio],
.gform_wrapper input[type=checkbox] {
    accent-color: #001D3D;
    width: 18px;
    height: 18px;
}
.gform_wrapper .gchoice label,
.gform_wrapper .gfield_radio label,
.gform_wrapper .gfield_checkbox label {
    font-size: 15px;
    color: #41576B;
    line-height: 1.45;
}

/* ---- 5. Section breaks ---- */
body .gform_wrapper .gsection {
    border-bottom: 1px solid #E3E9EF !important;
    padding: 0 0 12px 0 !important;
    margin: 36px 0 8px !important;
}
body .gform_wrapper .gform_body .gform_fields .gsection .gsection_title {
    margin: 0 !important;
    color: #001D3D;
    font-weight: 600;
    letter-spacing: -0.015em;
}

/* ---- 6. Multi-page progress bar ---- */
.gform_wrapper .gf_progressbar {
    background: #E3E9EF !important;
    border-radius: 999px !important;
}
.gform_wrapper .gf_progressbar_percentage {
    background: #001D3D !important;
    border-radius: 999px !important;
}

/* ---- 7. Validation ---- */
body .gform_wrapper .gfield_error .gfield_label { color: #B42318 !important; }
body .gform_wrapper .gfield_error input,
body .gform_wrapper .gfield_error select,
body .gform_wrapper .gfield_error textarea {
    border-color: #B42318 !important;
}
body .gform_wrapper .validation_message,
body .gform_wrapper .gfield_validation_message {
    color: #B42318 !important;
    font-size: 13px !important;
    font-weight: 500;
    background: transparent !important;
    border: none !important;
    padding: 6px 0 0 !important;
}
body .gform_wrapper .gform_validation_errors {
    border: 1px solid #F3C7C3 !important;
    background: #FEF3F2 !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}

/* ---- 8. Tablet (1024px and below) ---- */
@media (max-width: 1024px) {
    body .box-gray, body .box-grey, body .box-quickquote {
        margin: 28px auto 20px;
        padding: 36px 30px;
        border-radius: 18px;
    }
}

/* ---- 9. Mobile (767px and below) ---- */
@media (max-width: 767px) {
    body .box-gray, body .box-grey, body .box-quickquote {
        margin: 12px auto 16px;
        padding: 20px 14px;
        border-radius: 14px;
        box-shadow: 0 2px 10px -4px rgba(6, 24, 43, 0.06);
    }
    .box-gray table, .box-grey table, .box-quickquote table,
    .gform_wrapper table {
        width: 100% !important;
        padding: 6px !important;
        border-radius: 10px !important;
    }
    .box-gray h1, .gform_wrapper h1 { font-size: 24px !important; line-height: 1.2 !important; }
    .box-gray h2, .gform_wrapper h2 { font-size: 20px !important; line-height: 1.25 !important; }
    .box-gray h3, .gform_wrapper h3 { font-size: 18px !important; line-height: 1.3 !important; }
    .box-gray h4, .gform_wrapper h4 { font-size: 16px !important; line-height: 1.3 !important; }
    .box-gray td, .box-gray th, .gform_wrapper td, .gform_wrapper th {
        padding: 8px !important;
    }

    body .gform_wrapper .gform_body .gform_fields .gfield .gfield_label,
    body .gform_wrapper .top_label .gfield_label {
        font-size: 13.5px !important;
        margin: 18px 0 6px 0 !important;
    }
    body .gform_wrapper .gfield_description,
    body .gform_wrapper .gform_body .gfield .gfield_description { font-size: 12.5px !important; }
    body .gform_wrapper .gform_body .gform_fields .gfield .ginput_complex label,
    body .gform_wrapper .gform_body .gform_fields .gfield .gform-field-label--type-sub { font-size: 11.5px !important; }

    /* 16px keeps iPhone Safari from auto-zooming the page on tap */
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=text],
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=email],
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=tel],
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=url],
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=number],
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=password],
    body .gform_wrapper .gform_body .gform_fields .gfield input[type=date],
    body .gform_wrapper .gform_body .gform_fields .gfield select,
    body .gform_wrapper .gform_body .gform_fields .gfield textarea {
        font-size: 16px !important;
        padding: 9px 12px !important;
        min-height: 42px;
    }
    .gform_wrapper .gchoice label,
    .gform_wrapper .gfield_radio label,
    .gform_wrapper .gfield_checkbox label { font-size: 14px; }
}
