/* 卡片样式 — 现代干净圆角+阴影 */
.job-card {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.03), 0 6px 6px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  margin-bottom: 30px;
  height: 100%;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(0, 0, 0, 0.05);
  /* 卡片头部: 职位名称 + 日期 */
  /* 职位要求区域 — 固定高度 + 溢出隐藏 (核心截断效果) */
  /* 定制列表样式，清晰展示序号要求 */
  /* 自定义序号样式 (模仿1、2、3、专业感) */
  /* 保持编号文本的可读性 */
  /* 如果内容用原生文本段落 (备用样式保持统一) */
  /* 卡片底部 “查看更多” 按钮区域 */
  /* 响应式微调 */
  /* 针对超宽屏幕，卡片美观度保持 */
  /* 保证即使内容极少时卡片视觉一致，但主要是展示截断 */
  /* 补充一行省略辅助提示（无碍于实际截断，但保留查看更多按钮即告知用户有更多内容）*/
}
.job-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 25px -12px rgba(0, 0, 0, 0.12), 0 4px 12px rgba(0, 0, 0, 0.05);
}
.job-card .card-header {
  padding: 20px 22px 12px 22px;
  border-bottom: 1px solid #eff2f5;
}
.job-card .job-title {
  font-size: 18px;
  font-weight: 700;
  color: #f7902e;
  margin: 0 0 8px 0;
  line-height: 1.3;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
}
.job-card .job-title span:first-child {
  letter-spacing: -0.2px;
}
.job-card .publish-date {
  font-size: 0.75rem;
  font-weight: 500;
  color: #7f8c8d;
  background: #f0f3f8;
  padding: 4px 10px;
  border-radius: 40px;
  white-space: nowrap;
  margin-left: 12px;
}
.job-card .job-icon {
  color: #2c7da0;
  color: #f7902e;
  font-size: 1.2rem;
  margin-right: 6px;
}
.job-card .requirements-wrapper {
  padding: 16px 22px 12px 22px;
  flex: 0 0 auto;
}
.job-card .job-requirements {
  border-radius: 16px;
  padding: 8px 0 4px 0;
  /* 关键: 固定高度 + 超出隐藏，保证内容过多时截断 */
  height: 168px;
  overflow-y: hidden;
  overflow-x: hidden;
  line-height: 1.55;
  color: #2c3e44;
}
.job-card .job-requirements ul {
  margin: 0;
  padding-left: 18px;
  list-style-type: none;
}
.job-card .job-requirements li {
  position: relative;
  margin-bottom: 12px;
  padding-left: 6px;
  font-weight: 500;
  color: #2c3e44;
  line-height: 1.45;
  word-break: break-word;
}
.job-card .job-requirements li::before {
  content: "•";
  color: #2c7da0;
  font-weight: bold;
  font-size: 1.1rem;
  position: absolute;
  left: -14px;
  top: -1px;
}
.job-card .job-requirements li strong {
  font-weight: 600;
  color: #1f3e48;
}
.job-card .job-requirements p {
  margin: 0 0 8px 0;
}
.job-card .card-footer {
  padding: 8px 22px 22px 22px;
  margin-top: auto;
  border-top: none;
}
.job-card .btn-more {
  background: transparent;
  border: 1.5px solid #cbdbe0;
  border-radius: 40px;
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 600;
  color: #f7902e;
  width: 100%;
  transition: all 0.2s;
  text-align: center;
  display: inline-block;
  text-decoration: none;
  letter-spacing: 0.3px;
}
.job-card .btn-more:hover {
  background: #f7902e;
  border-color: #f7902e;
  color: white;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(44, 125, 160, 0.2);
}
@media (max-width: 767px) {
  .job-card .job-title {
    font-size: 1.3rem;
  }
  .job-card .requirements-wrapper {
    padding: 12px 18px 8px 18px;
  }
  .job-card .card-footer {
    padding: 6px 18px 20px 18px;
  }
  .job-card .job-requirements {
    height: 152px;
    /* 小屏稍微减少高度，依然截断突出效果 */
  }
  .job-card .recruit-header h1 {
    font-size: 2rem;
  }
}
@media (min-width: 1400px) {
  .job-card .job-requirements {
    height: 172px;
  }
}
.job-card .job-requirements::-webkit-scrollbar {
  display: none;
  /* 隐藏滚动条，仅确保无滚动条干扰; 隐藏效果直接用overflow-y:hidden完成了，无滚动条更自然 */
}
.job-card .job-requirements {
  mask-image: linear-gradient(to bottom, #000000 80%, transparent 98%);
  -webkit-mask-image: linear-gradient(to bottom, #000000 80%, transparent 98%);
  /* 视觉渐隐效果加强"有更多信息"的暗示，但不影响截断完整性 */
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9jZHJlYW1pL2p1bmUvc3RhdGljL2xlc3MvcGFnZS9qb2ItY2FyZC5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQztFQUNJLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSwwRUFBQTtFQUNBLHFEQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLHNCQUFBO0VBQ0EscUNBQUE7Ozs7Ozs7Ozs7Ozs7QUFFQSxTQUFDO0VBQ0csV0FBVyxnQkFBWDtFQUNBLGlGQUFBOztBQWJSLFNBaUJJO0VBQ0ksNEJBQUE7RUFDQSxnQ0FBQTs7QUFuQlIsU0FzQkk7RUFFRyxlQUFBO0VBQ0MsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTs7QUFoQ1IsU0FtQ0ksV0FBVyxLQUFJO0VBQ1gsc0JBQUE7O0FBcENSLFNBdUNJO0VBQ0ksa0JBQUE7RUFDQSxnQkFBQTtFQUNBLGNBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBOztBQS9DUixTQWtESTtFQUNJLGNBQUE7RUFDQSxjQUFBO0VBQ0EsaUJBQUE7RUFDQSxpQkFBQTs7QUF0RFIsU0EwREk7RUFDSSw0QkFBQTtFQUNBLGNBQUE7O0FBNURSLFNBK0RJO0VBRUksbUJBQUE7RUFDQSxvQkFBQTs7RUFFQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxrQkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTs7QUF4RVIsU0E2RUksa0JBQWtCO0VBQ2QsU0FBQTtFQUNBLGtCQUFBO0VBQ0EscUJBQUE7O0FBaEZSLFNBbUZJLGtCQUFrQjtFQUNkLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0VBQ0Esc0JBQUE7O0FBMUZSLFNBOEZJLGtCQUFrQixHQUFFO0VBQ2hCLFNBQVMsR0FBVDtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLGlCQUFBO0VBQ0Esa0JBQUE7RUFDQSxXQUFBO0VBQ0EsU0FBQTs7QUFyR1IsU0F5R0ksa0JBQWtCLEdBQUc7RUFDakIsZ0JBQUE7RUFDQSxjQUFBOztBQTNHUixTQStHSSxrQkFBa0I7RUFDZCxpQkFBQTs7QUFoSFIsU0FvSEk7RUFDSSwyQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7O0FBdkhSLFNBMEhJO0VBQ0ksdUJBQUE7RUFDQSwyQkFBQTtFQUNBLG1CQUFBO0VBQ0EsaUJBQUE7RUFFRCxlQUFBO0VBQ0MsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLG9CQUFBO0VBQ0Esa0JBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EscUJBQUE7O0FBeElSLFNBMklJLFVBQVM7RUFDTCxtQkFBQTtFQUNBLHFCQUFBO0VBQ0EsWUFBQTtFQUNBLHFCQUFBO0VBQ0EsNkNBQUE7O0FBMkJKLFFBdkIwQjtFQXVCMUIsU0F0Qkk7SUFDSSxpQkFBQTs7RUFxQlIsU0FsQkk7SUFDSSwyQkFBQTs7RUFpQlIsU0FkSTtJQUNJLDJCQUFBOztFQWFSLFNBVkk7SUFDSSxhQUFBOzs7RUFTUixTQUxJLGdCQUFnQjtJQUNaLGVBQUE7OztBQVdSLFFBTjJCO0VBTTNCLFNBTEk7SUFDSSxhQUFBOzs7QUE5S1osU0FtTEksa0JBQWlCO0VBQ2IsYUFBQTs7O0FBcExSLFNBeUxJO0VBQ0ksWUFBWSx3REFBWjtFQUNBLG9CQUFvQix3REFBcEIifQ== */