/* ===== Job board — refreshed 2026-07-23 =====
   Scoped to careers pages. careers.css loads AFTER styles.css, so equal-specificity rules here
   win over the base .jobboard/.job-card rules. Brand tokens only (--red/--ink/--line/--soft):
   a refresh, not a rebrand. The LIST view is tagged .jobboard--list by the worker so the job
   DETAIL view (same container) keeps its original framed panel. */

/* ---------- filter toolbar ---------- */
.job-filters{
  margin-bottom:24px;padding:14px;
  background:var(--soft);border:1px solid var(--line);border-radius:16px;
}
.job-filters__row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.job-filters__search{
  flex:1 1 260px;min-width:0;
  border:1px solid var(--line);border-radius:10px;background:#fff;
  padding:12px 14px 12px 40px;font:inherit;font-size:15px;color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:14px 50%;background-size:16px 16px;
  transition:border-color .15s,box-shadow .15s;
}
.job-filters__sel{
  border:1px solid var(--line);border-radius:10px;background:#fff;
  padding:12px;font:inherit;font-size:14px;color:var(--ink);
  max-width:210px;cursor:pointer;transition:border-color .15s,box-shadow .15s;
}
.job-filters__clear{
  background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:12px 18px;font:inherit;font-size:14px;color:var(--ink-2);cursor:pointer;transition:.15s;
}
.job-filters__sel:hover,.job-filters__clear:hover{border-color:var(--ink-4);}
.job-filters__clear:hover{border-color:var(--red);color:var(--red);}
.job-filters__search:focus,.job-filters__sel:focus,.job-filters__clear:focus-visible{
  outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(185,28,28,.12);
}
.job-filters__count{
  margin:14px 2px 0;font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3);
}

/* ---------- board shell (list view only) ---------- */
.jobboard--list{border:0;background:transparent;box-shadow:none;}
.jobboard--list .job-list{display:flex;flex-direction:column;gap:12px;}

/* ---------- job card ---------- */
.jobboard--list .job-card{
  position:relative;overflow:hidden;
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:20px 24px;background:#fff;
  border:1px solid var(--line);border-radius:14px;
  box-shadow:0 1px 2px rgba(20,24,33,.04);
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
/* accent rail wipes in from the card edge on hover */
.jobboard--list .job-card::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--red);transform:scaleY(0);transform-origin:50% 50%;
  transition:transform .18s ease;
}
.jobboard--list .job-card:hover{
  background:#fff;transform:translateY(-2px);border-color:#D6DDE6;
  box-shadow:0 12px 28px rgba(20,24,33,.11);
}
.jobboard--list .job-card:hover::before{transform:scaleY(1);}
.jobboard--list .job-card:focus-visible{outline:2px solid var(--red);outline-offset:3px;}

.job-card__main{min-width:0;}
.job-card__main h3{
  font-size:18px;font-weight:700;color:var(--ink);margin:0 0 9px;
  letter-spacing:-.01em;line-height:1.25;transition:color .16s ease;
}
.job-card:hover .job-card__main h3{color:var(--red);}
.job-card__meta{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--ink-3);
  display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;
}

/* ---------- tags: one family, three accents ---------- */
.job-card__cat,.job-card__new,.job-card__remote{
  border:1px solid;border-radius:999px;padding:3px 10px;
  font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;line-height:1.7;
}
.job-card__cat{background:var(--red-l);border-color:#F3C8C8;color:#8F1414;}
.job-card__new{background:#E8F5EE;border-color:#BFE3CD;color:#1B7A43;}
.job-card__remote{background:#EAF1FB;border-color:#C5D8F2;color:#1D4E89;}
.job-card__posted{color:var(--ink-3);} /* dormant — posting age is intentionally not rendered */

/* ---------- CTA ---------- */
.job-card__cta{
  flex:none;white-space:nowrap;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--red);background:var(--red-l);border:1px solid #F0D4D4;
  border-radius:999px;padding:10px 17px;transition:.16s ease;
}
.job-card:hover .job-card__cta{background:var(--red);border-color:var(--red);color:#fff;}

/* ---------- empty state ---------- */
.job-empty{
  padding:44px 28px;text-align:center;color:var(--ink-2);font-size:15px;line-height:1.6;
  background:#fff;border:1px dashed var(--line);border-radius:14px;
}

@media(max-width:760px){
  .jobboard--list .job-card{flex-direction:column;align-items:flex-start;gap:14px;padding:18px;}
  .job-card__cta{align-self:stretch;text-align:center;}
}
@media(max-width:620px){
  .job-filters{padding:12px;}
  .job-filters__sel,.job-filters__search{flex:1 1 100%;max-width:none;}
}
@media(prefers-reduced-motion:reduce){
  .jobboard--list .job-card,.jobboard--list .job-card::before,
  .job-card__cta,.job-card__main h3{transition:none;}
  .jobboard--list .job-card:hover{transform:none;}
}
