.vagas { padding-block: 0 var(--st-sec-y); }

.vagas-filtros form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 20px 24px;
  align-items: end;
  padding: 28px 32px;
  background-color: var(--st-light-blue);
  border-radius: var(--st-radius-midia);
}

.vagas-filtros .form-label {
  display: block;
  margin-block-end: 8px;
  font-size: var(--st-fs-meta);
  font-weight: 700;
  color: var(--st-cat-cabotagem);
}

.vagas-filtros .form-control {
  display: block;
  width: 100%;
  min-height: 50px;
  padding: 12px 16px;
  font: inherit;
  font-size: var(--st-fs-ui);
  line-height: 1.4;
  color: var(--st-navy);
  background-color: var(--st-white);
  border: 1px solid var(--st-c1d1e8);
  border-radius: var(--st-radius-cta);
}

.vagas-filtros select.form-control {
  padding-inline-end: 44px;
  appearance: none;
  background-image: url("../../assets/icons/icon-arrow-down.svg");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 14px;
}

.vagas-filtros .form-control::placeholder {
  font-weight: 300;
  color: var(--st-cinza-texto);
  opacity: 1;
}

.vagas-filtros .form-control:focus {
  border-color: var(--st-blue);
  box-shadow: none;
  outline: 2px solid var(--st-blue);
  outline-offset: 1px;
}

.vagas-filtros .btn { min-height: 50px; }

.vagas-quantidades { margin-block-start: var(--st-sec-gap); }

.vagas-quantidades p {
  margin: 0;
  font-size: var(--st-fs-body);
  font-weight: 300;
}

.vagas-quantidades span { font-weight: 700; }

.vagas-quantidades__blue { color: var(--st-blue-text); }

.vagas-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
}

.vagas-list .list-item { display: flex; }

.vagas-list .list-item[hidden] { display: none; }

.vagas-list .card {
  position: relative;
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 10px;
  min-height: 11rem;
  padding: 24px 28px 56px;
  color: var(--st-text);
  background-color: var(--st-white);
  border: 1px solid var(--st-c1d1e8);
  border-radius: var(--st-radius-midia);
  transition: border-color 0.2s var(--st-ease), background-color 0.2s var(--st-ease), transform 0.2s var(--st-ease);
}

.vagas-list .card::after {
  content: "";
  position: absolute;
  inset-inline-end: 28px;
  inset-block-end: 24px;
  width: 0.6875rem;
  height: 1.1875rem;
  background-color: var(--st-blue-text);
  mask: url("../../assets/icons/icon-arrow-right.svg") center / contain no-repeat;
  transition: transform 0.2s var(--st-ease);
}

.vagas-list .card:hover,
.vagas-list .card:focus-visible {
  color: var(--st-text);
  text-decoration: none;
  background-color: var(--st-light-blue);
  border-color: var(--st-blue-text);
  transform: translateY(-2px);
}

.vagas-list .card:hover::after,
.vagas-list .card:focus-visible::after { transform: translateX(4px); }

.vagas-list .card-data {
  font-size: var(--st-fs-meta);
  color: var(--st-cinza-texto);
}

.vagas-list .card-titulo {
  margin: 0;
  font-size: var(--st-fs-lead);
  font-weight: 700;
  line-height: 1.3;
  color: var(--st-navy);
}

.vagas-list .card-local {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-block-start: auto;
  font-size: var(--st-fs-meta);
}

.vagas-list .card-local::before {
  content: "";
  flex: none;
  width: 0.75rem;
  height: 1rem;
  background-color: var(--st-blue-text);
  mask: url("../../assets/icons/icon-pin.svg") center / contain no-repeat;
}

.vagas-mais {
  display: flex;
  justify-content: center;
  margin-block-start: var(--st-sec-gap);
}

.vagas-mais [hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  .vagas-list .card,
  .vagas-list .card::after { transition: none; }
}

@media (max-width: 991px) {
  .vagas-filtros form { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .vagas-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px) {
  .vagas-filtros form {
    grid-template-columns: minmax(0, 1fr);
    padding: 24px;
  }

  .vagas-list { grid-template-columns: minmax(0, 1fr); }
}
