/* Extend native Gravity Forms geometry without changing the site's theme. */
.ngp-inline { border: 0; padding: 0; margin: 0; min-width: 0; width: 100%; }
.ngp-inline[hidden], .ngp-inline [hidden] { display: none !important; }
.ngp-inline .ngp-card-mount { box-sizing: border-box; min-height: 46px; padding: 13px 12px; border: var(--gf-ctrl-border-width, 1px) solid var(--gf-ctrl-border-color, #8c8f94); border-radius: var(--gf-ctrl-radius, 4px); background: var(--gf-ctrl-bg-color, #fff); color: var(--gf-ctrl-color, inherit); font-family: var(--gf-ctrl-font-family, inherit); max-width: 100%; }
.ngp-inline [data-ngp-mode] { margin: 0 0 .5rem; padding: 0; }
.ngp-inline [data-ngp-mode]:empty { display: none; }
.ngp-inline .ngp-card-mount.StripeElement--focus,
.ngp-inline .ngp-card-mount.StripeElement--focus.StripeElement--invalid {
    background: var(--gf-ctrl-bg-color-focus, var(--gf-ctrl-bg-color, #fff));
    border-color: var(--gf-ctrl-border-color-focus, #2271b1);
    color: var(--gf-ctrl-color-focus, var(--gf-ctrl-color, inherit));
    outline: var(--gf-ctrl-outline-width-focus, 2px) solid var(--gf-ctrl-outline-color-focus, #2271b1);
    outline-offset: 2px;
    box-shadow: var(--gf-ctrl-shadow-focus, none);
}
.ngp-inline .ngp-card-mount.StripeElement--invalid { background: var(--gf-ctrl-bg-color-error, var(--gf-ctrl-bg-color, #fff)); border-color: var(--gf-ctrl-border-color-error, var(--gf-color-danger, #b32d2e)); }
/* Keep one compact feedback line reserved so loading/errors do not move Pay. */
.ngp-inline .ngp-message { min-height: 1.4em; margin: .375rem 0 0; font-size: .875em; line-height: 1.4; }
.ngp-inline .ngp-message[data-error="true"] { color: var(--gf-color-danger, #b32d2e); }
.ngp-inline button { cursor: pointer; }
.ngp-inline button:disabled { cursor: wait; }
.gform_footer:has(> .ngp-inline), .gform-footer:has(> .ngp-inline) { flex-wrap: wrap; }
.ngp-inline { flex: 0 0 100%; }
/* GF themes assign flex sizing to footer children. The card field owns one row;
   leave the existing submit button's size and theme styling intact. */
.gform_wrapper .gform_footer:has(> fieldset.ngp-inline),
.gform_wrapper .gform-footer:has(> fieldset.ngp-inline) { flex-wrap: wrap; }
.gform_wrapper .gform_footer > fieldset.ngp-inline,
.gform_wrapper .gform-footer > fieldset.ngp-inline {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding: 0;
    margin: 0;
}
/* Confirmation markup sits outside GF's form wrapper. Scope recovery controls
   here so they retain usable native button geometry without changing Pay. */
.ngp-inline [data-ngp-retry], .ngp-inline [data-ngp-check] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-height: 44px;
    max-width: 100%;
    padding: var(--gf-ctrl-btn-padding-y, .65rem) var(--gf-ctrl-btn-padding-x, 1rem);
    margin: .5rem .5rem .5rem 0;
    border: 1px solid var(--gf-ctrl-btn-border-color-primary, #1f2937);
    border-radius: var(--gf-ctrl-btn-radius, 4px);
    background: var(--gf-ctrl-btn-bg-color-primary, #1f2937);
    color: var(--gf-ctrl-btn-color-primary, #fff);
    font: inherit;
    font-weight: var(--gf-ctrl-btn-font-weight, 600);
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    white-space: normal;
}
.ngp-inline [data-ngp-check] {
    background: var(--gf-ctrl-btn-bg-color-secondary, #fff);
    color: var(--gf-ctrl-btn-color-secondary, #1f2937);
}
.ngp-inline [data-ngp-retry]:not(:disabled):hover {
    background: var(--gf-ctrl-btn-bg-color-hover-primary, #374151);
}
.ngp-inline [data-ngp-check]:not(:disabled):hover {
    background: var(--gf-ctrl-btn-bg-color-hover-secondary, #f3f4f6);
}
.ngp-inline [data-ngp-retry]:focus-visible, .ngp-inline [data-ngp-check]:focus-visible {
    outline: 2px solid var(--gf-ctrl-outline-color-focus, #2271b1);
    outline-offset: 3px;
}
.ngp-inline [data-ngp-retry]:disabled, .ngp-inline [data-ngp-check]:disabled { opacity: .55; }
