/* Career detail pages. Figma 497:833–838. */
.cx-job { color: var(--cx-ink); }
.cx-job-stack { display: flex; flex-direction: column; gap: 32px; }
.cx-job .cx-button { border-radius: 0; }
.cx-job-hero, .cx-job-selection { background: var(--cx-ink); color: #fff; }
.cx-job-breadcrumb { font: 700 12px/1.45 Archivo, sans-serif; }
.cx-job-breadcrumb a { color: inherit; text-decoration: none; }
.cx-job-breadcrumb a:hover { text-decoration: underline; }
.cx-job .cx-job-hero__outline { font-size: 128px; color: transparent; -webkit-text-stroke: 1px #fff; line-height: 1.1; }
.cx-job--general .cx-job-hero__outline { font-size: 100px; }
.cx-job-hero__identity { display: grid; grid-template-columns: minmax(0, 1fr) 320px; align-items: center; gap: 48px; }
.cx-job-hero__copy { display: flex; flex-direction: column; gap: 16px; }
.cx-job-hero__copy h1 { font-size: 64px; font-weight: 700; line-height: 1.1; }
.cx-job-hero__copy > p { font-size: 24px; font-weight: 700; line-height: 1.45; }
.cx-job-hero__actions { display: flex; flex-direction: column; gap: 16px; }
.cx-job-hero__actions > p { font-size: 14px; font-weight: 700; line-height: 1.45; }
.cx-job-hero__actions .cx-button { width: 100%; }
.cx-job-conditions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; }
.cx-job-conditions > div { border-top: 1px solid #fff; padding-top: 8px; }
.cx-job-conditions dt { font-size: 14px; font-weight: 700; line-height: 1.45; margin-bottom: 8px; }
.cx-job-conditions dd { display: flex; flex-direction: column; gap: 8px; }
.cx-job-conditions strong { font-size: 36px; font-weight: 700; line-height: 1.45; color: var(--cx-red); }
.cx-job-conditions span { font-size: 14px; line-height: 1.8; }
.cx-job-photo { width: 100%; aspect-ratio: 3; overflow: hidden; }
.cx-job-photo > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cx-job-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; padding-top: 32px; padding-bottom: 32px; }
.cx-job-nav .cx-button { width: 100%; }
.cx-job-heading { font-size: 36px; font-weight: 700; line-height: 1.45; }
.cx-job-subheading { font-size: 24px; font-weight: 700; line-height: 1.45; }
.cx-job-mission { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 64px; }
.cx-job-mission > h3 { font-size: 36px; font-weight: 700; line-height: 1.45; }
.cx-job-copy { font-size: 16px; font-weight: 400; line-height: 1.8; overflow-wrap: anywhere; }
.cx-job-copy > p { margin: 0; }
.cx-job-copy--large { font-size: 18px; }
.cx-job-copy a { text-decoration: underline; }
.cx-job-section--soft { background: var(--cx-paper); }
.cx-job-number { font: 700 20px/1.45 Archivo, sans-serif; color: var(--cx-red); }
.cx-job-role-list { list-style: none; margin: 0; padding: 0; }
.cx-job-role-list li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 32px; border-top: 1px solid var(--cx-rule); padding: 32px 0; }
.cx-job-role-list li:last-child { padding-bottom: 0; }
.cx-job-role-list li > p { font-size: 24px; font-weight: 700; line-height: 1.45; }
.cx-job-role-note { max-width: 900px; }
.cx-job-opportunity-list { list-style: none; display: flex; flex-direction: column; gap: 32px; padding: 0; margin: 0; }
.cx-job-opportunity-list > li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 24px; border-bottom: 1px solid var(--cx-rule); padding-bottom: 32px; }
.cx-job-opportunity-list li > div { display: flex; flex-direction: column; gap: 8px; }
.cx-job-opportunity-list h3 { font-size: 28px; font-weight: 700; line-height: 1.45; }
.cx-job-content-image { display: block; width: 100%; max-width: 900px; height: auto; }
.cx-job-requirements { border-top: 1px solid var(--cx-rule); }
.cx-job-requirements > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 48px; border-bottom: 1px solid var(--cx-rule); padding: 32px 0; }
.cx-job-requirements dt { font-size: 14px; font-weight: 700; line-height: 1.45; }
.cx-job-selection .cx-eyebrow { color: #fff; }
.cx-job-selection__steps { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding: 0; margin: 0; }
.cx-job-selection__steps > li { display: flex; flex-direction: column; gap: 16px; border-top: 1px solid #fff; padding-top: 16px; }
.cx-job-selection__steps span { font: 400 56px/1.1 Archivo, sans-serif; color: var(--cx-red); }
.cx-job-selection__steps h3 { font-size: 24px; font-weight: 700; line-height: 1.45; }
.cx-job-other-heading { font-size: 28px; font-weight: 700; line-height: 1.45; }
.cx-job-other-button { width: 320px; max-width: 100%; }
.cx-job-form { width: 800px; max-width: 100%; }
.cx-job-form-fields { display: flex; flex-direction: column; gap: 24px; }
.cx-job-form-fields .cx-form-section { padding: 0; border: 0; font-size: 24px; font-weight: 700; line-height: 1.45; }
.cx-job-form-fields .cx-form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cx-job-form-fields .cx-field { display: flex; flex-direction: column; gap: 8px; }
.cx-job-form-fields .cx-field > label { font-size: 14px; font-weight: 700; line-height: 20px; }
.cx-job-form-fields .cx-field > label span { margin-left: 8px; }
.cx-job-form-fields .wpcf7-form-control-wrap { display: block; }
.cx-job-form-fields input:not([type=checkbox]):not([type=submit]):not([type=hidden]):not([type=file]), .cx-job-form-fields select, .cx-job-form-fields textarea { width: 100%; min-width: 0; height: 56px; border: 1px solid var(--cx-control); border-radius: 0; background: #fff; color: var(--cx-text); padding: 12px 16px; font: 400 16px/28px "Zen Kaku Gothic New", sans-serif; box-sizing: border-box; }
.cx-job-form-fields textarea { height: 160px; resize: vertical; }
.cx-job-form-fields input::placeholder, .cx-job-form-fields textarea::placeholder { color: var(--cx-muted); opacity: 1; }
.cx-job-form-fields hr { width: 100%; height: 1px; border: 0; background: var(--cx-rule); margin: 0; }
.cx-job-form-fields small { color: var(--cx-muted); font-size: 12px; line-height: 20px; }
.cx-job-upload { display: flex; flex-direction: column; gap: 12px; padding: 16px; background: var(--cx-paper); }
.cx-job-upload > label { font-size: 14px; font-weight: 700; line-height: 1.45; }
.cx-job-upload input[type=file] { max-width: 100%; font: inherit; font-size: 14px; color: var(--cx-ink); }
.cx-job-upload input[type=file]::file-selector-button { height: 56px; padding: 0 20px; margin-right: 16px; border: 1px solid var(--cx-control); border-radius: 0; background: #fff; font: 700 14px/20px "Zen Kaku Gothic New", sans-serif; cursor: pointer; }
.cx-job-upload-status { font-size: 14px; line-height: 1.8; }
.cx-job-legal-links { display: flex; gap: 16px; font-size: 14px; font-weight: 700; line-height: 1.45; }
.cx-job-legal-links a:first-child { width: 120px; }
.cx-job-consent { display: flex; flex-direction: column; gap: 16px; }
.cx-job-consent .wpcf7-list-item { margin: 0; }
.cx-job-consent .wpcf7-list-item-label, .cx-job-consent label { font-size: 14px; font-weight: 400; line-height: 24px; }
.cx-job-consent label { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 4px; }
.cx-job-consent input[type=checkbox] { width: 20px; height: 20px; flex: 0 0 20px; accent-color: var(--cx-red); margin: 0; }
.cx-job-submit { position: relative; width: 320px; max-width: 100%; }
.cx-job-submit input[type=submit], .cx-job-submit button { width: 100%; height: 56px; border: 0; border-radius: 0; padding: 0 48px 0 20px; text-align: left; background: var(--cx-red); color: #fff; font: 700 14px/20px "Zen Kaku Gothic New", sans-serif; cursor: pointer; }
.cx-job-submit input[type=submit]:disabled, .cx-job-submit button:disabled { background: var(--cx-rule); color: var(--cx-muted); cursor: default; }
.cx-job-submit .cx-arrow { position: absolute; right: 20px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.cx-job-form .wpcf7-not-valid-tip { display: block; margin-top: 4px; color: var(--cx-red); font-size: 13px; line-height: 1.5; }
.cx-job-form .wpcf7-response-output { margin: 24px 0 0; padding: 16px; font-size: 16px; line-height: 1.8; }
.cx-job-form input:focus-visible, .cx-job-form select:focus-visible, .cx-job-form textarea:focus-visible, .cx-job-form button:focus-visible { outline: 2px solid var(--cx-red); outline-offset: 3px; }
.cx-job-form-unavailable { padding: 16px; border: 1px solid var(--cx-rule); font-size: 14px; line-height: 1.8; }
@media (max-width: 767px) {
    .cx-job-stack { gap: 24px; }
    .cx-job .cx-job-hero__outline { font-size: 72px; }
    .cx-job--general .cx-job-hero__outline { font-size: 43px; white-space: nowrap; }
    .cx-job-hero__identity { grid-template-columns: 1fr; gap: 24px; }
    .cx-job-hero__copy h1 { font-size: 36px; line-height: 1.45; }
    .cx-job-hero__copy > p { font-size: 18px; font-weight: 400; line-height: 1.8; }
    .cx-job-conditions { grid-template-columns: 1fr; gap: 16px; }
    .cx-job-conditions strong { font-size: 28px; }
    .cx-job-photo { height: 180px; aspect-ratio: auto; }
    .cx-job-nav { grid-template-columns: 1fr; gap: 8px; padding-top: 24px; padding-bottom: 24px; }
    .cx-job-heading { font-size: 28px; }
    .cx-job-mission { grid-template-columns: 1fr; gap: 24px; }
    .cx-job-mission > h3 { font-size: 28px; }
    .cx-job-role-list li { grid-template-columns: 32px minmax(0, 1fr); gap: 16px; padding: 24px 0; }
    .cx-job-role-list .cx-job-number { font-size: 16px; }
    .cx-job-role-list li > p { font-size: 18px; font-weight: 400; line-height: 1.8; }
    .cx-job-opportunity-list { gap: 24px; }
    .cx-job-opportunity-list > li { grid-template-columns: 1fr; gap: 12px; padding-bottom: 24px; }
    .cx-job-opportunity-list h3 { font-size: 24px; }
    .cx-job-requirements > div { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; }
    .cx-job-selection__steps { grid-template-columns: 1fr; gap: 24px; }
    .cx-job-selection__steps span { font-size: 40px; }
    .cx-job-selection__steps h3 { font-size: 18px; font-weight: 400; line-height: 1.8; }
    .cx-job-other-button { width: 100%; }
    .cx-job-form-fields .cx-form-row { grid-template-columns: 1fr; }
    .cx-job-form-fields .cx-form-section { padding: 0; border: 0; font-size: 24px; }
    .cx-job-submit { width: 100%; }
    .cx-job-legal-links { flex-direction: column; }
}
@media (max-width: 359px) {
    .cx-job--general .cx-job-hero__outline { font-size: 36px; }
}

.cx-job-upload-control { position: relative; width: 240px; max-width: 100%; min-height: 56px; }
.cx-job-upload-control .cx-button { width: 100%; }
.cx-job-upload-control input[type=file] { position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 56px; opacity: 0; cursor: pointer; }
.cx-job-upload-control:focus-within .cx-button { outline: 2px solid var(--cx-red); outline-offset: 3px; }
.cx-job-upload-control .wpcf7-not-valid-tip { padding-top: 60px; }
.cx-job-upload-control:has(.wpcf7-not-valid-tip) .cx-button { position: absolute; top: 0; }
.cx-job-submit:has(:disabled) .cx-arrow path { stroke: var(--cx-muted); }
@media (min-width: 768px) and (max-width: 959px) {
    .cx-job--general .cx-job-hero__outline { font-size: 80px; }
}
.cx-job-submit .wpcf7-spinner { position: absolute; top: 16px; right: 48px; margin: 0; }

.cx-job-form-fields .cx-form-notes { display: grid; gap: 12px; font-size: 14px; line-height: 24px; }
.cx-job-form-fields .cx-form-notes a { text-decoration: underline; }
.cx-job-form-fields .cx-field > .cx-field__label { font-size: 14px; font-weight: 700; line-height: 20px; }
