/* ============================================================
   人才招聘 Recruitment Page  —  kingstarmedical.cn
   独立样式文件（页面专用）。配色与全站一致：
   主色 #023089（深蓝）  辅助青绿 #307d65  点缀金 #e49b28
   基准 rem = 100px（与 common.css 一致，自适应缩放）
   ============================================================ */
:root{
  --ks-blue:#023089;
  --ks-blue-2:#09368c;
  --ks-blue-deep:#012a63;
  --ks-blue-soft:#e1effc;
  --ks-blue-bg:#f2f7fd;
  --ks-teal:#307d65;
  --ks-gold:#e49b28;
  --ks-text:#2a2c2e;
  --ks-gray:#666666;
  --ks-line:#e5e5e5;
  --ks-line-2:#ebeff2;
}

/* ---------- 招聘横幅副标题 ---------- */
.SubBan h2 .RecruitSub{ display:block; font-size:0.32rem; font-weight:400; letter-spacing:1px; margin-top:0.12rem; opacity:.92; }
@media(max-width:767px){ .SubBan h2 .RecruitSub{ font-size:0.22rem; } }

/* ---------- 招聘简介 ---------- */
.RecruitIntro{ text-align:center; padding:0 0 0.35rem 0; }
.RecruitIntro .lead{ font-size:0.2rem; color:var(--ks-blue); font-weight:700; letter-spacing:2px; }
.RecruitIntro h2{ font-size:0.42rem; color:var(--ks-text); margin:0.14rem 0 0.18rem; font-weight:800; }
.RecruitIntro p{ font-size:0.16rem; color:var(--ks-gray); line-height:0.34rem; max-width:9.8rem; margin:0 auto; }

/* ---------- 数据条 ---------- */
.RecruitStats{ display:flex; justify-content:center; gap:0.45rem; flex-wrap:wrap; margin:0.4rem 0 0.1rem; }
.RecruitStats .stat{ text-align:center; min-width:1.9rem; padding:0.1rem 0.2rem; }
.RecruitStats .num{ font-size:0.48rem; font-weight:800; color:var(--ks-blue); line-height:1; }
.RecruitStats .num small{ font-size:0.2rem; font-weight:600; margin-left:0.03rem; }
.RecruitStats .lab{ font-size:0.15rem; color:var(--ks-gray); margin-top:0.1rem; }

/* ---------- 分类筛选 ---------- */
.RecruitFilter{ display:flex; flex-wrap:wrap; gap:0.14rem; justify-content:center; margin:0.45rem 0 0.35rem; }
.RecruitFilter .tab{ cursor:pointer; border:1px solid var(--ks-line); background:#fff; color:var(--ks-gray);
  font-size:0.16rem; padding:0.1rem 0.3rem; border-radius:0.3rem; transition:all .25s; user-select:none; }
.RecruitFilter .tab:hover{ border-color:var(--ks-blue); color:var(--ks-blue); }
.RecruitFilter .tab.active{ background:var(--ks-blue); border-color:var(--ks-blue); color:#fff;
  box-shadow:0 0.06rem 0.18rem rgba(2,48,137,.25); }

/* ---------- 职位列表 ---------- */
.JobList{ display:flex; flex-direction:column; gap:0.18rem; padding-bottom:0.2rem; }
.JobItem{ background:#fff; border:1px solid var(--ks-line-2); border-radius:0.1rem; overflow:hidden;
  transition:box-shadow .3s, border-color .3s; }
.JobItem:hover{ border-color:var(--ks-blue); box-shadow:0 0.1rem 0.3rem rgba(2,48,137,.10); }
.JobItem.open{ border-color:var(--ks-blue); box-shadow:0 0.1rem 0.3rem rgba(2,48,137,.12); }

.JobRow{ display:flex; align-items:center; justify-content:space-between; gap:0.3rem; padding:0.26rem 0.32rem; }
.JobMain{ flex:1; min-width:0; }
.JobHead{ display:flex; align-items:center; gap:0.16rem; flex-wrap:wrap; }
.JobTitle{ font-size:0.25rem; font-weight:700; color:var(--ks-text); transition:color .25s; }
.JobItem:hover .JobTitle{ color:var(--ks-blue); }
.JobTag{ font-size:0.13rem; color:#fff; background:var(--ks-teal); padding:0.03rem 0.12rem; border-radius:0.04rem; white-space:nowrap; }
.JobTag.hot{ background:var(--ks-gold); }
.JobTag.remote{ background:#5b7fb3; }

.JobMeta{ display:flex; flex-wrap:wrap; gap:0.1rem 0.32rem; margin-top:0.16rem; }
.JobMetaItem{ font-size:0.15rem; color:var(--ks-gray); display:flex; align-items:center; gap:0.06rem; }
.JobMetaItem i{ color:var(--ks-blue); font-size:0.16rem; }
.JobMetaItem b{ color:var(--ks-text); font-weight:600; }

.JobSalary{ font-size:0.27rem; font-weight:800; color:var(--ks-blue); white-space:nowrap; }
.JobSalary small{ font-size:0.15rem; font-weight:600; }

.JobActions{ display:flex; flex-direction:column; gap:0.12rem; align-items:stretch; min-width:1.8rem; }
.JobToggle{ cursor:pointer; border:1px solid var(--ks-blue); color:var(--ks-blue); background:#fff;
  font-size:0.16rem; padding:0.1rem 0.2rem; border-radius:0.06rem; text-align:center; transition:all .25s; }
.JobToggle:hover{ background:var(--ks-blue-bg); }
.JobApply{ display:inline-block; text-align:center; background:var(--ks-blue); color:#fff; font-size:0.17rem;
  font-weight:600; padding:0.13rem 0.2rem; border-radius:0.06rem; text-decoration:none; transition:all .25s;
  box-shadow:0 0.06rem 0.16rem rgba(2,48,137,.28); }
.JobApply:hover,.JobApply:focus{ background:var(--ks-blue-deep); color:#fff; transform:translateY(-1px); }

/* ---------- 展开详情 ---------- */
.JobDetail{ max-height:0; overflow:hidden; transition:max-height .4s ease; background:var(--ks-blue-bg);
  border-top:1px solid transparent; }
.JobItem.open .JobDetail{ max-height:1400px; border-top-color:var(--ks-line-2); }
.JobDetailInner{ padding:0.3rem 0.32rem; display:flex; gap:0.55rem; flex-wrap:wrap; }
.JobDetailCol{ flex:1; min-width:3.4rem; }
.JobDetailCol h4{ font-size:0.18rem; color:var(--ks-blue); margin-bottom:0.14rem; display:flex; align-items:center; gap:0.1rem; }
.JobDetailCol h4:before{ content:""; width:0.06rem; height:0.22rem; background:var(--ks-blue); border-radius:0.03rem; display:inline-block; }
.JobDetailCol ul{ display:flex; flex-direction:column; gap:0.09rem; }
.JobDetailCol li{ font-size:0.15rem; color:var(--ks-gray); line-height:0.3rem; padding-left:0.24rem; position:relative; }
.JobDetailCol li:before{ content:""; position:absolute; left:0; top:0.11rem; width:0.08rem; height:0.08rem;
  border-radius:50%; background:var(--ks-teal); }

.JobEmpty{ text-align:center; color:var(--ks-gray); font-size:0.16rem; padding:0.5rem 0; display:none; }

/* ---------- 底部投递 CTA ---------- */
.RecruitApply{ background:linear-gradient(120deg,var(--ks-blue),var(--ks-blue-2)); border-radius:0.14rem;
  padding:0.42rem 0.5rem; display:flex; align-items:center; justify-content:space-between; gap:0.3rem;
  flex-wrap:wrap; margin:0.25rem 0 0.5rem; color:#fff; }
.RecruitApply .txt h3{ font-size:0.27rem; margin-bottom:0.08rem; font-weight:700; }
.RecruitApply .txt p{ font-size:0.15rem; opacity:.92; line-height:0.28rem; }
.RecruitApply a{ background:#fff; color:var(--ks-blue); font-weight:700; font-size:0.18rem; padding:0.16rem 0.42rem;
  border-radius:0.4rem; text-decoration:none; white-space:nowrap; transition:transform .25s; }
.RecruitApply a:hover{ transform:translateY(-2px); }

/* ---------- 响应式 ---------- */
@media(max-width:1024px){
  .JobRow{ flex-direction:column; align-items:flex-start; }
  .JobSalary{ align-self:flex-start; }
  .JobActions{ flex-direction:row; width:100%; min-width:0; }
  .JobActions .JobToggle,.JobActions .JobApply{ flex:1; }
}
@media(max-width:767px){
  .RecruitIntro{ padding:0.35rem 0 0.2rem; }
  .RecruitIntro h2{ font-size:0.3rem; }
  .RecruitIntro p{ font-size:0.14rem; line-height:0.26rem; }
  .RecruitStats{ gap:0.2rem; }
  .RecruitStats .stat{ min-width:1.3rem; }
  .RecruitStats .num{ font-size:0.36rem; }
  .RecruitFilter{ gap:0.1rem; }
  .RecruitFilter .tab{ font-size:0.14rem; padding:0.08rem 0.2rem; }
  .JobTitle{ font-size:0.21rem; }
  .JobSalary{ font-size:0.22rem; }
  .JobActions{ flex-direction:column; }
  .JobDetailInner{ flex-direction:column; gap:0.25rem; }
  .RecruitApply{ flex-direction:column; text-align:center; padding:0.3rem 0.25rem; }
}
