/* Careers role studio. All rules belong to this section only. */
.career-studio { position: relative; z-index: 2; padding-block: 56px 88px; scroll-margin-top: 90px; background: var(--ai-color-ink); color: var(--ai-color-white); }
.career-studio, .career-studio * { box-sizing: border-box; }
.career-studio ::selection { background: var(--ai-color-highlight); color: var(--ai-color-ink); }
.career-studio [hidden] { display: none !important; }
.career-studio :is(a,button,input,select):focus-visible { outline: 3px solid var(--ai-color-highlight); outline-offset: 5px; }
.career-studio a { text-underline-offset: 5px; }
.career-studio .ai-icon { width: 20px; height: 20px; flex: 0 0 20px; }
.cs-shell { max-width: 1520px; margin-inline: auto; padding-inline: var(--ai-layout-content-gutter); }
.cs-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 40px; }
.career-studio .cs-heading h2 { margin: 0; max-width: 900px; color: var(--ai-color-white); font: 500 72px/1.05 var(--ai-font-display); letter-spacing: -.03em; text-wrap: balance; }
.cs-heading p { flex-shrink: 0; margin: 0 0 9px; color: var(--ai-color-highlight); font: 500 var(--ai-type-body-size)/1.5 var(--ai-font-label); font-variant-numeric: tabular-nums; }
.cs-heading p strong { font-weight: 600; }
.cs-tools { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px 24px; padding-block: 24px; margin-bottom: 32px; border-top: 1px solid var(--ai-color-accent-inverse); border-bottom: 1px solid var(--ai-color-accent-inverse); }
.cs-tools label { display: grid; gap: 9px; min-width: 0; margin: 0; }
.cs-tools label > span:first-child { color: var(--ai-color-secondary-on-dark); font: 500 var(--ai-type-label-size)/1.5 var(--ai-font-label); }
.cs-search__field { position: relative; }
.cs-search__field > svg { position: absolute; left: 18px; top: 18px; width: 20px; height: 20px; color: var(--ai-color-accent-inverse-soft); pointer-events: none; }
.career-studio .cs-tools :is(input,select) { width: 100%; min-width: 0; height: 56px; margin: 0; padding: 0 18px; border: 1px solid var(--ai-color-accent-inverse); border-radius: 0; color: var(--ai-color-white); background: var(--ai-color-ink); font: 500 14px/1.5 var(--ai-font-label); caret-color: var(--ai-color-highlight); }
.career-studio .cs-tools input { padding-left: 50px; }
.career-studio .cs-tools input::placeholder { color: var(--ai-color-accent-inverse-soft); opacity: 1; }
.career-studio .cs-tools select { appearance: auto; }
.cs-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.cs-tools__actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 24px; }
.cs-tools__actions button { display: inline-flex; gap: 14px; align-items: center; min-height: 44px; padding: 4px 0; border: 0; border-radius: 0; background: transparent; color: var(--ai-color-accent-inverse-soft); font: 500 var(--ai-type-control-size)/1.5 var(--ai-font-label); cursor: pointer; }
.cs-tools__actions .cs-motion { margin-left: auto; }
.cs-tools__actions .cs-filter-toggle { display: none; }
.cs-tools__actions button:hover { color: var(--ai-color-white); }
.cs-motion[aria-pressed="true"] { text-decoration: underline; }
.cs-motion:disabled { cursor: default; }
.cs-board { display: grid; grid-template-columns: minmax(240px,.7fr) minmax(0,2fr); gap: 32px; align-items: start; }
.cs-board.is-empty { grid-template-columns: 1fr; }
.cs-announcement { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); }
/* Keep the final separator inside the scrollport when row heights are fractional. */
.cs-roles { position: sticky; top: 112px; min-width: 0; max-height: calc(100svh - 136px); overflow-y: auto; display: flex; flex-direction: column; border-top: 1px solid var(--ai-color-accent-inverse); scrollbar-width: thin; scrollbar-color: var(--ai-color-highlight) var(--ai-color-ink); scroll-padding-block: 12px; padding-bottom: 1px; }
.cs-role { position: relative; display: grid; flex-shrink: 0; gap: 10px; width: 100%; min-height: 104px; padding: 24px 54px 24px 20px; border: 0; border-bottom: 1px solid var(--ai-color-accent-inverse); border-radius: 0; color: var(--ai-color-white); background: transparent; text-align: left; cursor: pointer; transition: color .18s, background-color .18s; }
.cs-role__title { font: 500 27px/1.12 var(--ai-font-display); letter-spacing: -.02em; }
.cs-role__title small { display: block; margin-top: 8px; font: 500 var(--ai-type-small-size)/1.5 var(--ai-font-label); }
.cs-role__location { color: var(--ai-color-secondary-on-dark); font: 500 var(--ai-type-small-size)/1.5 var(--ai-font-label); }
.cs-role > .ai-icon { position: absolute; right: 20px; top: calc(50% - 10px); transition: transform .2s var(--ai-motion-ease-out); }
.cs-role:hover > .ai-icon { transform: translateX(4px); }
.cs-role:hover { background: var(--ai-color-accent); }
.cs-role[aria-pressed="true"] { color: var(--ai-color-ink); background: var(--ai-color-highlight); }
.cs-role[aria-pressed="true"] .cs-role__location { color: var(--ai-color-ink); }
.cs-role[aria-pressed="true"]:focus-visible { outline-color: var(--ai-color-ink); outline-offset: -5px; }
.cs-profiles { min-width: 0; }
.cs-jump { display: none; }
.cs-profile { margin-bottom: 40px; scroll-margin-top: 112px; background: var(--ai-color-white); color: var(--ai-color-ink); }
.cs-profiles.is-interactive .cs-profile { margin-bottom: 0; }
.cs-profile__hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); min-height: 384px; background: var(--ai-color-highlight); }
.cs-profile__intro { display: flex; flex-direction: column; align-items: start; justify-content: center; min-width: 0; padding: 36px; }
.career-studio .cs-profile h3 { margin: 0 0 28px; color: var(--ai-color-ink); font: 500 56px/1.05 var(--ai-font-display); letter-spacing: -.03em; overflow-wrap: break-word; text-wrap: balance; }
.cs-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; width: 100%; margin: 0 0 28px; }
.cs-facts dt { margin: 0 0 5px; color: var(--ai-color-ink); font: 500 var(--ai-type-label-size)/1.5 var(--ai-font-label); }
.cs-facts dd { margin: 0; color: var(--ai-color-ink); font: 600 var(--ai-type-small-size)/1.5 var(--ai-font-label); }
.cs-apply { display: inline-flex; justify-content: space-between; align-items: center; gap: 44px; width: 100%; min-height: 56px; padding: 14px 20px; color: var(--ai-color-white); background: var(--ai-color-ink); font: 600 var(--ai-type-control-size)/1.5 var(--ai-font-label); transition: background-color .18s; }
.cs-apply:hover { color: var(--ai-color-white); background: var(--ai-color-accent-ui); }
.career-studio .cs-profile :is(a,button):focus-visible { outline-color: var(--ai-color-ink); }
.career-studio .cs-apply:focus-visible { outline-color: var(--ai-color-white); outline-offset: -5px; }
.cs-profile__photo { min-width: 0; margin: 0; overflow: hidden; background: var(--ai-color-highlight); }
.cs-profile__photo img { width: 100%; height: 100%; min-height: 384px; object-fit: cover; object-position: 54% center; }
.cs-copy { padding: 40px 36px; }
.cs-copy > :is(section,dl,.cs-expectations) { max-width: 65ch; }
.career-studio .cs-copy :is(h2,h3,h4,h5) { color: var(--ai-color-ink); font-family: var(--ai-font-display); letter-spacing: -.02em; }
.career-studio .cs-copy h4 { margin: 0 0 18px; font-size: 28px; line-height: 1.2; font-weight: 500; }
.career-studio .cs-copy h5 { margin: 28px 0 14px; font-size: 22px; line-height: 1.3; font-weight: 500; }
.career-studio .cs-copy :is(p,li) { max-width: 65ch; color: var(--ai-color-copy); font: 400 var(--ai-type-body-size)/1.7 var(--ai-font-body); }
.cs-copy p { margin: 0 0 20px; }
.cs-copy > section { margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--ai-color-border); }
.cs-copy > section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.cs-copy section > :last-child { margin-bottom: 0; }
.career-studio .cs-copy ul { display: block; margin: 0; padding: 0 0 0 24px; list-style: disc outside; }
.career-studio .cs-copy li { display: list-item; margin: 0; padding-left: 4px; }
.career-studio .cs-copy ul > li { list-style: disc outside; }
.career-studio .cs-copy li + li { margin-top: 12px; }
.career-studio .cs-copy li::marker { color: var(--ai-color-accent-ui); }
.cs-expectations { display: grid; grid-template-columns: minmax(0,1fr); gap: 40px; margin-top: 40px; padding-top: 32px; border-top: 1px solid var(--ai-color-border); }
.cs-expectations section > h5:first-child { margin-top: 0; }
.cs-role-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px 32px; margin: 28px 0 0; }
.cs-role-details > div { min-width: 0; padding-top: 18px; border-top: 1px solid var(--ai-color-border); }
.cs-role-details__office { grid-column: 1 / -1; }
.cs-role-details dt { margin: 0 0 8px; color: var(--ai-color-copy); font: 500 var(--ai-type-label-size)/1.5 var(--ai-font-label); }
.cs-role-details dd { margin: 0; color: var(--ai-color-ink); font: 600 var(--ai-type-body-size)/1.6 var(--ai-font-body); overflow-wrap: break-word; }
.cs-role-details dd span { display: block; color: var(--ai-color-copy); font-size: var(--ai-type-small-size); font-weight: 400; }
.cs-role-details__office dd { font-weight: 400; }
.cs-copy__apply { display: inline-flex; align-items: center; gap: 36px; min-height: 44px; margin-top: 32px; color: var(--ai-color-accent-ui); font: 600 var(--ai-type-control-size)/1.5 var(--ai-font-label); }
.cs-copy__apply:hover { color: var(--ai-color-ink); }
.cs-empty { padding: 48px; background: var(--ai-color-surface); color: var(--ai-color-ink); }
.career-studio .cs-empty h3 { margin: 0 0 16px; color: var(--ai-color-ink); font: 500 36px/1.1 var(--ai-font-display); }
.cs-empty p { font: 400 var(--ai-type-body-size)/1.7 var(--ai-font-body); color: var(--ai-color-copy); }
.cs-empty :is(button,a) { display: inline-flex; align-items: center; gap: 24px; min-height: 44px; padding: 8px 0; border: 0; border-radius: 0; color: var(--ai-color-accent-ui); background: transparent; font: 600 14px/1.5 var(--ai-font-label); cursor: pointer; }
@media (max-width: 1200px) {
	.cs-board { grid-template-columns: minmax(210px,.7fr) minmax(0,2fr); gap: 24px; }
	.cs-role__title { font-size: 24px; }
	.cs-profile__intro { padding: 28px; }
	.career-studio .cs-profile h3 { font-size: 46px; }
	.cs-copy { padding: 32px 28px; }
}
@media (max-width: 1000px) {
	.career-studio { padding-block: 40px 64px; }
	.career-studio .cs-heading h2 { font-size: 56px; }
	.cs-board { grid-template-columns: 1fr; gap: 24px; }
	.cs-roles { position: relative; top: auto; max-height: none; flex-direction: row; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; }
	.cs-jump { display: grid; gap: 9px; margin: 0 0 24px; }
	.cs-jump > span { color: var(--ai-color-secondary-on-dark); font: 500 var(--ai-type-label-size)/1.5 var(--ai-font-label); }
	.cs-jump select { width: 100%; min-width: 0; min-height: 56px; padding: 12px 18px; border: 1px solid var(--ai-color-accent-inverse); border-radius: 0; color: var(--ai-color-white); background: var(--ai-color-ink); font: 500 var(--ai-type-control-size)/1.5 var(--ai-font-label); appearance: auto; }
	.cs-role { flex: 0 0 auto; width: max-content; min-height: 84px; padding: 20px 48px 20px 20px; border-right: 1px solid var(--ai-color-accent-inverse); scroll-snap-align: start; }
	.cs-role__title { font-size: 22px; }
	.cs-role__location { font-size: var(--ai-type-small-size); }
	.cs-tools { grid-template-columns: 1fr; }
	.cs-filters { grid-row: 3; }
	.cs-tools__actions { grid-row: 2; }
	.cs-tools__actions .cs-filter-toggle { display: inline-flex; }
	.cs-filter-toggle .ai-icon { width: 16px; height: 16px; transform: rotate(90deg); }
	.cs-filter-toggle[aria-expanded="true"] .ai-icon { transform: rotate(-90deg); }
	.cs-profile__hero { min-height: 360px; }
	.cs-profile__photo img { min-height: 360px; }
}
@media (max-width: 600px) {
	.career-studio { scroll-margin-top: 80px; padding-block: 24px 48px; }
	.cs-heading { align-items: start; flex-direction: column; gap: 14px; margin-bottom: 24px; }
	.career-studio .cs-heading h2 { font-size: 44px; }
	.cs-heading p { margin: 0; font-size: var(--ai-type-body-size); }
	.cs-tools { padding-block: 20px; margin-bottom: 24px; gap: 8px; }
	.cs-filters { grid-template-columns: 1fr; gap: 16px; padding-block: 8px; }
	.cs-tools__actions { gap: 20px; flex-wrap: wrap; }
	.cs-tools__actions button { font-size: var(--ai-type-control-size); }
	.cs-role { min-height: 76px; padding-inline: 16px 44px; }
	.cs-role__title { font-size: 20px; }
	.cs-role > .ai-icon { right: 14px; }
	.cs-profile__hero { grid-template-columns: 1fr; }
	.cs-profile__intro { padding: 28px 24px; }
	.career-studio .cs-profile h3 { font-size: 46px; }
	.cs-profile__photo img { height: 240px; min-height: 0; object-position: 54% 40%; }
	.cs-copy { padding: 32px 24px; }
	.cs-copy > section { margin-top: 32px; padding-top: 28px; }
	.cs-role-details { grid-template-columns: minmax(0,1fr); gap: 20px; }
	.cs-empty { padding: 32px 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.career-studio * { scroll-behavior: auto; transition: none !important; }
}
.career-studio.is-motion-reduced * { transition: none !important; }
