/* ====================================
   VACANCIES LIST STYLING
   Core layout and formatting for vacancy archive cards.
   Used across search, filters, and archive templates.
==================================== */

/* === 1) BOX SIZING RESET === */
/* Ensures consistent width calculations across all elements */
.vacancies-list,
.vacancy-card,
.vacancy-divider {
  box-sizing: border-box;
}

/* === 2) LIST WRAPPER === */
/* Defines layout for the grid of vacancy items */
.vacancies-list {
  display: grid;
  gap: 32px;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0;
}

/* === 3) VACANCY CARD === */
/* Individual vacancy listing block */
.vacancy-card {
  width: 100%;
  background: #f9f9f7;
  padding: 32px;
  position: relative;
  margin: 0;
}

/* === 4) DIVIDER === */
/* Visual separator between vacancy sections */
hr.vacancy-divider {
  width: 100%;
  border: none;
  border-top: 2px solid #deecec;
  margin: 0;
}

/* === 5) TITLE === */
.vacancy-title {
  margin: 0 0 16px;
  font-size: 1.75rem;
  font-weight: 500;
}

/* === 6) CRITERIA TAGS === */
/* Row of criteria like location, contract, etc. */
.vacancy-criteria {
  display: flex;
  gap: 24px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

/* === 7) CRITERIA ITEM === */
/* Each icon + text pair */
.criteria-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 1rem;
  color: #3c4858;
}
.criteria-item i {
  font-size: 1.25rem;
  color: #1a2438;
}

/* === 8) SUMMARY TEXT === */
.vacancy-summary p {
  margin: 0 0 24px;
  color: #556674;
  line-height: 1.6;
}

/* === 9) BUTTON STYLE === */
/* Call-to-action button */
.vacancy-btn {
  display: inline-block;
  width: 150px;
  height: 48px;
  line-height: 48px;
  background: #1a2438;
  color: #ffffff;
  text-align: center;
  border-radius: 30px;
  text-transform: uppercase;
  font-size: 1.3rem;
  font-family: "Astra Sans Extended", sans-serif;
  font-weight: 300;
  text-decoration: none;
}
.vacancy-btn:hover {
  background: #162030;
}

/* === 10) FONT OVERRIDE === */
/* Force Artegra font on dynamic OTYS button */
#vacancy-list .vacancy-btn {
  font-family: "Artegra Sans Extended", sans-serif !important;
  font-weight: normal !important;
}

/* ====================================
   RESPONSIVE BREAKPOINTS
==================================== */

/* ≤ 991px – Stack vertically */
@media (max-width: 991px) {
  .vacancies-list {
    grid-template-columns: 1fr;
    padding: 0 20px;
  }
  .vacancy-card {
    padding: 24px;
  }
  .vacancy-divider {
    margin: 24px 0;
  }
}

/* ≤ 767px – Tighter layout */
@media (max-width: 767px) {
  .vacancies-list {
    gap: 24px;
  }
  .vacancy-card {
    padding: 16px;
  }
  .vacancy-divider {
    margin: 16px 0;
  }
}

/* ≤ 478px – Full-width buttons */
@media (max-width: 478px) {
  .vacancies-list,
  .alan-filter-wrapper,
  .vac-filter-wrapper {
    padding: 0 12px;
  }
  .vacancy-btn {
    width: 100%;
  }
  .vacancy-title {
    font-size: 1.5rem;
  }
}

/* ≤ 430px – Compact spacing */
@media (max-width: 430px) {
  .vacancies-list {
    gap: 16px;
  }
  .vacancy-card {
    padding: 12px;
  }
  .vacancy-divider {
    margin: 12px 0;
  }
  .vacancy-badge {
    top: 8px;
    left: 8px;
    padding: 2px 8px;
    font-size: 0.625rem;
  }
  .vacancy-title {
    font-size: 1.25rem;
    margin-bottom: 12px;
  }
  .vacancy-criteria {
    gap: 12px;
  }
  .criteria-item {
    font-size: 0.875rem;
  }
  .criteria-item i {
    font-size: 1rem;
  }
  .vacancy-summary p {
    margin-bottom: 16px;
  }
  .vacancy-btn {
    width: 40% !important;
    height: 40px !important;
    line-height: 40px !important;
    font-size: 1rem !important;
  }
}
