.jobs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 20px;
}

.job-card {
  background-color: var(--surface);
  border: 1px solid rgba(229, 231, 235, 0.5);
  border-radius: var(--radius);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  transition: var(--transition);
  display: flex;
  flex-direction: column;
  position: relative;
}

.job-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-hover);
  border-color: var(--primary-light);
}

.card-body { 
  padding: 28px; 
  display: flex;
  flex-direction: column;
  flex: 1;  
}

.card-title {
  color: var(--text-main);
  font-size: 1.4rem;
  font-weight: 800;
  margin-bottom: 16px;
  line-height: 1.3;
}

.card-text {
  color: var(--text-muted);
  font-size: 0.95rem;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card-text::before {
  content: '•';
  color: var(--primary);
  font-weight: bold;
}

.card-body .btn-primary {
  margin-top: 24px;
  background: var(--primary-light);
  color: var(--primary);
  box-shadow: none;
}

.job-card:hover .card-body .btn-primary {
  background: var(--primary);
  color: white;
  box-shadow: 0 4px 10px rgba(37, 99, 235, 0.3);
}



/* RESPONSIVE */
@media (max-width: 768px) {
  .jobs-grid { grid-template-columns: 1fr; }
}

@media (min-width: 769px) and (max-width: 1024px) {
  .jobs-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1025px) and (max-width: 1400px) {
  .jobs-grid { grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 22px; }
  .card-body { padding: 22px; }
  .card-title { font-size: 24px; }
}

@media (min-width: 1401px) {
  .jobs-grid { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 24px; }
  .card-body { padding: 28px; }
  .card-title { font-size: 26px; }
}