/* ==========================================================================
   Contact Form 7 — every form on the site (Speak to Tenos, the graduate
   register-your-interest forms, the vacancy Job Application). Styles the
   fields only; the white card and its surroundings belong to the module the
   form sits in (content.css for an article body, career-detail.css for the
   vacancy Apply band).
   ========================================================================== */

.wpcf7 .wpcf7-form label{display:block;margin:0 0 1.25rem;font-size:0.9375rem;font-weight:700;color:var(--navy)}
.wpcf7 .wpcf7-form label span[aria-hidden]{color:var(--navy);opacity:0.6;margin-left:2px}
.wpcf7 .tn-form__row{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:0 24px}
.wpcf7 .wpcf7-form-control-wrap{display:block;margin-top:0.45rem}
.wpcf7 .wpcf7-form input:not([type=submit]):not([type=checkbox]):not([type=radio]):not([type=file]):not(.wpcf7-free-text),
.wpcf7 .wpcf7-form select,
.wpcf7 .wpcf7-form textarea{
  width:100%;box-sizing:border-box;
  padding:14px 16px;border:1.5px solid rgba(30, 48, 150, 0.25);border-radius:6px;
  background:var(--white);font:inherit;font-size:1rem;font-weight:400;color:var(--navy);
  transition:border-color var(--speed) var(--ease);
}
/* A prefilled read-only field (the vacancy form's job title) reads as fixed. !important: see the error fill below. */
.wpcf7 .wpcf7-form input[readonly]{background:var(--grey-50) !important;cursor:default}
.wpcf7 .wpcf7-form input:focus,
.wpcf7 .wpcf7-form select:focus,
.wpcf7 .wpcf7-form textarea:focus{outline:none;border-color:var(--navy)}
.wpcf7 .wpcf7-form textarea{min-height:160px;resize:vertical}
/* p.…: an article body sizes its first paragraph as a lead, and in a short
   form that paragraph is this one. */
.wpcf7 .wpcf7-form p.tn-form__consent{font-size:0.875rem;font-weight:400;margin:0 0 1.5rem}
.wpcf7 .tn-form__consent .wpcf7-list-item{margin:0}
/* The tick box sits beside its sentence, plain weight, and a wrapped line
   lines up under the text rather than under the box. */
.wpcf7 .wpcf7-form .tn-form__consent label{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:inherit;font-weight:400;color:inherit}
.wpcf7 .tn-form__consent input[type=checkbox]{flex:none;width:1.1rem;height:1.1rem;margin:0.1rem 0 0;accent-color:var(--navy)}
/* Choice groups and uploads (Early Careers form): a fieldset per question,
   its options as plain-weight labels, the "Other" free-text box inline. */
.wpcf7 .tn-form__group{margin:0 0 1.25rem;padding:0;border:0;min-width:0}
.wpcf7 .tn-form__group legend{padding:0;font-size:0.9375rem;font-weight:700;color:var(--navy)}
.wpcf7 .tn-form__group legend span[aria-hidden]{opacity:0.6;margin-left:2px}
.wpcf7 .wpcf7-form p.tn-form__hint{margin:0.35rem 0 0;font-size:0.875rem;font-weight:400;color:var(--navy);opacity:0.75}
.wpcf7 .wpcf7-form .tn-form__row + p.tn-form__hint{margin:-0.75rem 0 1.25rem}
.wpcf7 .wpcf7-checkbox,
.wpcf7 .wpcf7-radio{display:flex;flex-wrap:wrap;gap:0.5rem 1.5rem}
.wpcf7 .wpcf7-checkbox .wpcf7-list-item,
.wpcf7 .wpcf7-radio .wpcf7-list-item{display:flex;align-items:center;gap:0.5rem;margin:0}
.wpcf7 .wpcf7-form :is(.wpcf7-checkbox, .wpcf7-radio) .wpcf7-list-item label{display:flex;align-items:flex-start;gap:8px;margin:0;font-weight:400;font-size:1rem}
.wpcf7 .wpcf7-form :is(.wpcf7-checkbox, .wpcf7-radio) .wpcf7-list-item input:is([type=checkbox],[type=radio]){flex:none;width:1.1rem;height:1.1rem;margin:0.2rem 0 0;accent-color:var(--navy)}
.wpcf7 .wpcf7-list-item.has-free-text{flex:1 1 16rem;min-width:0}
.wpcf7 .wpcf7-form .wpcf7-list-item input.wpcf7-free-text{width:auto;min-width:0;flex:1 1 8rem;box-sizing:border-box;padding:8px 12px;border:1.5px solid rgba(30, 48, 150, 0.25);border-radius:6px;background:var(--white);font:inherit;font-size:0.9375rem;font-weight:400;color:var(--navy)}
.wpcf7 .wpcf7-form .wpcf7-list-item input.wpcf7-free-text:disabled{opacity:0.5}
.wpcf7 .wpcf7-form input[type=file]{display:block;width:100%;box-sizing:border-box;padding:12px;border:1.5px dashed rgba(30, 48, 150, 0.35);border-radius:6px;font:inherit;font-size:0.9375rem;font-weight:400;color:var(--navy);background:var(--white);cursor:pointer}
.wpcf7 .wpcf7-form input[type=file]::file-selector-button{margin-right:12px;padding:8px 16px;border:0;border-radius:999px;background:var(--navy);color:var(--white);font:inherit;font-weight:700;cursor:pointer}
.wpcf7 .wpcf7-form .wpcf7-submit{cursor:pointer}
.wpcf7 .wpcf7-not-valid-tip{font-size:0.8125rem;font-weight:400;color:var(--form-error);margin-top:4px}
.wpcf7 .wpcf7-response-output{margin:1.25rem 0 0;padding:14px 16px;border:1.5px solid var(--navy);border-radius:6px;font-size:0.9375rem}
/* Errors: CF7 marks a failed control .wpcf7-not-valid. Its question (label
   or legend) turns red and its box gets a red border on a pale red fill;
   choice groups get the same panel round their options. Clears as CF7
   re-validates the field. */
.wpcf7 .wpcf7-form{--form-error:#b3261e;--form-error-bg:#fdf3f2}
.wpcf7 .wpcf7-form label:has(> .wpcf7-form-control-wrap .wpcf7-not-valid),
.wpcf7 .wpcf7-form label:has(> .wpcf7-form-control-wrap .wpcf7-not-valid) span[aria-hidden],
.wpcf7 .tn-form__group:has(.wpcf7-not-valid) legend,
.wpcf7 .tn-form__group:has(.wpcf7-not-valid) legend span[aria-hidden]{color:var(--form-error);opacity:1}
/* !important: the base field rule above carries five :not()s of specificity. */
.wpcf7 .wpcf7-form :is(input, select, textarea).wpcf7-not-valid{border-color:var(--form-error) !important;background-color:var(--form-error-bg) !important}
.wpcf7 .wpcf7-form :is(input, select, textarea).wpcf7-not-valid:focus{border-color:var(--form-error);box-shadow:0 0 0 3px rgba(179, 38, 30, 0.15)}
.wpcf7 .wpcf7-form input[type=file].wpcf7-not-valid{border-style:dashed}
.wpcf7 .wpcf7-form :is(.wpcf7-checkbox, .wpcf7-radio).wpcf7-not-valid{margin-top:0.45rem;padding:12px 14px;border:1.5px solid var(--form-error);border-radius:6px;background:var(--form-error-bg)}
.wpcf7 .wpcf7-form :is(.wpcf7-checkbox, .wpcf7-radio).wpcf7-not-valid input:is([type=checkbox],[type=radio]){accent-color:var(--form-error)}
.wpcf7 .tn-form__consent:has(.wpcf7-not-valid),
.wpcf7 .tn-form__consent:has(.wpcf7-not-valid) label{color:var(--form-error)}
.wpcf7 .tn-form__consent:has(.wpcf7-not-valid) input[type=checkbox]{outline:1.5px solid var(--form-error);outline-offset:1px}
.wpcf7 .wpcf7-form.invalid .wpcf7-response-output,
.wpcf7 .wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7 .wpcf7-form.failed .wpcf7-response-output{border-color:var(--form-error);background:var(--form-error-bg);color:var(--form-error)}
.wpcf7 .wpcf7-spinner{margin-left:12px}
@media (max-width: 620px){
  .wpcf7 .tn-form__row{grid-template-columns:1fr}
}
