/* Positions reuse the site's typography, colours and central actions. */
.positions-count { color: var(--muted); margin: 0 0 24px; }
.positions-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.position-card { padding: 30px; border: 1px solid var(--line); border-radius: 12px; display: flex; flex-direction: column; background: #fff; }
.position-card h3 { font-size: 25px; line-height: 1.35; margin: 0 0 12px; }
.position-card h3 a { color: var(--ink); text-decoration: none; }
.position-card h3 a:hover { text-decoration: underline; }
.position-location { color: var(--muted); margin: 0 0 14px; }
.position-card > p:not(.position-location) { margin: 0 0 20px; }
.position-card-facts { margin: auto 0 20px; }
.position-card-facts > div { display: grid; grid-template-columns: 145px 1fr; gap: 12px; padding: 9px 0; border-top: 1px solid var(--line); }
.position-card-facts dt,.position-details dt { color: var(--muted); font-size: 14px; }
.position-card-facts dd,.position-details dd { margin: 0; }
.positions-empty { background: var(--mist); padding: 32px; border-radius: 12px; }
.position-header h1 { max-width: 900px; margin-top: 24px; }
.position-deck { max-width: 780px; font-size: 20px; }
.position-demo,.careers-demo { padding: 18px 22px; background: var(--mist); border-left: 4px solid var(--brand); border-radius: 4px; }
.position-details { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 24px; margin: 28px 0; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.position-details dd { margin-top: 6px; }
.position-layout { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: 72px; padding-top: 0; }
.position-description h2 { font-size: 28px; margin: 32px 0 16px; }
.position-description h2:first-child { margin-top: 0; }
.position-description ul { padding-left: 24px; }
.position-description li { margin-bottom: 9px; }
.position-aside { align-self: start; background: var(--paper); border-radius: 12px; padding: 28px; }
.position-aside h2 { font-size: 23px; }
.position-aside h3 { font-size: 19px; margin-top: 26px; }
.position-application { background: var(--mist); }
.position-form-wrap { max-width: 900px; }
.position-closed { padding: 24px; background: var(--paper); border-radius: 12px; }
@media(max-width:700px) {
  .positions-grid,.position-layout,.position-details { grid-template-columns: 1fr; }
  .position-card { padding: 24px; }
  .position-card h3 { font-size: 23px; }
  .position-card-facts > div { grid-template-columns: 1fr; gap: 2px; }
  .position-details { gap: 18px; }
  .position-layout { gap: 32px; }
}
