/* Jobs page styles. Scoped to .page-jobs and jobs-specific classes only.
   Load after styles.css; uses the existing tokens (--blue #014067, --indigo #213373,
   Manrope headings, Source Sans 3 body). No gradients, no new colour system. */

/* Hero — solid blue, so the jobs page reads differently from the pale page heroes. */
.page-jobs .jobs-hero { display:grid;grid-template-columns:1.06fr .94fr;background:var(--blue);color:#fff;min-height:520px }
.page-jobs .jobs-hero-copy { padding:32px var(--pad) 46px;align-self:center;min-width:0 }
.page-jobs .jobs-hero .breadcrumb { color:#a8c5d8;margin-bottom:30px }
.page-jobs .jobs-hero .breadcrumb [aria-current] { color:#fff }
.page-jobs .jobs-hero .eyebrow { color:#bad5e6 }
.page-jobs .jobs-hero h1 { font-size:clamp(40px,4.2vw,66px);letter-spacing:-.045em;line-height:1.06;text-wrap:balance;margin-bottom:22px }
.page-jobs .jobs-hero-lede { font-size:19px;line-height:1.6;color:#d6e5ef;max-width:50ch;margin-bottom:26px }
.page-jobs .jobs-hero-facts { display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 32px;padding:0;list-style:none;font:600 12px var(--heading);letter-spacing:.09em;text-transform:uppercase;color:#bad5e6 }
.page-jobs .jobs-hero-facts li { display:flex;align-items:center;gap:18px }
.page-jobs .jobs-hero-facts li+li:before { content:'';width:4px;height:4px;background:#6e9cba }

/* Overview: a compact roster instead of three generic cards. */
.page-jobs .jobs-roster { margin:8px 0 0;padding:0;list-style:none;border-top:1px solid var(--line) }
.page-jobs .jobs-roster>li { border-bottom:1px solid var(--line) }
.page-jobs .jobs-roster a { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 32px;align-items:center;gap:20px 34px;padding:26px 6px;transition:background .2s,padding .2s }
.page-jobs .jobs-roster a:hover { background:var(--pale);padding-left:16px;padding-right:16px }
.page-jobs .jobs-roster a:hover .jobs-roster-role { color:var(--indigo) }
.page-jobs .jobs-roster-name { min-width:0 }
.page-jobs .jobs-roster-role { display:block;font:500 26px/1.2 var(--heading);letter-spacing:-.035em;transition:color .2s }
.page-jobs .jobs-roster-role i { font-style:normal;font-size:15px;letter-spacing:0;color:var(--muted) }
.page-jobs .jobs-roster-terms { display:block;margin-top:9px;font-size:14px;color:var(--muted) }
.page-jobs .jobs-roster-summary { color:var(--muted);font-size:17px;line-height:1.6;max-width:52ch }
.page-jobs .jobs-roster-go { justify-self:end;font-size:21px;color:var(--indigo) }
.page-jobs .jobs-roster-note { margin:30px 0 0;color:var(--muted);font-size:17px;max-width:62ch }

/* Role sections. */
.page-jobs .job-entry { padding:clamp(44px,5vw,74px) var(--pad);border-top:1px solid var(--line);scroll-margin-top:104px }
.page-jobs .job-entry-pale { background:var(--pale);border-top-color:transparent }
.page-jobs .job-entry-head { display:flex;align-items:flex-start;justify-content:space-between;gap:34px }
.page-jobs .job-entry-intro { min-width:0 }
.page-jobs .job-entry h2 { font-size:clamp(30px,3vw,44px);letter-spacing:-.045em;margin-bottom:16px }
.page-jobs .job-inclusive { font-size:17px;font-weight:400;letter-spacing:0;white-space:nowrap;color:var(--muted) }
.page-jobs .job-entry-head .button { flex-shrink:0 }
.page-jobs .job-facts { display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none }
.page-jobs .job-facts li { border:1px solid #c5d5e0;padding:7px 12px;font:600 11px var(--heading);letter-spacing:.08em;text-transform:uppercase;color:var(--blue) }
.page-jobs .job-entry-pale .job-facts li { background:#fff;border-color:#d3dfe7 }
.page-jobs .job-lede { font-size:21px;line-height:1.5;max-width:60ch;margin:28px 0 0 }
.page-jobs .job-columns { display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:clamp(28px,3.6vw,64px);margin-top:36px }
.page-jobs .job-block h3 { font-size:19px;letter-spacing:-.02em;margin-bottom:15px }
.page-jobs .job-block ul { margin:0;padding-left:20px }
.page-jobs .job-block li { margin:0 0 11px;color:var(--muted);font-size:17px;line-height:1.6;max-width:56ch }
.page-jobs .job-block li:last-child { margin-bottom:0 }
.page-jobs .job-block-wide { grid-column:1/-1;border-top:1px solid var(--line);padding-top:26px }
.page-jobs .job-entry-pale .job-block-wide { border-top-color:#d6e2e9 }
.page-jobs .job-block-wide p { margin:0;color:var(--muted);font-size:17px;max-width:76ch }

/* Workplace context. */
.page-jobs .jobs-place { display:grid;grid-template-columns:.92fr 1.08fr;background:var(--pale) }
.page-jobs .jobs-place-image { min-height:460px }
.page-jobs .jobs-place-image img { position:absolute;inset:0 }
.page-jobs .jobs-place-copy { padding:clamp(44px,5vw,72px) var(--pad);align-self:center;min-width:0 }
.page-jobs .jobs-place-copy h2 { font-size:clamp(30px,3vw,44px) }
.page-jobs .jobs-place-copy p { color:var(--muted) }
.page-jobs .jobs-place-copy .text-link { margin-top:6px }

/* Application process. */

/* Closing application panel. */
.page-jobs .jobs-apply { display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,4.5vw,70px);padding:clamp(46px,5vw,72px) var(--pad);background:var(--indigo);color:#fff }
.page-jobs .jobs-apply .eyebrow { color:#c6d7f0 }
.page-jobs .jobs-apply h2 { font-size:clamp(30px,3vw,42px);margin-bottom:18px }
.page-jobs .jobs-apply p { color:#d5dff2;max-width:50ch }
.page-jobs .jobs-apply-address { margin:26px 0 20px }
.page-jobs .jobs-apply-address a { display:inline-flex;font-size:21px;border-bottom:1px solid #93a7d6;padding-bottom:6px;overflow-wrap:anywhere }
.page-jobs .jobs-apply-address a:hover { border-color:#fff }
.page-jobs .jobs-apply-note { font-size:15px;margin:0 }
.page-jobs .jobs-apply-note a { text-decoration:underline;text-underline-offset:4px }
.page-jobs .jobs-apply-roles { display:grid;align-content:center;gap:12px;min-width:0 }
.page-jobs .jobs-apply-roles a { display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;padding:16px 22px;background:#ffffff14;border:1px solid #ffffff4d;font:600 14px var(--heading);transition:background .2s,color .2s }
.page-jobs .jobs-apply-roles a:hover { background:#fff;color:var(--indigo) }
.page-jobs .jobs-apply-roles i { font-style:normal;font-weight:400;font-size:13px;opacity:.8 }
.page-jobs .jobs-apply-roles span+span { font-size:19px }

/* Alternative route, kept at the bottom. */
.page-jobs .jobs-join { display:flex;align-items:center;justify-content:space-between;gap:34px;padding:34px var(--pad);background:var(--pale);border-top:1px solid var(--line) }
.page-jobs .jobs-join h3 { font-size:19px;letter-spacing:-.02em;margin-bottom:10px }
.page-jobs .jobs-join p { margin:0;color:var(--muted);font-size:16px;line-height:1.6;max-width:74ch }
.page-jobs .jobs-join .button { flex-shrink:0 }

@media(max-width:1100px) {
  .page-jobs .jobs-hero, .page-jobs .jobs-hero-image { min-height:470px }
  .page-jobs .jobs-roster a { gap:16px 24px }
  .page-jobs .jobs-roster-role { font-size:23px }
  .page-jobs .jobs-roster-summary { font-size:16px }
  .page-jobs .job-lede { font-size:20px }
  .page-jobs .jobs-place-image { min-height:420px }
}

@media(max-width:860px) {
  .page-jobs .jobs-hero, .page-jobs .jobs-place, .page-jobs .jobs-apply { grid-template-columns:1fr }
  .page-jobs .jobs-hero { min-height:0 }
  .page-jobs .jobs-hero h1 br, .page-jobs .jobs-place-copy h2 br, .page-jobs .jobs-apply h2 br, .page-jobs .section-heading h2 br { display:none }
  .page-jobs .jobs-hero-copy { padding:26px var(--pad) 40px }
  .page-jobs .jobs-place-image { min-height:0;height:300px }
  .page-jobs .jobs-roster a { grid-template-columns:minmax(0,1fr) 32px;padding:22px 6px }
  .page-jobs .jobs-roster-name { grid-area:1/1 }
  .page-jobs .jobs-roster-go { grid-area:1/2 }
  .page-jobs .jobs-roster-summary { grid-area:2/1/auto/-1;max-width:62ch }
  .page-jobs .job-entry-head { flex-direction:column;align-items:flex-start;gap:16px }
  .page-jobs .job-entry-head .button { order:2;width:100%;max-width:340px }
  .page-jobs .job-columns { grid-template-columns:1fr;gap:30px }
  .page-jobs .job-block li { max-width:62ch }
  .page-jobs .jobs-apply-roles { margin-top:4px }
  .page-jobs .jobs-join { flex-direction:column;align-items:flex-start;gap:20px }
}

@media(max-width:600px) {
  .page-jobs .jobs-hero h1 { font-size:clamp(36px,9.5vw,48px) }
  .page-jobs .jobs-hero-lede { font-size:18px }
  .page-jobs .jobs-hero-facts { gap:8px 14px;font-size:11px }
  .page-jobs .jobs-hero-facts li { gap:14px }
  .page-jobs .jobs-place-image { height:230px }
  .page-jobs .jobs-roster a, .page-jobs .jobs-roster a:hover { padding-left:0;padding-right:0 }
  .page-jobs .jobs-roster-role { font-size:22px }
  .page-jobs .jobs-roster-go { align-self:start;margin-top:4px }
  .page-jobs .job-entry { scroll-margin-top:86px }
  .page-jobs .job-entry h2 { font-size:30px }
  .page-jobs .job-lede { font-size:19px }
  .page-jobs .job-facts li { font-size:10px;padding:6px 10px }
  .page-jobs .job-block li, .page-jobs .job-block-wide p { font-size:16px }
  .page-jobs .jobs-apply h2, .page-jobs .jobs-place-copy h2 { font-size:30px }
  .page-jobs .jobs-apply-address a { font-size:18px }
  .page-jobs .jobs-apply-roles a { padding:14px 18px;font-size:13px }
  .page-jobs .job-entry-head .button { max-width:none }
}

/* The workplace uses the owner's aerial, shown whole without a hero crop. */
.page-jobs .jobs-hero { grid-template-columns:1fr;min-height:0 }
.page-jobs .jobs-hero-copy { padding-bottom:52px }
.page-jobs .jobs-hero-lede { max-width:72ch }
@media(min-width:1000px) {
  .page-jobs .jobs-hero-copy { display:grid;grid-template-columns:1fr 1fr;column-gap:70px;padding-top:32px;padding-bottom:56px }
  .page-jobs .jobs-hero-copy .breadcrumb, .page-jobs .jobs-hero-copy>.eyebrow { grid-column:1/-1 }
  .page-jobs .jobs-hero-copy h1 { grid-column:1;grid-row:3/6;max-width:12ch;margin:0 }
  .page-jobs .jobs-hero-lede { grid-column:2;grid-row:3;margin:0 0 24px }
  .page-jobs .jobs-hero-facts { grid-column:2;grid-row:4;margin-bottom:26px }
  .page-jobs .jobs-hero-copy>.button { grid-column:2;grid-row:5;justify-self:start }
}
.page-jobs .jobs-place-image { min-height:0;height:auto;aspect-ratio:1;align-self:center;width:100%;max-width:560px;justify-self:center }
.page-jobs .jobs-place-image img { position:static;object-fit:contain;width:100%;height:auto;aspect-ratio:1 }
@media(max-width:860px) { .page-jobs .jobs-place-image { max-width:420px } }

.page-jobs .job-entry:focus-visible { outline:3px solid var(--indigo);outline-offset:-3px }
