/* =====================================================================
   JOBS
   Recruiting patterns on the shared Lestate Real canvas. The listing is
   deliberately quieter and denser than a marketing page: hierarchy,
   filters and readable job copy do the work.
   ===================================================================== */

.jb-page{
  --jb-control-h:48px;
  --blue-accent:#2461d3;
  --blue-accent-tint:rgba(36,97,211,.1);
  --blue-accent-tint-2:rgba(36,97,211,.18);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}
.jb-page .footer-col h4,
.jb-page .footer-col .footer-heading{
  margin:0;color:var(--ink-3);font-size:10.5px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;
}

/* =====================================================================
   HERO
   ===================================================================== */
.jb-hero{padding:152px 0 92px}
.jb-hero-grid{display:block}
.jb-hero-copy{
  display:flex;flex-direction:column;align-items:flex-start;gap:18px;
  max-width:1040px;
}
.jb-hero-copy h1{
  max-width:16em;font-size:clamp(42px,5vw,64px);font-weight:700;
  letter-spacing:-2.4px;line-height:1.01;
}
.jb-hero-copy .lead{max-width:31rem;font-size:17px}
.jb-hero-copy .btn{margin-top:6px}

/* =====================================================================
   LISTING AND FILTERS
   ===================================================================== */
.jb-open{padding:76px 0 120px}
.jb-section-head{display:flex;flex-direction:column;gap:13px;max-width:660px}
.jb-section-head h2{font-size:clamp(32px,4vw,46px)}
.jb-section-head p{margin:0;color:var(--ink-2);font-size:16px;line-height:1.6}

.jb-filters{
  display:grid;grid-template-columns:minmax(240px,1.45fr) repeat(2,minmax(176px,.8fr)) auto;
  gap:12px;align-items:end;margin-top:34px;padding:20px;
  border:1px solid var(--hair);border-radius:20px;background:rgba(255,255,255,.72);
  box-shadow:0 1px 2px rgba(0,0,0,.025);
}
.jb-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.jb-field label{
  color:var(--ink-2);font-size:12px;font-weight:700;letter-spacing:.25px;
}
.jb-field input,.jb-field select{
  width:100%;height:var(--jb-control-h);padding:0 14px;border:1px solid var(--grey-300);
  border-radius:12px;background:#fff;color:var(--ink-1);font:inherit;font-size:14px;
  outline:none;transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.jb-field input::placeholder{color:#77777c;opacity:1}
.jb-field input:hover,.jb-field select:hover{border-color:var(--ink-4)}
.jb-field input:focus,.jb-field select:focus{
  border-color:var(--blue-accent);box-shadow:0 0 0 3px rgba(49,115,246,.14);
}
.jb-field select{cursor:pointer}
.jb-reset{
  height:var(--jb-control-h);padding:0 16px;white-space:nowrap;cursor:pointer;
  border:1px solid var(--grey-300);border-radius:12px;background:transparent;
  color:var(--ink-2);font-size:13px;font-weight:700;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.jb-reset:hover{background:#fff;border-color:var(--ink-4);color:var(--ink-1)}
.jb-reset:active{transform:translateY(1px)}

.jb-results-head{
  display:flex;justify-content:space-between;gap:20px;margin:28px 2px 14px;
}
.jb-results-head p{margin:0;color:var(--ink-3);font-size:12.5px}
.jb-results-head p:first-child{color:var(--ink-1);font-weight:700}
.jb-jobs{display:flex;flex-direction:column;gap:14px}

/* =====================================================================
   JOB ROWS AND EXPANDED DESCRIPTIONS
   ===================================================================== */
.jb-job{
  overflow:hidden;border:1px solid var(--hair);border-radius:20px;
  background:rgba(255,255,255,.78);box-shadow:0 1px 2px rgba(0,0,0,.025);
  transition:border-color .25s ease,box-shadow .35s ease,background .25s ease;
}
.jb-job:hover{border-color:rgba(49,115,246,.24);box-shadow:0 12px 38px rgba(39,58,92,.08)}
.jb-job[open]{background:rgba(255,255,255,.93);border-color:rgba(49,115,246,.22)}
.jb-job summary{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;
  padding:27px 28px;cursor:pointer;list-style:none;
}
.jb-job summary::-webkit-details-marker{display:none}
.jb-job summary:focus-visible{outline:2px solid var(--blue-accent);outline-offset:-3px;border-radius:18px}
.jb-job-main{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}
.jb-department{font-size:12.5px;font-weight:700;color:var(--blue-accent)}
.jb-title{
  color:var(--ink-1);font-size:clamp(21px,2.3vw,28px);font-weight:700;
  letter-spacing:-.55px;line-height:1.15;
}
.jb-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px 0;color:var(--ink-3);font-size:13px}
.jb-meta span{display:inline-flex;align-items:center;white-space:nowrap}
.jb-meta span+span::before{
  content:"";display:block;width:1px;height:13px;margin:0 10px;background:var(--grey-300);
}
.jb-summary-action{
  min-width:112px;padding:11px 15px;border:1px solid rgba(49,115,246,.22);
  border-radius:12px;background:var(--blue-accent);color:#fff;
  text-align:center;font-size:13px;font-weight:700;white-space:nowrap;
  box-shadow:0 4px 16px rgba(36,97,211,.24);
  transition:background .2s ease,box-shadow .25s ease,transform .2s ease;
}
.jb-job summary:hover .jb-summary-action{background:#2765e8;box-shadow:0 8px 22px rgba(36,97,211,.3)}
.jb-job summary:active .jb-summary-action{transform:translateY(1px)}
.jb-close{display:none}
.jb-job[open] .jb-view{display:none}
.jb-job[open] .jb-close{display:inline}

.jb-detail{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,280px);
  gap:clamp(36px,5vw,70px);padding:44px 28px 56px;border-top:1px solid var(--hair);
}
.jb-description{display:flex;flex-direction:column;gap:38px;max-width:720px}
.jb-description section{display:flex;flex-direction:column;gap:13px}
.jb-description h4{font-size:22px;letter-spacing:-.45px}
.jb-description p,.jb-description li{
  color:var(--ink-2);font-size:15px;line-height:1.72;
}
.jb-description p{margin:0}
.jb-description ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0}
.jb-description li{position:relative;padding-left:19px}
.jb-description li::before{
  content:"";position:absolute;left:1px;top:.72em;width:5px;height:5px;
  border-radius:50%;background:var(--blue-accent);
}
.jb-description a{color:var(--blue-accent);font-weight:700}
.jb-description a:hover{opacity:.74}
.jb-description .jb-equal{color:var(--ink-3);font-size:13px;line-height:1.6}

.jb-facts{
  position:sticky;top:104px;align-self:start;padding-left:26px;border-left:1px solid var(--hair);
}
.jb-facts h4{font-size:17px;letter-spacing:-.25px}
.jb-facts dl{display:flex;flex-direction:column;gap:17px;margin:22px 0 24px}
.jb-facts dl div{display:flex;flex-direction:column;gap:4px}
.jb-facts dt{color:var(--ink-3);font-size:11.5px;font-weight:700}
.jb-facts dd{margin:0;color:var(--ink-1);font-size:13.5px;line-height:1.45}
.jb-facts .btn{margin-top:2px}
.jb-share{
  width:100%;min-height:44px;margin-top:10px;padding:10px 16px;cursor:pointer;
  border:1px solid var(--grey-300);border-radius:14px;background:transparent;
  color:var(--ink-2);font:inherit;font-size:13px;font-weight:700;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.jb-share:hover{background:var(--blue-accent-tint);border-color:rgba(36,97,211,.28);color:var(--blue-accent)}
.jb-share:active{transform:translateY(1px)}
.jb-facts>p{margin:12px 0 0;color:var(--ink-3);font-size:12px;line-height:1.55}

/* Empty result state is functional, not decorative. */
.jb-empty{
  padding:52px 24px;text-align:center;border:1px dashed var(--grey-300);
  border-radius:20px;background:rgba(255,255,255,.54);
}
.jb-empty h3{font-size:21px}
.jb-empty p{margin:10px auto 22px;color:var(--ink-2);font-size:14px;line-height:1.55}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:1080px){
  .jb-hero-copy h1{font-size:clamp(40px,5.6vw,58px)}
  .jb-filters{grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(160px,.8fr))}
  .jb-reset{grid-column:1 / -1;width:fit-content}
}

@media (max-width:820px){
  .jb-hero{padding:118px 0 60px}
  .jb-hero-copy h1{max-width:13ch;font-size:clamp(38px,8.5vw,54px)}
  .jb-filters{grid-template-columns:1fr 1fr}
  .jb-search{grid-column:1 / -1}
  .jb-reset{grid-column:1 / -1}
  .jb-detail{grid-template-columns:1fr;gap:34px}
  .jb-facts{
    position:static;order:-1;padding:0 0 30px;border-left:0;border-bottom:1px solid var(--hair);
  }
  .jb-facts dl{display:grid;grid-template-columns:1fr 1fr}
  .jb-facts .btn{width:auto}
}

@media (max-width:560px){
  .jb-hero{padding:110px 0 44px}
  .jb-hero-copy{gap:15px}
  .jb-hero-copy h1{font-size:clamp(36px,11vw,46px);letter-spacing:-1.55px}
  .jb-hero-copy .lead{font-size:15.5px}
  .jb-hero-copy .btn{width:100%}
  .jb-open{padding:56px 0 84px}
  .jb-section-head p{font-size:15px}
  .jb-filters{grid-template-columns:1fr;margin-top:26px;padding:16px;border-radius:18px}
  .jb-search,.jb-reset{grid-column:auto}
  .jb-reset{width:100%}
  .jb-results-head{margin-top:24px}
  .jb-results-head p:last-child{display:none}
  .jb-job summary{grid-template-columns:1fr;gap:20px;padding:23px 20px}
  .jb-title{font-size:22px}
  .jb-meta{line-height:1.35}
  .jb-summary-action{width:100%}
  .jb-detail{padding:34px 20px 44px}
  .jb-description{gap:34px}
  .jb-description h4{font-size:20px}
  .jb-description p,.jb-description li{font-size:14.5px;line-height:1.68}
  .jb-facts dl{grid-template-columns:1fr}
  .jb-facts .btn{width:100%}
}
