:root {
  --job-ink: #071b32;
  --job-blue: #23689b;
  --job-navy: #062341;
  --job-acid: #e7ff00;
  --job-mint: #d8ecd1;
  --job-paper: #ffffff;
  --job-muted: #f2f6f3;
  --job-line: #ced8d3;
  --job-copy: #40505e;
  --job-error: #a83232;
  --job-shell: 1120px;
  --job-gutter: clamp(1.25rem, 4vw, 3rem);
}

html:has(body.careers-role-page) {
  scroll-behavior: smooth;
  scroll-padding-top: var(--site-header-height, 7rem);
  background: var(--job-paper);
}

body.careers-role-page {
  margin: 0;
  overflow-x: hidden;
  color: var(--job-ink);
  background: var(--job-paper);
  font-family: var(--font-body), Acumin, Arial, sans-serif;
  font-size: 1rem;
  line-height: 1.6;
}

body.careers-role-page::before { display: none; }
body.careers-role-page * { box-sizing: border-box; }
body.careers-role-page a { color: inherit; text-decoration: none; }
body.careers-role-page button,
body.careers-role-page input,
body.careers-role-page select,
body.careers-role-page textarea { font: inherit; }
body.careers-role-page h1,
body.careers-role-page h2,
body.careers-role-page h3,
body.careers-role-page p { text-wrap: pretty; }

body.careers-role-page :where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--job-blue);
  outline-offset: 3px;
}

.job-shell {
  width: min(100%, var(--job-shell));
  margin-inline: auto;
  padding-inline: var(--job-gutter);
}

.job-hero { padding-block: clamp(4.5rem, 8vw, 8rem); border-bottom: 1px solid var(--job-line); }
.job-hero__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .48fr); gap: clamp(3rem, 8vw, 7rem); align-items: end; }
.job-eyebrow { margin: 0 0 1.1rem; color: var(--job-blue); font-size: .72rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.job-hero h1 { max-width: 11ch; margin: 0; font: 400 clamp(3.4rem, 6.3vw, 6.4rem) / .9 var(--font-display), NewBlack, Arial, sans-serif; letter-spacing: -.045em; }
.job-hero__summary { max-width: 42rem; margin: 1.8rem 0 0; color: var(--job-copy); font-size: clamp(1.12rem, 1.45vw, 1.34rem); line-height: 1.55; }
.job-primary-action {
  width: max-content;
  min-width: 14rem;
  min-height: 3.4rem;
  margin-top: 2rem;
  padding: .85rem 1.05rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  color: var(--job-mint) !important;
  background: var(--job-navy);
  font-size: .76rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.job-facts { margin: 0; border-top: 2px solid var(--job-ink); }
.job-facts div { padding-block: 1rem; display: grid; grid-template-columns: 6.2rem 1fr; gap: 1rem; border-bottom: 1px solid var(--job-line); }
.job-facts dt { color: var(--job-copy); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.job-facts dd { margin: 0; font-weight: 650; line-height: 1.4; }

.job-section { padding-block: clamp(4rem, 7vw, 6.5rem); border-bottom: 1px solid var(--job-line); }
.job-section--muted { background: var(--job-muted); }
.job-section--compact { padding-block: clamp(3.5rem, 6vw, 5.5rem); }
.job-section--navy { color: var(--job-mint); background: var(--job-navy); border-bottom: 0; }
.job-two-column { display: grid; grid-template-columns: minmax(16rem, .55fr) minmax(0, 1fr); gap: clamp(3rem, 8vw, 7rem); align-items: start; }
.job-section__heading { position: sticky; top: 7rem; }
.job-section__heading h2 { max-width: 13ch; margin: 0; font: 400 clamp(2.25rem, 4vw, 3.8rem) / .98 var(--font-display), NewBlack, Arial, sans-serif; letter-spacing: -.035em; }
.job-section--navy .job-section__heading h2 { color: var(--job-mint); }
.job-section--navy .job-eyebrow { color: var(--job-acid); }
.job-prose p { max-width: 47rem; margin: 0; color: var(--job-copy); font-size: clamp(1.05rem, 1.3vw, 1.2rem); }
.job-prose p + p { margin-top: 1.5rem; }
.job-prose-intro { max-width: 43rem; margin: 0 0 2rem; color: var(--job-copy); }

.job-detail-list { border-top: 2px solid var(--job-ink); }
.job-detail-list article { padding-block: 1.65rem; display: grid; grid-template-columns: minmax(11rem, .55fr) 1fr; gap: 2rem; border-bottom: 1px solid var(--job-line); }
.job-detail-list h3 { margin: 0; font: 400 1.35rem / 1.1 var(--font-display), NewBlack, Arial, sans-serif; }
.job-detail-list p { margin: 0; color: var(--job-copy); }

.job-list { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--job-ink); }
.job-list li { position: relative; padding: 1.05rem 0 1.05rem 2rem; border-bottom: 1px solid var(--job-line); color: var(--job-copy); }
.job-list li::before { content: '→'; position: absolute; left: 0; color: var(--job-blue); font-weight: 750; }
.job-list strong { color: var(--job-ink); }
.job-list--light { border-top-color: var(--job-mint); }
.job-list--light li { color: rgba(216, 236, 209, .82); border-bottom-color: rgba(216, 236, 209, .2); }
.job-list--light li::before { color: var(--job-acid); }

.job-assessment-list { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--job-ink); }
.job-assessment-list li { padding-block: 1.25rem; display: grid; grid-template-columns: 2.75rem 1fr; gap: 1rem; border-bottom: 1px solid var(--job-line); }
.job-assessment-list li > span { color: var(--job-blue); font-size: .7rem; font-weight: 750; }
.job-assessment-list strong { font: 400 1.25rem / 1.1 var(--font-display), NewBlack, Arial, sans-serif; }
.job-assessment-list p { margin: .4rem 0 0; color: var(--job-copy); }

.job-application { padding-block: clamp(4.5rem, 8vw, 7rem); background: var(--job-paper); }
.job-application__heading { max-width: 44rem; margin-bottom: 2.5rem; }
.job-application__heading h2 { margin: 0; font: 400 clamp(2.7rem, 5vw, 4.7rem) / .95 var(--font-display), NewBlack, Arial, sans-serif; letter-spacing: -.04em; }
.job-application__heading > p:last-child { margin: 1rem 0 0; color: var(--job-copy); font-size: 1.05rem; }
.job-application__note { max-width: 54rem; margin: 1.5rem 0 0; color: var(--job-copy); font-size: .82rem; }

.career-application__panel { max-width: 58rem; border: 1px solid var(--job-line); background: var(--job-paper); }
.career-form__header { min-height: 5rem; padding: 1.2rem clamp(1.2rem, 3vw, 2.25rem); display: grid; grid-template-columns: 1fr minmax(8rem, .5fr); align-items: center; gap: 2rem; background: var(--job-muted); border-bottom: 1px solid var(--job-line); }
.career-form__header > div:first-child { display: flex; flex-direction: column; }
.career-form__header span { color: var(--job-blue); font-size: .65rem; font-weight: 750; letter-spacing: .1em; }
.career-form__header b { margin-top: .15rem; font-size: 1rem; }
.career-form__progress { height: .3rem; overflow: hidden; background: #dce4e0; }
.career-form__progress span { width: 20%; height: 100%; display: block; background: var(--job-blue); transition: width .25s ease; }

.career-form { position: relative; }
.career-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.career-form fieldset { min-width: 0; margin: 0; padding: clamp(2rem, 4vw, 3rem); border: 0; }
.career-form fieldset[hidden] { display: none; }
.career-form legend { padding: 0; font: 400 clamp(1.8rem, 3vw, 2.7rem) / 1 var(--font-display), NewBlack, Arial, sans-serif; letter-spacing: -.025em; }
.career-form__step-copy { max-width: 44rem; margin: .8rem 0 2.2rem; color: var(--job-copy); }
.career-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.55rem 1.35rem; }
.career-form label { min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
.career-form label > span { color: var(--job-ink); font-size: .78rem; font-weight: 700; line-height: 1.4; }
.career-form label em { color: var(--job-error); font-style: normal; }
.career-form input,
.career-form select,
.career-form textarea {
  width: 100%;
  min-height: 3.3rem;
  padding: .75rem .8rem;
  color: var(--job-ink);
  background: var(--job-paper);
  border: 1px solid #aebdb6;
  border-radius: 0;
  font-size: 1rem;
  line-height: 1.45;
}
.career-form textarea { min-height: 8rem; resize: vertical; }
.career-form input[type="file"] { min-height: 4.6rem; padding: .7rem; cursor: pointer; }
.career-form input[type="file"]::file-selector-button {
  min-height: 2.8rem;
  margin-right: 1rem;
  padding: .65rem .9rem;
  color: var(--job-mint);
  background: var(--job-navy);
  border: 0;
  cursor: pointer;
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.career-form input::placeholder,
.career-form textarea::placeholder { color: #687782; opacity: 1; }
.career-form input:focus,
.career-form select:focus,
.career-form textarea:focus { border-color: var(--job-blue); outline: 2px solid rgba(35, 104, 155, .18); outline-offset: 1px; }
.career-form input[aria-invalid="true"],
.career-form select[aria-invalid="true"],
.career-form textarea[aria-invalid="true"] { border-color: var(--job-error); background: #fff8f7; }
.career-form label > small { display: flex; justify-content: flex-end; color: #5d6a74; font-size: .7rem; }
.career-form label > span small { color: var(--job-copy); font-size: .72rem; font-weight: 450; }
.career-form__field--wide { grid-column: 1 / -1; }
.career-form__consent { min-height: 3.5rem; padding: 1rem; display: grid !important; grid-template-columns: 1.3rem 1fr; align-items: start; gap: .8rem !important; background: var(--job-muted); border: 1px solid var(--job-line); }
.career-form__consent input { width: 1.15rem; min-height: 1.15rem; margin-top: .15rem; padding: 0; accent-color: var(--job-blue); }
.career-form__consent span { font-size: .88rem !important; font-weight: 450 !important; line-height: 1.5; }
.career-form__consent a { color: var(--job-blue); text-decoration: underline; text-underline-offset: .15rem; }
.career-form__error { margin: -.15rem 0 0; color: var(--job-error); font-size: .78rem; line-height: 1.35; }

.career-form__controls { min-height: 5.2rem; padding: 1.1rem clamp(1.2rem, 3vw, 2.25rem); display: flex; align-items: center; justify-content: flex-end; gap: .7rem; background: var(--job-muted); border-top: 1px solid var(--job-line); }
.career-form__controls button,
.career-form__ineligible button,
.career-form__success a {
  min-height: 3rem;
  padding: .75rem 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  color: var(--job-mint);
  background: var(--job-navy);
  border: 1px solid var(--job-navy);
  border-radius: 0;
  cursor: pointer;
  font-size: .72rem;
  font-weight: 750;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.career-form__controls .career-form__back { margin-right: auto; color: var(--job-ink); background: transparent; border-color: #aebdb6; }
.career-form__controls button:disabled { cursor: wait; opacity: .55; }
.career-form__status { min-height: 1.4rem; margin: 0; padding: 0 clamp(1.2rem, 3vw, 2.25rem) 1rem; color: var(--job-error); font-size: .82rem; }

.career-form__ineligible,
.career-form__success { min-height: 27rem; padding: clamp(2.5rem, 5vw, 4rem); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.career-form__ineligible[hidden],
.career-form__success[hidden] { display: none; }
.career-form__ineligible h3,
.career-form__success h3 { max-width: 16ch; margin: 0; font: 400 clamp(2rem, 4vw, 3.5rem) / .98 var(--font-display), NewBlack, Arial, sans-serif; letter-spacing: -.035em; }
.career-form__ineligible p:not(.job-eyebrow),
.career-form__success p:not(.job-eyebrow) { max-width: 44rem; margin: 1.2rem 0 0; color: var(--job-copy); }
.career-form__ineligible button,
.career-form__success a { margin-top: 1.8rem; }
.career-form__reference b { color: var(--job-blue); }

@media (max-width: 50rem) {
  .job-hero__layout,
  .job-two-column { grid-template-columns: 1fr; }
  .job-section__heading { position: static; }
  .job-facts { margin-top: 1rem; }
  .job-detail-list article { grid-template-columns: 1fr; gap: .65rem; }
}

@media (max-width: 38rem) {
  .job-hero { padding-block: 3.8rem; }
  .job-hero h1 { font-size: clamp(3rem, 14vw, 4.7rem); }
  .job-primary-action { width: 100%; }
  .career-form__header { grid-template-columns: 1fr; gap: .75rem; }
  .career-form__grid { grid-template-columns: 1fr; }
  .career-form__field--wide { grid-column: auto; }
  .career-form fieldset { padding-inline: 1.15rem; }
  .career-form__controls { flex-wrap: wrap; }
  .career-form__controls button { min-width: calc(50% - .4rem); }
  .career-form__controls .career-form__back { margin-right: 0; }
  .career-form__controls .career-form__next,
  .career-form__controls .career-form__send { margin-left: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.careers-role-page) { scroll-behavior: auto; }
}
