/* Continual Research job board theme.
   Mirrors continualresearch.com: paper #fcfaf6, ink #21132f, pale lavender #f3edf9,
   violet #542394, lime #d4ff9b, rule #c5bbce. Arial, square corners, full-width bands.
   The open-roles band is laid out like the People page's join section, on the site's pale lavender. */
:root {
  --colorAppBackground: #fcfaf6;
  --widthMaxContent: 800px;
  --widthMaxJobBoard: 800px;
  --borderRadiusContainer: 0px;
  --borderRadiusControl: 0px;
  --borderRadiusButton: 0px;
  --fontFamily: Arial, Helvetica, sans-serif;
}
body { color: #21132f; }

/* Header: paper with a rule under it, like the site nav. */
.ashby-job-posting-header { border-bottom: 1px solid #c5bbce !important; background: #fcfaf6 !important; }

/* Ashby chrome we replace: the "Open Positions (n)" title and the department groupings. */
.ashby-job-board-heading { display: none !important; }
.ashby-department-heading { display: none !important; }

/* Board, level 1: intro on paper. The heading is set in the Top Description. */
div:has(+ h1.ashby-job-board-heading) { padding: 40px 0 34px !important; margin: 0 !important; }
div:has(+ h1.ashby-job-board-heading) :is(h1, h2, h3) {
  font-family: Arial, Helvetica, sans-serif !important; font-size: 39px !important; font-weight: 400 !important;
  letter-spacing: -1.6px !important; line-height: 1.09 !important; color: #21132f !important; margin: 0 0 22px !important;
}
div:has(+ h1.ashby-job-board-heading) p { color: #21132f !important; font-size: 17px !important; line-height: 1.6 !important; max-width: 600px; margin: 0 0 14px !important; }

/* Board, level 2: open roles in a full-width pale lavender section with an ink rule on top,
   the same treatment as the site's "Markets" section. */
div:has(> div > .ashby-department-heading) {
  background: #f3edf9 !important;
  box-shadow: 0 0 0 100vmax #f3edf9;
  clip-path: inset(0 -100vmax);
  /* Full-width 1px ink rule along the top edge. Painted as a border image, so it adds no scroll width. */
  border-image: linear-gradient(#21132f 0 1px, #f3edf9 0) fill 0 // 0 100vmax;
  padding: 44px 0 48px !important;
  margin: 10px 0 0 !important;
}
div:has(> .ashby-department-heading)::before {
  content: 'Open roles'; display: block; font: 400 24px/1.15 Arial, Helvetica, sans-serif;
  letter-spacing: -.6px; color: #21132f; margin: 0 0 22px;
}
div:has(> .ashby-department-heading) { border-bottom: 1px solid #542394; }
.ashby-job-posting-brief-list a { display: block; text-decoration: none; }
.ashby-job-posting-brief {
  display: grid !important; grid-template-columns: minmax(0, 1fr) auto 24px; align-items: center; gap: 24px;
  padding: 24px 0 !important; margin: 0 !important;
  background: transparent !important; box-shadow: none !important; border-radius: 0 !important;
  border-top: 1px solid #542394 !important;
}
.ashby-job-posting-brief-title { font-size: 26px !important; font-weight: 400 !important; letter-spacing: -.65px !important; line-height: 1.3 !important; color: #21132f !important; margin: 0 !important; }
.ashby-job-posting-brief-details { display: block !important; margin: 0 !important; }
.ashby-job-posting-brief-details p { font-size: 14px !important; line-height: 1.6 !important; color: #21132f !important; margin: 0 !important; }
.ashby-job-posting-brief::after { content: '\2197\FE0E'; font-size: 23px; line-height: 1; color: #21132f; justify-self: end; }
a:hover .ashby-job-posting-brief-title { text-decoration: underline; }

/* Board: the closing note stays in the same section under the list. */
div:has(> .ashby-department-heading) + div { margin: 26px 0 0 !important; }
div:has(> .ashby-department-heading) + div p { color: #21132f !important; font-size: 18px !important; line-height: 1.6 !important; margin: 0 !important; max-width: 510px; }
div:has(> .ashby-department-heading) + div a { color: #21132f !important; text-decoration: underline; display: inline-block; padding: 12px 0 0; overflow-wrap: anywhere; }

/* Posting: title like the site's h2, details in a pale lavender block, opening set off by a rule. */
.ashby-job-posting-heading { font-weight: 400 !important; font-size: 39px !important; letter-spacing: -1.6px !important; line-height: 1.09 !important; color: #21132f !important; }
.ashby-job-posting-left-pane,
.ashby-job-posting-right-pane,
.ashby-job-posting-description-container,
.ashby-application-form-container { background: transparent !important; box-shadow: none !important; border-radius: 0 !important; }
.ashby-job-posting-left-pane { background: #f3edf9 !important; border-top: 1px solid #21132f !important; padding: 20px 22px 22px !important; margin-right: 24px !important; align-self: flex-start !important; height: auto !important; }
.ashby-job-posting-left-pane h2 { font-family: monospace !important; font-size: 11px !important; letter-spacing: .8px !important; text-transform: uppercase !important; color: #542394 !important; font-weight: 400 !important; }
.ashby-job-posting-left-pane p { color: #21132f !important; }
.ashby-job-posting-left-pane > div { border-color: #c5bbce !important; }
.ashby-job-posting-left-pane > div:last-child { display: none !important; } /* Department */
.ashby-job-posting-left-pane > div:nth-last-child(2) { border-bottom: 0 !important; padding-bottom: 0 !important; }
.ashby-job-posting-description > p:nth-child(2) { padding-bottom: 22px !important; margin-bottom: 26px !important; border-bottom: 1px solid #542394; }
/* Posting: bold section labels read as the site's h3. */
.ashby-job-posting-description > p > strong:only-child { display: block; font-size: 21px; font-weight: 400; letter-spacing: -.6px; line-height: 1.15; margin: 30px 0 8px; }
.ashby-application-form-section-header-title { font-weight: 400 !important; letter-spacing: -.6px !important; color: #21132f !important; }

/* Controls: square, rule-colored borders. */
.ashby-job-board-filter,
.ashby-application-form-input-text,
.ashby-application-form-input-textarea,
.ashby-application-form-input-dropdown,
.ashby-application-form-input-file-dropzone { border-radius: 0 !important; border-color: #c5bbce !important; background: #ffffff !important; }

/* Primary button matches the site's ink CTA; hover goes violet. */
.ashby-application-form-submit-button { background: #21132f !important; color: #fcfaf6 !important; border-radius: 0 !important; }
.ashby-application-form-submit-button:hover { background: #542394 !important; }

/* Narrow screens: rows stack title over meta, arrow spans both; headings step down like the site. */
@media (max-width: 720px) {
  div:has(+ h1.ashby-job-board-heading) :is(h1, h2, h3) { font-size: 34px !important; letter-spacing: -1.3px !important; }
  .ashby-job-posting-heading { font-size: 34px !important; letter-spacing: -1.3px !important; }
  .ashby-job-posting-brief { grid-template-columns: minmax(0, 1fr) 24px; gap: 10px 20px; }
  .ashby-job-posting-brief-details { grid-column: 1; }
  .ashby-job-posting-brief::after { grid-column: 2; grid-row: 1 / 3; }
  .ashby-job-posting-brief-title { font-size: 24px !important; }
  .ashby-job-posting-left-pane { margin-right: 0 !important; margin-bottom: 20px !important; }
}
