.careers-page { min-height: 100svh; display: flex; flex-direction: column; }
.careers-main { flex: 1; padding-block: 56px 96px; }
.careers-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 48px 72px; align-items: end; margin-bottom: 96px; }
.careers-intro h1 { font-size: clamp(3rem,6vw,4.75rem); line-height: 1.08; letter-spacing: -.025em; }
.careers-intro .supporting { margin-top: 28px; max-width: 34ch; }
.careers-photo { margin: 0; aspect-ratio: 16/9; overflow: hidden; border-radius: 2px; background: var(--navy); }
.careers-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.jobs-panel { border-top: 1px solid var(--border); padding-top: 20px; }
.jobs-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 24px; }
.jobs-heading h2 { font-size: clamp(1.75rem,3vw,2.5rem); line-height: 1.2; font-weight: 500; letter-spacing: -.015em; }
.jobs-count { font-size: var(--ui-size); line-height: 1.5; color: var(--secondary); }
.job-list { list-style: none; margin: 24px 0 0; padding: 0; }
.job { border-top: 1px solid var(--border); }
.job:last-child { border-bottom: 1px solid var(--border); }
.job-link { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr) auto; align-items: center; gap: 16px 32px; padding: 32px 0; color: var(--navy); text-decoration: none; }
.job-title { font-size: 1.25rem; line-height: 1.25; font-weight: 500; letter-spacing: -.01em; background: linear-gradient(currentColor,currentColor) left bottom/0 1px no-repeat; transition: background-size 220ms ease-out, color 180ms ease-out; justify-self: start; }
.job-meta { display: flex; flex-wrap: wrap; gap: 4px 20px; font-size: var(--ui-size); line-height: 1.5; color: var(--secondary); }
.job-arrow { display: inline-flex; align-items: center; gap: 10px; font-size: var(--ui-size); font-weight: 600; }
.job-arrow::after { content: '→'; transition: transform 180ms ease-out; }
.job-link:is(:hover,:focus-visible) .job-title { color: var(--raspberry); background-size: 100% 1px; }
.job-link:is(:hover,:focus-visible) .job-arrow { color: var(--raspberry); }
.job-link:is(:hover,:focus-visible) .job-arrow::after { transform: translateX(4px); }
.job-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.jobs-note { font-size: 1.25rem; line-height: 1.5; color: var(--navy); margin-top: 24px; max-width: 52ch; }
.jobs-note a,.text-link { color: var(--navy); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.jobs-note a:is(:hover,:focus-visible),.text-link:is(:hover,:focus-visible) { color: var(--raspberry); text-decoration-thickness: 2px; }
.careers-cta { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px 72px; margin-top: 96px; padding-top: 32px; border-top: 1px solid var(--border); }
.careers-cta h2 { font-size: clamp(2rem,3.4vw,2.75rem); line-height: 1.15; letter-spacing: -.02em; max-width: 14ch; }
.careers-cta-body { display: flex; flex-direction: column; align-items: flex-start; }
.careers-cta-body p { font-size: 1.375rem; line-height: 1.5; color: var(--secondary); max-width: 30ch; }
.careers-cta .button { background: var(--raspberry); color: var(--aqua); margin-top: 28px; }
.careers-cta .button:is(:hover,:focus-visible) { background: var(--navy); color: var(--aqua); }
.careers-offices { margin-top: 120px; }
.careers-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px 72px; align-items: start; }
.careers-split h2 { font-size: 1.5rem; line-height: 1.3; font-weight: 500; letter-spacing: -.005em; }
.careers-split .supporting { margin-top: 0; }
.careers-split .text-link { display: inline-block; margin-top: 16px; font-size: var(--ui-size); font-weight: 600; }
.careers-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; padding-block: 24px 32px; border-top: 1px solid var(--border); font-size: var(--caption-size); color: var(--secondary); }
.careers-footer .footer-links { display: flex; gap: 24px; }
.careers-footer a { color: inherit; text-decoration: underline; text-underline-offset: 4px; }
/* Homepage band */
.careers-band { padding-block: var(--content-group-gap); }
.careers-band .contact-top .supporting { max-width: 36ch; }
.careers-band .button { background: var(--navy); color: var(--aqua); }
.careers-band .button:is(:hover,:focus-visible) { background: var(--raspberry); color: var(--aqua); }
.careers-band-count { font-size: var(--caption-size); line-height: 1.5; color: var(--secondary); margin-top: 8px; text-align: right; }
@media (max-width: 899px) {
  .careers-hero { grid-template-columns: 1fr; gap: 32px; margin-bottom: 64px; }
  .careers-cta,.careers-split { grid-template-columns: 1fr; gap: 16px; }
    .careers-offices { margin-top: 80px; }
}
@media (max-width: 768px) {
  .careers-main { padding-block: 32px 64px; }
  .job-link { grid-template-columns: 1fr; gap: 8px; padding: 24px 0; }
  .job-arrow { margin-top: 8px; }
  .careers-cta { margin-top: 64px; }
    .careers-band .contact-top .supporting,.careers-band-count { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .job-title,.job-arrow::after { transition: none; } }
