/* ============================================================
 * 企飞人才网 ｜ 求职招聘门户 + 职位详情（新生代门户风格）
 * 作用域 .jp- 前缀，不覆盖全局 .main-header/.main-nav/.top-bar
 * ============================================================ */
.jp-hero{
  background:linear-gradient(135deg,#0d3c75 0%,#1a5c9e 55%,#0f8aa0 100%);
  color:#fff;padding:54px 0 60px;position:relative;overflow:hidden;
}
.jp-hero::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;
  background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);border-radius:50%;}
.jp-hero .container{position:relative;z-index:2}
.jp-hero h1{font-size:38px;font-weight:800;letter-spacing:1px;margin:0 0 10px}
.jp-hero .jp-sub{font-size:17px;opacity:.92;margin:0 0 26px;max-width:680px;line-height:1.7}
.jp-hero .jp-sub b{color:#ffd98a;font-weight:700}
.jp-search{display:flex;background:#fff;border-radius:14px;padding:8px;box-shadow:0 14px 38px rgba(0,0,0,.22);max-width:860px;gap:8px}
.jp-search input.flex1{flex:1;border:none;outline:none;padding:14px 16px;font-size:15px;font-family:inherit;border-radius:9px;background:#f5f8fc;color:#223}
.jp-search select{padding:14px 12px;border:none;background:#f5f8fc;border-radius:9px;font-size:14px;color:#334;font-family:inherit;outline:none}
.jp-search button{border:none;background:#0fae9e;color:#fff;font-size:16px;font-weight:700;padding:0 30px;border-radius:10px;cursor:pointer;font-family:inherit;white-space:nowrap}
.jp-search button:hover{background:#0c9a8e}
.jp-hot{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.jp-hot span.lbl{font-size:13px;opacity:.8;margin-right:4px}
.jp-chip{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);color:#fff;font-size:13px;padding:6px 14px;border-radius:20px;cursor:pointer;transition:.18s}
.jp-chip:hover{background:#fff;color:#0d3c75;font-weight:600}

.jp-trust{background:#fff;border-bottom:1px solid #eef2f7;padding:22px 0}
.jp-trust .container{display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between}
.jp-trust .jp-ti{flex:1;min-width:200px;display:flex;gap:12px;align-items:center}
.jp-trust .jp-ti .ic{width:42px;height:42px;border-radius:11px;background:#eaf4ff;color:#1a5c9e;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.jp-trust .jp-ti h5{margin:0;font-size:15px;color:#16324f}
.jp-trust .jp-ti p{margin:2px 0 0;font-size:12.5px;color:#7a8794;line-height:1.5}

.jp-section{padding:42px 0}
.jp-section .jp-sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}
.jp-section .jp-sec-head h2{font-size:24px;color:#16324f;margin:0;position:relative;padding-left:14px}
.jp-section .jp-sec-head h2::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:5px;border-radius:3px;background:linear-gradient(#1a5c9e,#0fae9e)}
.jp-section .jp-sec-head a{font-size:13px;color:#1a5c9e;text-decoration:none}
.jp-section .jp-sec-head .jp-sec-links a{margin-left:16px}

.jp-cats{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.jp-cat{background:#fff;border:1px solid #eef2f7;border-radius:14px;padding:20px 14px;text-align:center;cursor:pointer;transition:.18s;box-shadow:0 4px 14px rgba(13,60,117,.04)}
.jp-cat:hover{transform:translateY(-3px);border-color:#cfe6ff;box-shadow:0 12px 26px rgba(13,60,117,.1)}
.jp-cat .em{font-size:26px;display:block;margin-bottom:8px}
.jp-cat .nm{font-size:14.5px;color:#223;font-weight:600}
.jp-cat .ct{font-size:12px;color:#98a4b0;margin-top:3px}

.jp-companies{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.jp-company{background:#fff;border:1px solid #eef2f7;border-radius:14px;padding:18px;display:flex;gap:14px;align-items:center;transition:.18s;box-shadow:0 4px 14px rgba(13,60,117,.04)}
.jp-company:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(13,60,117,.1)}
.jp-company .logo{width:54px;height:54px;border-radius:12px;object-fit:cover;background:#eef2f7;flex-shrink:0}
.jp-company .logo.ph{display:flex;align-items:center;justify-content:center;color:#b9c4d0;font-size:22px;font-weight:700}
.jp-company h4{margin:0 0 4px;font-size:16px;color:#16324f}
.jp-company p{margin:0;font-size:12.5px;color:#7a8794;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 职位列表区 */
.jp-layout{display:flex;gap:24px;align-items:flex-start}
.jp-side{width:248px;flex-shrink:0;background:#fff;border:1px solid #eef2f7;border-radius:16px;padding:18px;box-shadow:0 4px 14px rgba(13,60,117,.04)}
.jp-side h4{margin:0 0 14px;font-size:15px;color:#16324f}
.jp-side .jp-fld{margin-bottom:14px}
.jp-side label{display:block;font-size:12.5px;color:#667;margin-bottom:6px}
.jp-side select{width:100%;padding:9px 10px;border:1px solid #dfe6ee;border-radius:8px;font-size:13.5px;font-family:inherit;background:#fafcfe;color:#334;outline:none}
.jp-side .jp-reset{font-size:12.5px;color:#1a5c9e;cursor:pointer;background:none;border:none;padding:0}
.jp-main{flex:1;min-width:0}
.jp-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.jp-toolbar .cnt{font-size:13px;color:#7a8794}
.jp-toolbar .sort{font-size:13px;color:#667}
.jp-jobs{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.jp-job{background:#fff;border:1px solid #eef2f7;border-radius:16px;padding:18px;transition:.18s;box-shadow:0 4px 14px rgba(13,60,117,.04);display:flex;flex-direction:column}
.jp-job:hover{transform:translateY(-3px);border-color:#cfe6ff;box-shadow:0 14px 30px rgba(13,60,117,.1)}
.jp-job .top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.jp-job .ttl{font-size:17px;font-weight:700;color:#16324f;margin:0;cursor:pointer}
.jp-job .ttl:hover{color:#1a5c9e}
.jp-job .sal{color:#e8632a;font-size:17px;font-weight:800;white-space:nowrap}
.jp-job .co{font-size:13.5px;color:#5a6b7b;margin:8px 0 2px}
.jp-job .meta{font-size:12.5px;color:#8a96a3;margin-bottom:10px}
.jp-job .tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;min-height:4px}
.jp-job .tag{background:#eef4fb;color:#2b6cb0;font-size:12px;padding:3px 9px;border-radius:8px}
.jp-job .acts{margin-top:auto;display:flex;gap:10px}
.jp-btn{border:none;border-radius:9px;padding:9px 14px;font-size:13.5px;cursor:pointer;font-family:inherit;font-weight:600;transition:.15s}
.jp-btn.detail{background:#eef4fb;color:#1a5c9e;flex:1}
.jp-btn.detail:hover{background:#dcebfb}
.jp-btn.chat{background:#0fae9e;color:#fff}
.jp-btn.chat:hover{background:#0c9a8e}
.jp-btn.primary{background:#1a5c9e;color:#fff}
.jp-btn.primary:hover{background:#15487c}
.jp-empty{padding:50px;text-align:center;color:#98a4b0;background:#fff;border:1px dashed #dfe6ee;border-radius:16px}

.jp-risk{background:#fff8ef;border:1px solid #f6dcb4;color:#9a6a14;padding:11px 14px;border-radius:10px;font-size:13px;line-height:1.6;margin-bottom:16px}

/* 职位详情 */
.jp-detail-wrap{max-width:980px;margin:0 auto;padding-bottom:90px}
.jp-d-card{background:#fff;border:1px solid #eef2f7;border-radius:18px;padding:26px;box-shadow:0 10px 30px rgba(13,60,117,.08);margin-bottom:18px;position:relative;overflow:hidden}
.jp-d-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#0d3c75,#1565c0 55%,#0fae9e)}
.jp-d-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-top:6px}
.jp-d-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.12em;color:#1565c0;background:#eef4fb;border-radius:20px;padding:3px 12px;margin-bottom:10px}
.jp-d-eyebrow .qf-ic{width:13px;height:13px}
.jp-d-head h1{font-size:27px;color:#16324f;margin:0 0 8px;letter-spacing:.3px}
.jp-d-sal{color:#e8632a;font-size:28px;font-weight:800;background:linear-gradient(135deg,#e8632a,#f5a623);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.jp-d-tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.jp-d-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0 4px}
.jp-d-kv .kv{display:flex;align-items:center;gap:10px;background:#f6f9fd;border:1px solid #e8eef5;border-radius:12px;padding:12px 14px}
.jp-d-kv .kvi{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#0d3c75,#1a5c9e);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.jp-d-kv .kvi .qf-ic{width:16px;height:16px}
.jp-d-kv b{display:block;font-size:13.5px;color:#16324f;line-height:1.3}
.jp-d-kv small{display:block;font-size:11px;color:#8a97a5;margin-top:2px}
.jp-d-co{display:flex;align-items:center;gap:14px;padding:16px;background:linear-gradient(135deg,#f6f9fd,#eef4fb);border-radius:14px;margin:18px 0 6px;border:1px solid #e8eef5}
.jp-d-co .logo{width:48px;height:48px;border-radius:12px;object-fit:cover}
.jp-d-co .logo.ph.qf-logo-ph{background:linear-gradient(135deg,#0d3c75,#1a5c9e);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center}
.jp-d-co h4{margin:0;font-size:16px;color:#16324f}
.jp-d-co p{margin:2px 0 0;font-size:12.5px;color:#7a8794}
.jp-co-link{font-size:12.5px;color:#1565c0;font-weight:600;text-decoration:none;margin-left:8px;display:inline-flex;align-items:center;gap:4px}
.jp-co-link .qf-ic{width:13px;height:13px}
.jp-d-sec{margin-top:22px}
.jp-d-sec h3{font-size:17px;color:#1a5c9e;margin:0 0 10px;padding-left:12px;border-left:4px solid #1a5c9e}
.jp-d-sec p{margin:0;line-height:1.85;color:#3a4a5a;white-space:pre-wrap;font-size:14.5px}
.jp-d-warn{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding:14px 16px;background:#fffaf0;border:1px solid #f0e2bc;border-radius:12px}
.jp-d-warn .qf-ic{width:18px;height:18px;color:#c79a3a;flex-shrink:0;margin-top:2px}
.jp-d-warn b{color:#8a6d1f;font-size:14px}
.jp-d-warn p{margin:4px 0 0;font-size:13px;color:#8a7a45;line-height:1.7}
.jp-d-bar{position:fixed;left:0;right:0;bottom:0;background:#fff;border-top:1px solid #eef2f7;box-shadow:0 -6px 18px rgba(0,0,0,.06);z-index:40}
.jp-d-bar .container{display:flex;align-items:center;gap:14px;padding:14px 0}
.jp-d-bar .info{flex:1}
.jp-d-bar .info .t{font-size:16px;font-weight:700;color:#16324f}
.jp-d-bar .info .s{font-size:13px;color:#e8632a;font-weight:700}
.jp-d-bar .acts{display:flex;gap:12px}
.jp-d-other{background:#fff;border:1px solid #eef2f7;border-radius:18px;padding:22px;box-shadow:0 6px 20px rgba(13,60,117,.06)}
.jp-d-other h3{font-size:17px;color:#1a5c9e;margin:0 0 14px}
.jp-d-other .row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px dashed #eef2f7;cursor:pointer}
.jp-d-other .row:last-child{border-bottom:none}
.jp-d-other .row .nm{font-size:14.5px;color:#223;font-weight:600}
.jp-d-other .row .sl{font-size:13px;color:#e8632a;font-weight:700}

/* 响应式 */
@media (max-width:980px){
  .jp-cats{grid-template-columns:repeat(3,1fr)}
  .jp-companies{grid-template-columns:repeat(2,1fr)}
  .jp-jobs{grid-template-columns:1fr}
  .jp-layout{flex-direction:column}
  .jp-side{width:100%}
}
@media (max-width:560px){
  .jp-hero h1{font-size:28px}
  .jp-search{flex-wrap:wrap}
  .jp-search button{padding:12px;width:100%}
  .jp-cats{grid-template-columns:repeat(2,1fr)}
}
