.gform_heading .gform_title {
    font-size: var(--font-size-display-02);
}

.gform_body .ginput_container,
.gform_body .gfield_list_container {
    margin-left: 0;
}

.gform_body [class*="container"] {
    width: 100%;
}

.gform_body .gsection_title {
    font-size: var(--font-size-h1);
    line-height: 1;
    margin-top: 4.1875rem;

    @media (width >=768px) {
        font-size: var(--font-size-h1-02);
        margin-bottom: 0.875rem;
        margin-top: 6.875rem;
    }
}

.gform_body .gfield_label {
    font-family: var(--font-family-primary);
    font-size: 0.75rem !important;
    font-weight: 400 !important;
    line-height: 2.6;
    color: #101010;
    margin-bottom: 0 !important;
}

/* Sub labels (Name, Address, Time, Credit Card, etc.) */
/* Prefixed with .gform_wrapper.gravity-theme: Gravity Forms' theme.min.css
   loads after this file and sets these to 15px. */
.gform_wrapper.gravity-theme .gform-field-label--type-sub,
.gform_wrapper.gravity-theme .ginput_complex label,
.gform_wrapper.gravity-theme .gfield--type-phone .gform-field-label--type-sub {
    font-family: var(--font-family-primary);
    font-size: 0.75rem !important;
    font-weight: 400 !important;
    line-height: 1.8;
    color: #101010;
    margin-bottom: 0 !important;
}

/* Field descriptions, upload rules, character counters */
.gform_wrapper.gravity-theme .gfield_description,
.gform_wrapper.gravity-theme .gform_fileupload_rules,
.gform_wrapper.gravity-theme .gfield_header_item,
.gform_wrapper.gravity-theme .charleft {
    font-family: var(--font-family-primary);
    font-size: 0.75rem;
    line-height: 1.5;
    color: #101010;
    padding-top: 0.375rem;
}

.gform_body input[type='text'],
.gform_body input[type='email'],
.gform_body input[type='password'],
.gform_body input[type='search'],
.gform_body input[type='color'],
.gform_body input[type='date'],
.gform_body input[type='datetime-local'],
.gform_body input[type='month'],
.gform_body input[type='number'],
.gform_body input[type='tel'],
.gform_body input[type='time'],
.gform_body input[type='url'],
.gform_body input[type='week'],
.gform_body input[list],
.gform_body input[type='range'] {
    background-color: #DDDDDD;
    border: 0.015625rem solid #000000;
    box-sizing: border-box;
    height: 2.375rem;
    width: 100%;

    /* Trade Gothic Cond Light: ascent 1479, descent 569 per 2048 em, cap height
       equal to the ascent. So the line box carries 0.28em of empty descent
       under the caps, and centering the box leaves the caps looking high while
       centering the caps leaves the box (and the selection highlight) looking
       low. This splits the difference: both land ~1px off instead of ~2px. */
    padding-block: 0.14em 0 !important;
    padding-inline: 1em !important;
    line-height: normal !important;
}

/* Field sizes ------------------------------------------------------------ */

/* Gravity Forms sizes .small at 25% and .medium at 50% of the container, which
   collapses to an unusable box on a phone. Cap them with a max-width instead so
   they keep their intent on desktop and go full width on mobile. The extra
   .gform_body in the selector outspecs GF's own rule, which loads after this
   file. */
.gform_wrapper.gravity-theme .gform_body .gfield input.small,
.gform_wrapper.gravity-theme .gform_body .gfield select.small {
    width: 100%;
    max-width: 16.875rem;
}

.gform_wrapper.gravity-theme .gform_body .gfield input.medium,
.gform_wrapper.gravity-theme .gform_body .gfield select.medium {
    width: 100%;
    max-width: 25rem;
}

@media (width <=549px) {
    .gform_wrapper.gravity-theme .gform_body .gfield input.small,
    .gform_wrapper.gravity-theme .gform_body .gfield input.medium,
    .gform_wrapper.gravity-theme .gform_body .gfield select.small,
    .gform_wrapper.gravity-theme .gform_body .gfield select.medium {
        max-width: none;
    }
}

/* Focus state — mirrors the red focus used by .a-button--primary */
.gform_wrapper.gravity-theme .gform_body input:focus-visible,
.gform_wrapper.gravity-theme .gform_body select:focus-visible,
.gform_wrapper.gravity-theme .gform_body textarea:focus-visible {
    outline: 0.125rem solid var(--color-red-focus);
    outline-offset: 0.0625rem;
}

/* Single file upload ------------------------------------------------------ */
.gform_body input[type='file'] {
    background-color: #DDDDDD;
    border: 0.015625rem solid #000000;
    box-sizing: border-box;
    height: 2.375rem;
    width: 100%;
    max-width: 100%;
    padding: 0 !important;
    font-family: var(--font-family-primary);
    font-size: 0.875rem;
    line-height: 2.3125rem;
    color: #101010;
    cursor: pointer;
}

.gform_body input[type='file']::file-selector-button {
    height: 100%;
    margin: 0 1em 0 0;
    padding: 0 1.25rem;
    border: 0;
    border-right: 0.015625rem solid #000000;
    background-color: var(--color-red);
    color: var(--color-white);
    font-family: var(--font-family-heading);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background-color 0.25s;
}

.gform_body input[type='file']::-webkit-file-upload-button {
    height: 100%;
    margin: 0 1em 0 0;
    padding: 0 1.25rem;
    border: 0;
    border-right: 0.015625rem solid #000000;
    background-color: var(--color-red);
    color: var(--color-white);
    font-family: var(--font-family-heading);
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
}

.gform_body input[type='file']::file-selector-button:hover {
    background-color: var(--color-red-hover);
}

.gform_body input[type='file']:focus-visible {
    outline: 0.125rem solid var(--color-red-focus);
    outline-offset: 0.125rem;
}

/* Multi file upload (drag & drop) ---------------------------------------- */
.gform_body .gform_drop_area {
    background-color: #DDDDDD;
    border: 0.0625rem dashed #000000;
    padding: 1.5rem 1rem;
    text-align: center;
    font-family: var(--font-family-primary);
    font-size: 0.875rem;
    color: #101010;
}

.gform_body .gform_button_select_files {
    display: inline-block;
    margin-top: 0.5rem;
    padding: 0.625rem 1.5rem;
    border: none;
    background-color: var(--color-red);
    color: var(--color-white);
    font-family: var(--font-family-heading);
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    cursor: pointer;
    transition: background-color 0.25s;
}

.gform_body .gform_button_select_files:hover {
    background-color: var(--color-red-hover);
}

.gform_body .ginput_preview {
    font-family: var(--font-family-primary);
    font-size: 0.875rem;
    padding-top: 0.5rem;
}

.gform_body textarea {
    background-color: #DDDDDD;
    border: 0.015625rem solid var(--color-black) !important;
    height: 13.375rem !important;
    padding-left: 1em !important;
    padding-top: 1em !important;
}

/* Radios, checkboxes, consent ------------------------------------------- */
.gform_body .gfield_radio div.gchoice,
.gform_body .gfield_checkbox div.gchoice,
.gform_body .ginput_container_consent {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-bottom: 5px;
}

.gform_body .gfield_radio div.gchoice label,
.gform_body .gfield_checkbox div.gchoice label,
.gform_body .ginput_container_consent label {
    padding-top: 4px;
    font-family: var(--font-family-primary);
    font-size: 0.875rem;
    line-height: 1.2;
    color: #101010;
    margin-bottom: 0;
}

.gform_body .gfield-choice-input {
    vertical-align: top;
    accent-color: var(--color-red);
    flex: 0 0 auto;
}

/* "Other" text input rendered next to a radio choice */
.gform_body .gchoice input[type='text'] {
    max-width: 16.875rem;
}

.gform_body select {
    background-color: #DDDDDD;
    border: 0.015625rem solid var(--color-black);
    box-sizing: border-box;
    padding-right: 2.8125rem;
    padding-left: 1.4375rem;
    padding-block: 0.14em 0;
    line-height: normal;
    height: 2.375rem;
    max-width: 16.875rem;
    width: 100%;
    background-image: url('data:image/svg+xml,<svg width="24" height="14" viewBox="0 0 24 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.0833 1L11.5416 12L0.999995 1" stroke="black" stroke-width="2" stroke-linecap="round"/></svg>');
    background-repeat: no-repeat;
    background-position: 95% 50%;
    -moz-appearance: none;
    -webkit-appearance: none;
    appearance: none;

    @media (width <=549px) {
        width: 100%;
        max-width: none;
    }
}

.gform_body .gfield_select[multiple="multiple"] {
    height: 4rem;
    background-image: none;
}

.gform_body .ginput_container_list .gfield_list {
    width: 100%;
}

/* List field add / remove row buttons */
.gform_body .gfield_list .add_list_item,
.gform_body .gfield_list .delete_list_item {
    background-color: var(--color-red);
    border: none;
    color: var(--color-white);
    cursor: pointer;
}

/* Required marker and validation ---------------------------------------- */
.gform_body .gfield_required {
    color: var(--color-red);
    font-style: italic;
}

.gform_body .gfield_error input,
.gform_body .gfield_error select,
.gform_body .gfield_error textarea {
    border-color: var(--color-red) !important;
}

.gform_body .gfield_validation_message,
.gform_body .validation_message {
    background: none;
    border: none;
    border-left: 0.1875rem solid var(--color-red);
    color: var(--color-red);
    font-family: var(--font-family-primary);
    font-size: 0.75rem;
    line-height: 1.4;
    padding: 0.25rem 0 0.25rem 0.5rem;
    margin-top: 0.375rem;
}

.gform_wrapper .gform_validation_errors {
    background-color: #DDDDDD;
    border: 0.015625rem solid var(--color-red);
    box-shadow: none;
    border-radius: 0;
    padding: 0.75rem 1rem;
}

.gform_wrapper .gform_validation_errors > h2 {
    color: var(--color-red);
    font-family: var(--font-family-primary);
    font-size: 0.875rem;
}

/* Confirmation message --------------------------------------------------- */

/* Replaces the snippet-plugin rule:
   .gform_confirmation_message { text-align: center; margin: 50px 0 20px 0; }
   Styled as a grey panel like the field boxes, with the site's red uppercase
   heading treatment for any heading or bold lead-in inside the message. */
.gform_confirmation_wrapper,
.gform_confirmation_message:only-child {
    background-color: #DDDDDD;
    border: 0.015625rem solid var(--color-black);
    box-sizing: border-box;
    max-width: 44rem;
    margin: 3.125rem auto 1.25rem;
    padding: 2.5rem 1.5rem;
    text-align: center;

    @media (width >=768px) {
        padding: 3.25rem 3rem;
    }
}

/* The panel belongs to the wrapper when there is one */
.gform_confirmation_wrapper .gform_confirmation_message {
    background: none;
    border: none;
    max-width: none;
    margin: 0;
    padding: 0;
}

.gform_confirmation_message,
.gform_wrapper .gform_confirmation_message {
    font-family: var(--font-family-primary);
    font-size: 1.125rem;
    line-height: 1.4;
    color: #101010;
    text-align: center;
}

.gform_confirmation_message h1,
.gform_confirmation_message h2,
.gform_confirmation_message h3,
.gform_confirmation_message h4,
.gform_confirmation_message p:first-child strong,
.gform_confirmation_message p:first-child b {
    display: block;
    margin: 0 0 0.75rem;
    font-family: var(--font-family-heading);
    font-size: var(--title-xs);
    font-weight: 400;
    line-height: 1.1;
    text-transform: uppercase;
    color: var(--color-red);

    @media (width >=768px) {
        font-size: var(--title-md);
    }
}

.gform_confirmation_message p {
    margin: 0 0 0.75em;
}

.gform_confirmation_message p:last-child {
    margin-bottom: 0;
}

.gform_confirmation_message a:not([class]) {
    color: var(--color-red);
    text-decoration: underline;
}

.gform_confirmation_message a:not([class]):hover {
    color: var(--color-red-hover);
}

/* Multi page progress bar ------------------------------------------------ */
.gform_wrapper .gf_progressbar {
    background-color: #DDDDDD;
    border-radius: 0;
}

.gform_wrapper .gf_progressbar_percentage {
    background-color: var(--color-red);
    border-radius: 0;
    color: var(--color-white);
    font-family: var(--font-family-heading);
}

/* Buttons --------------------------------------------------------------- */

/* Matches .a-button.a-button--primary (parts/a-styles.css) */
.gform_wrapper.gravity-theme .gform_footer input[type='submit'],
.gform_wrapper.gravity-theme .gform_footer input[type='button'],
.gform_wrapper.gravity-theme .gform_footer button.gform_button,
.gform_wrapper.gravity-theme .gform_page_footer input[type='submit'],
.gform_wrapper.gravity-theme .gform_page_footer input[type='button'],
.gform_wrapper.gravity-theme .gform_page_footer button.gform_button,
.gform_wrapper.gravity-theme #field_submit input[type='submit'],
.gform_wrapper.gravity-theme #field_submit button.gform_button {
    display: inline-flex;
    align-items: center;
    width: auto;
    height: auto;
    min-height: 0;
    margin-bottom: 0;
    padding: 0.5em 1.2em 0.45em !important;
    border: none !important;
    border-radius: 0 !important;
    background-color: var(--color-primary) !important;
    color: var(--color-white) !important;
    text-decoration: none;
    text-transform: uppercase;
    font-family: var(--font-family-heading);
    font-size: 1em !important;
    font-weight: bold !important;
    line-height: 1.1 !important;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.gform_wrapper.gravity-theme .gform_footer input[type='submit']:hover,
.gform_wrapper.gravity-theme .gform_footer input[type='button']:hover,
.gform_wrapper.gravity-theme .gform_footer button.gform_button:hover,
.gform_wrapper.gravity-theme .gform_page_footer input[type='submit']:hover,
.gform_wrapper.gravity-theme .gform_page_footer input[type='button']:hover,
.gform_wrapper.gravity-theme .gform_page_footer button.gform_button:hover,
.gform_wrapper.gravity-theme #field_submit input[type='submit']:hover,
.gform_wrapper.gravity-theme #field_submit button.gform_button:hover {
    background-color: var(--color-red-hover) !important;
    color: var(--color-white) !important;
}

.gform_wrapper.gravity-theme .gform_footer input[type='submit']:focus,
.gform_wrapper.gravity-theme .gform_footer input[type='button']:focus,
.gform_wrapper.gravity-theme .gform_footer button.gform_button:focus,
.gform_wrapper.gravity-theme .gform_page_footer input[type='submit']:focus,
.gform_wrapper.gravity-theme .gform_page_footer input[type='button']:focus,
.gform_wrapper.gravity-theme .gform_page_footer button.gform_button:focus,
.gform_wrapper.gravity-theme #field_submit input[type='submit']:focus,
.gform_wrapper.gravity-theme #field_submit button.gform_button:focus {
    background-color: var(--color-red-focus) !important;
    color: var(--color-white) !important;
}

/* Previous / Save-and-continue keep the atom's secondary look */
.gform_wrapper.gravity-theme .gform_page_footer .gform_previous_button.button,
.gform_wrapper.gravity-theme .gform_save_link.button {
    background-color: transparent !important;
    color: var(--color-red) !important;
    border: 1px solid var(--color-red) !important;
}

/* Ajax spinner ----------------------------------------------------------- */

/* Gravity Forms centres .gform-loader over its container (position:absolute;
   inset:0;margin:auto) and blanks the button label. Put it in normal flow
   next to the button instead, and keep the label readable. */
.gform_wrapper.gravity-theme .gform_footer,
.gform_wrapper.gravity-theme .gform_page_footer {
    position: relative;
    align-items: center;
    gap: 0.75rem;
}

.gform_wrapper.gravity-theme .gform-loader {
    position: relative !important;
    inset: auto !important;
    margin: 0 !important;
    flex: 0 0 auto;
    align-self: center;
    border-block-start-color: #DDDDDD !important;
    border-inline-end-color: #DDDDDD !important;
    border-block-end-color: var(--color-red) !important;
    border-inline-start-color: var(--color-red) !important;
}

/* If Gravity Forms nests the loader inside the button, park it just outside */
.gform_wrapper.gravity-theme .gform_button .gform-loader,
.gform_wrapper.gravity-theme button.gform_button .gform-loader {
    position: absolute !important;
    inset: 0 auto 0 100% !important;
    margin-block: auto !important;
    margin-inline-start: 0.75rem !important;
}

/* Button label stays visible while submitting (GF sets it transparent, and
   sets -webkit-text-fill-color inline on Safari). */
.gform_wrapper.gravity-theme .gform-has-spinner,
.gform_wrapper.gravity-theme input.gform_button.gform-has-spinner,
.gform_wrapper.gravity-theme button.gform_button.gform-has-spinner {
    color: var(--color-white) !important;
    -webkit-text-fill-color: var(--color-white) !important;
}
