/* Shared Gravity Forms treatment. Keep GF's field, validation and page DOM. */
.fa-form { width:100%; min-width:0; font-family:var(--font-body); }
.fa-form .gform_wrapper { width:100%; }
.fa-form .gform_fields { display:grid; grid-template-columns:1fr; gap:24px; margin:0; padding:0; list-style:none; }
.fa-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.fa-form .gfield_label, .fa-form legend { display:block; margin-bottom:8px; font-weight:600; }
.fa-form input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=hidden]), .fa-form select, .fa-form textarea { display:block; width:100%; max-width:100%; box-sizing:border-box; border:1px solid currentColor; border-radius:0; background:transparent; color:inherit; padding:12px; font:inherit; }
.fa-form select option { color:#050e1e; background:#fff; }
.fa-form textarea { min-height:130px; }
.fa-form .ginput_complex { display:flex; flex-wrap:wrap; gap:16px; }
.fa-form .ginput_complex > span { flex:1 1 180px; min-width:0; }
.fa-form .gfield_checkbox, .fa-form .gfield_radio { display:grid; gap:10px; }
.fa-form .gchoice { display:flex; gap:10px; align-items:baseline; }
.fa-form .gform_footer, .fa-form .gform_page_footer { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.fa-form .gform_button, .fa-form .gform_next_button, .fa-form .gform_previous_button { border:0; padding:14px 24px; font:600 18px/1.3 var(--font-display); background:var(--fa-yellow,#fceb4e); color:var(--fa-ink,#050e1e); cursor:pointer; }
.fa-form .validation_message, .fa-form .gform_validation_errors { color:inherit; border-left:3px solid currentColor; padding-left:12px; margin:8px 0; }
.fa-form .gfield_required { display:inline; }
.fa-form .gfield_visibility_hidden, .fa-form .gfield--type-hidden { display:none; }
.fa-form .hidden_label > .gfield_label, .fa-form .screen-reader-text { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.fa-form :focus-visible, .fa-form-repeat:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.fa-form-repeat { display:inline-block; color:inherit; text-underline-offset:4px; }
.fa-form-admin-note { padding:12px; border:1px solid currentColor; }
.fa-form--newsletter .gform_fields { gap:12px; }
.fa-form--newsletter .gform_footer { margin-top:12px; }
.bc-qualifier { display:block; width:100%; border:0; background:#fff; min-height:400px; }
.bc-panel--embedded { display:block; overflow:visible; }
.bc-external { margin:20px 0; text-align:center; }
.bc-external a { color:inherit; text-underline-offset:4px; }
.bc-fit__pill--0 { background:#50dda4; transform:rotate(-2deg); }
.bc-fit__pill--1 { background:#fceb4e; transform:rotate(1deg); }
.bc-fit__pill--2 { background:#ec97d8; transform:rotate(-1deg); }
@media(max-width:600px) { .fa-form .ginput_complex { display:block; } .fa-form .ginput_complex > span { display:block; margin-bottom:12px; } }

/* Footer newsletter: native GF labels, opt-in and submission DOM remain intact.
   Match the email and Subscribe control heights; stack on narrow phones. */
.fa-footer .fa-footer-newsletter form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 12px;
  row-gap: 12px;
  align-items: start;
}
.fa-footer .fa-footer-newsletter .gform_body { min-width: 0; }
.fa-footer .fa-footer-newsletter .gfield_label {
  font-size: 16px;
  line-height: 1.25;
  margin-bottom: 8px;
}
.fa-footer .fa-footer-newsletter input[type="email"] {
  min-height: 48px;
  font-size: 16px;
  line-height: 1.25;
}
.fa-footer .fa-footer-newsletter .gform_footer {
  margin: 28px 0 0;
  padding: 0;
  gap: 8px;
  flex-wrap: nowrap;
  align-items: center;
}
.fa-footer .fa-footer-newsletter .gform_button {
  min-height: 48px;
  margin: 0;
  padding: 12px 16px;
  font-size: 16px;
  line-height: 1.25;
  white-space: nowrap;
}
.fa-footer .fa-footer-newsletter .gfield_checkbox > li,
.fa-footer .fa-footer-newsletter .gchoice {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.fa-footer .fa-footer-newsletter input[type="checkbox"] { flex: none; margin: 3px 0 0; }
.fa-footer .fa-footer-newsletter .gfield_checkbox label { min-width: 0; font-size: 14px; line-height: 1.4; }
/* The inherited Mailchimp checked-label rule paints black. Keep footer
   opt-in copy readable in either state without changing other form labels. */
.fa-footer .fa-footer-newsletter .gfield_checkbox label,
.fa-footer .fa-footer-newsletter .gfield_checkbox input[type="checkbox"]:checked + label { color: var(--fa-white, #fff); }
.fa-footer .fa-footer-newsletter .gform_validation_errors,
.fa-footer .fa-footer-newsletter .gform_confirmation_message { grid-column: 1 / -1; color: inherit; }
@media (max-width: 479px) {
  .fa-footer .fa-footer-newsletter form { grid-template-columns: minmax(0, 1fr); }
  .fa-footer .fa-footer-newsletter .gform_footer { margin-top: 0; }
  .fa-footer .fa-footer-newsletter .gform_button { width: 100%; }
}

/* Contact's navy form band uses the existing design's white field surfaces.
   Scope to its own rendered GF wrapper; other enquiries and footer stay intact. */
.ct-form-sec .fa-form--contact { color: var(--fa-white, #fff); }
.ct-form-sec .fa-form--contact input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=hidden]),
.ct-form-sec .fa-form--contact select,
.ct-form-sec .fa-form--contact textarea {
  background: var(--fa-white, #fff);
  color: var(--fa-ink, #050e1e);
  border-color: var(--fa-white, #fff);
}
.ct-form-sec .fa-form--contact input::placeholder,
.ct-form-sec .fa-form--contact textarea::placeholder { color: #5b6574; opacity: 1; }
.ct-form-sec .fa-form--contact .gfield_checkbox label,
.ct-form-sec .fa-form--contact .gfield_checkbox input[type="checkbox"]:checked + label,
.ct-form-sec .fa-form--contact .validation_message,
.ct-form-sec .fa-form--contact .gform_validation_errors { color: var(--fa-white, #fff); }
.ct-form-sec .fa-form--contact :focus-visible { outline-color: var(--fa-white, #fff); }

/* Gravity Forms in the dark office and industry enquiry panel (.ld-form): white labels and
   white fields with ink text, matching the design's .ld-form__label and .ld-form__input. */
.ld-form .fa-form { color:#fff; }
.ld-form .fa-form input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=hidden]), .ld-form .fa-form select, .ld-form .fa-form textarea { min-height:48px; padding:0 14px; border:0; background:#fff; color:#050e1e; }
.ld-form .fa-form textarea { min-height:120px; padding:12px 14px; }
.ld-form .fa-form .validation_message, .ld-form .fa-form .gform_validation_errors { color:#ffb9b9; }

/* Retained download banner (Accounting and Tax, GF 14): keep the highlighted heading line clear of
   the line above, and keep the email form to a readable width. */
.fa-legacy-section h2 { line-height:1.2; }
.fa-legacy-section h2 mark { display:inline-block; line-height:1.15; margin-top:8px; }
.fa-legacy-section h2 mark { padding:0 .08em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.fa-legacy-section .fa-form--legacy { max-width:560px; }
