/* Academic Job Board — faceted layout (v1.2) */
:root{
  --ajb-bg:#F4F5F7;
  --ajb-card:#FFFFFF;
  --ajb-text:#2B2F36;
  --ajb-muted:#6B7280;
  --ajb-line:#E5E7EB;
  --ajb-link:#1A8FE3;
  --ajb-link-dark:#0F6FB5;
  --ajb-accent:#7A1F2B;
  --ajb-chip:#EAF5FD;
}
.ajb-root *{ box-sizing:border-box; }
.ajb-root{
  font-family:-apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  background:var(--ajb-bg);
  color:var(--ajb-text);
}
.ajb-root a{ text-decoration:none; }

/* masthead */
.ajb-masthead{
  background:#1B2A22;
  color:#EFEAD9;
  padding:26px 4vw 22px;
  border-bottom:3px solid #C9A227;
}
.ajb-masthead h1{
  font-family:Georgia, serif; font-weight:600; margin:0;
  font-size:clamp(22px,3vw,32px);
}
.ajb-masthead h1 em{ color:#C9A227; }
.ajb-masthead p{ margin:6px 0 0; font-size:13px; color:#C7CFC2; }

/* layout */
.ajb-shell{
  display:grid;
  grid-template-columns:270px 1fr;
  gap:24px;
  max-width:1240px;
  margin:0 auto;
  padding:26px 4vw 70px;
  align-items:start;
}
@media (max-width:880px){ .ajb-shell{ grid-template-columns:1fr; } }

/* sidebar facets */
.ajb-facets{
  background:var(--ajb-card);
  border:1px solid var(--ajb-line);
  border-radius:10px;
  padding:18px 18px 8px;
  position:sticky; top:20px;
}
.ajb-facet{ margin-bottom:20px; }
.ajb-facet-title{
  font-size:11px; letter-spacing:1.2px; text-transform:uppercase;
  color:var(--ajb-muted); font-weight:600; margin-bottom:10px;
  display:flex; align-items:center; gap:6px;
}
.ajb-facet ul{ list-style:none; margin:0; padding:0; max-height:280px; overflow:auto; }
.ajb-facet li{ margin:0; }
.ajb-facet a{
  display:flex; justify-content:space-between; align-items:center;
  padding:5px 8px; border-radius:6px; font-size:13.5px;
  color:var(--ajb-text);
}
.ajb-facet a:hover{ background:#F0F7FC; color:var(--ajb-link-dark); }
.ajb-facet a.active{ background:var(--ajb-chip); color:var(--ajb-link-dark); font-weight:600; }
.ajb-facet .count{ color:var(--ajb-muted); font-size:12px; font-weight:normal; }
.ajb-clear{
  display:inline-block; font-size:12px; color:var(--ajb-accent);
  margin:-6px 0 14px; font-weight:600;
}

/* results column */
.ajb-results-head{
  display:flex; justify-content:space-between; align-items:center;
  gap:14px; flex-wrap:wrap; margin-bottom:16px;
}
.ajb-search{
  display:flex; gap:10px; flex:1; min-width:260px;
}
.ajb-search input[type=text]{
  flex:1; padding:11px 14px; border:1px solid var(--ajb-line);
  border-radius:8px; font-size:14px; background:var(--ajb-card);
}
.ajb-search button{
  padding:11px 22px; background:var(--ajb-accent); color:#fff;
  border:none; border-radius:8px; font-size:13px; font-weight:600;
  letter-spacing:0.4px; cursor:pointer;
}
.ajb-count{ font-size:13px; color:var(--ajb-muted); }

/* job cards */
.ajb-card{
  display:block;
  background:var(--ajb-card);
  border:1px solid var(--ajb-line);
  border-radius:10px;
  padding:20px 22px;
  margin-bottom:14px;
  box-shadow:0 1px 2px rgba(16,24,40,0.04);
  transition:box-shadow .15s ease, border-color .15s ease;
  color:inherit;
}
.ajb-card:hover{ box-shadow:0 4px 14px rgba(16,24,40,0.08); border-color:#D2D6DC; }

.ajb-card-emp{
  display:flex; align-items:center; gap:12px; margin-bottom:10px;
}
.ajb-logo{
  width:44px; height:44px; border-radius:50%;
  background:#EEF1F4; border:1px solid var(--ajb-line);
  display:flex; align-items:center; justify-content:center;
  font-family:Georgia, serif; font-size:18px; font-weight:600;
  color:#5A6472; flex-shrink:0;
}
.ajb-emp-name{ font-size:14px; color:var(--ajb-link); font-weight:600; }
.ajb-card:hover .ajb-emp-name{ color:var(--ajb-link-dark); }
.ajb-emp-loc{ font-size:12.5px; color:var(--ajb-muted); margin-top:1px; }

.ajb-card-title{
  font-size:18px; font-weight:700; margin:0 0 7px; line-height:1.35;
  color:var(--ajb-text);
}
.ajb-card-excerpt{
  font-size:13.5px; line-height:1.6; color:#4B5563; margin-bottom:12px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.ajb-card-meta{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  font-size:12.5px; color:var(--ajb-muted);
}
.ajb-card-meta .meta-item{ display:flex; align-items:center; gap:5px; }
.ajb-chip{
  background:var(--ajb-chip); color:var(--ajb-link-dark);
  padding:3px 10px; border-radius:20px; font-size:12px; font-weight:600;
}
.ajb-closing{ color:var(--ajb-accent); font-weight:600; }
.ajb-empty{
  background:var(--ajb-card); border:1px dashed var(--ajb-line);
  border-radius:10px; padding:44px; text-align:center; color:var(--ajb-muted);
}
.ajb-pagination{ margin-top:22px; text-align:center; }
.ajb-pagination .page-numbers{
  display:inline-block; padding:7px 13px; margin:0 2px;
  background:var(--ajb-card); border:1px solid var(--ajb-line);
  border-radius:6px; color:var(--ajb-text); font-size:13px;
}
.ajb-pagination .page-numbers.current{ background:var(--ajb-accent); color:#fff; border-color:var(--ajb-accent); }

/* single job */
.ajb-single-wrap{ max-width:820px; margin:0 auto; padding:30px 4vw 70px; }
.ajb-single-card{
  background:var(--ajb-card); border:1px solid var(--ajb-line);
  border-radius:12px; padding:34px 38px;
}
.ajb-single-emp{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.ajb-single-emp .ajb-logo{ width:54px; height:54px; font-size:22px; }
.ajb-single-title{
  font-size:26px; font-weight:700; margin:0 0 18px; line-height:1.3;
}
.ajb-facts{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:16px; padding:16px 0; border-top:1px solid var(--ajb-line);
  border-bottom:1px solid var(--ajb-line); margin-bottom:22px;
}
.ajb-fact-label{
  font-size:10.5px; text-transform:uppercase; letter-spacing:1px;
  color:var(--ajb-muted); margin-bottom:3px; font-weight:600;
}
.ajb-fact-value{ font-size:14px; font-weight:600; }
.ajb-single-body{ font-size:15px; line-height:1.75; color:#374151; margin-bottom:26px; }
.ajb-apply-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.ajb-apply-btn{
  background:var(--ajb-accent); color:#fff !important;
  padding:13px 28px; border-radius:8px;
  font-size:13px; font-weight:700; letter-spacing:0.4px; display:inline-block;
}
.ajb-source-note{ font-size:12.5px; color:var(--ajb-muted); }
.ajb-source-note a{ color:var(--ajb-link); }
