/* ==========================================================================
   Vacancies page (vacancies/index — job list). Page-specific styles.
   Shared helpers/hero/footer in app.css. Interactions in vacancies.js.
   Prefix `vc-`.
   ========================================================================== */

.vc-wide { max-width: 1240px; }
.vc-sec-search { padding: 44px 12px 0; }
.vc-sec-list { padding: 40px 12px 20px; }
.vc-sec-foot { padding: 30px 12px 50px; }
.vc-divider { border-bottom: 1px solid #eef2f7; margin: 34px 0 0; }
.vc-divider-top { border-top: 1px solid #eef2f7; }

/* ---- search bar ---- */
.vc-search { background: #fff; border: 1px solid #eef2f7; border-radius: 16px; padding: 12px; display: flex; align-items: center; gap: 8px; max-width: 980px; margin: 0 auto; box-shadow: 0 16px 40px rgba(13, 60, 120, .08); flex-wrap: wrap; }
.vc-search-field { flex: 1; min-width: 220px; display: flex; align-items: center; gap: 11px; padding: 10px 16px; }
.vc-search-field--loc { min-width: 180px; }
.vc-search-ic { color: #9aa7b8; font-size: 17px; }
.vc-search-input { border: none; outline: none; width: 100%; font-size: 16px; color: #33445c; background: transparent; }
.vc-search-sep { width: 1px; height: 34px; background: #e4ebf3; }
.vc-search-btn { width: 56px; height: 56px; border-radius: 50%; background: #1f7ae0; border: none; color: #fff; font-size: 20px; flex: none; cursor: pointer; transition: .2s; }
.vc-search-btn:hover { background: #0d5cbf; }

/* ---- category chips ---- */
.vc-chips { gap: 12px; margin: 26px auto 0; }
.jchip { cursor: pointer; border: 1px solid #e4ebf3; border-radius: 30px; padding: 9px 22px; font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 500; background: #eef4fc; color: #5f7186; transition: .2s; }
.jchip:hover { background: #dbe9fa; color: #1f7ae0; }
.jchip.active { background: #1f7ae0; color: #fff; border-color: #1f7ae0; }

/* ---- listings header ---- */
.vc-list-head { gap: 16px; margin-bottom: 26px; }
.vc-h2 { font-family: 'Montserrat', sans-serif; font-size: 30px; font-weight: 600; line-height: 36px; margin: 0; }
.vc-meta { color: #5f7186; font-size: 14px; margin-top: 10px; }
.vc-meta-q { color: #d8222a; font-family: 'Montserrat', sans-serif; font-weight: 500; font-size: 14px; line-height: 20px; }

/* ---- sort dropdown ---- */
.vc-sort { position: relative; }
.vc-sort-trigger { display: flex; align-items: center; gap: 10px; border: 1px solid #e4ebf3; border-radius: 10px; padding: 10px 16px; color: #33445c; font-size: 14px; white-space: nowrap; cursor: pointer; user-select: none; }
.vc-sort-label { color: #0e2a47; font-weight: 600; }
.vc-sort-chev { font-size: 11px; color: #9aa7b8; transition: transform .2s ease; }
.vc-sort.open .vc-sort-chev { transform: rotate(180deg); }
.vc-sort-menu { display: none; position: absolute; right: 0; top: calc(100% + 6px); background: #fff; border: 1px solid #e9eff6; border-radius: 10px; box-shadow: 0 14px 34px rgba(13, 60, 120, .14); padding: 6px; min-width: 180px; z-index: 20; }
.vc-sort-menu.show { display: block; }
.vc-sortopt { padding: 10px 14px; border-radius: 8px; font-size: 14px; color: #33445c; cursor: pointer; }
.vc-sortopt:hover { background: #f2f7fd; }

/* ---- job rows ---- */
#jobRows { position: relative; min-height: 160px; }
.vc-jobs-loading { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: #fff; transition: opacity .2s ease; }
.vc-jobs-loading.is-hidden { opacity: 0; pointer-events: none; }
.vc-jobs-loading-text { color: #5f7186; font-size: 14px; font-weight: 600; }
.jobrow { text-decoration: none; display: flex; align-items: center; gap: 16px; padding: 22px 26px; flex-wrap: wrap; transition: background .2s; background: #fff; }
.jobrow-alt { background: #eef4fc; }
.vc-empty { padding: 44px 12px; text-align: center; color: #9aa7b8; font-size: 15px; }
.jobrow:hover { background: #dceafa; }
.jobrow .arrow { transition: transform .25s ease; }
.jobrow:hover .arrow { transform: translateX(5px); }
.vc-job-title { flex: 0 0 22%; min-width: 160px; color: #1f7ae0; font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 18px; line-height: 24px; }
.vc-job-cell { display: flex; align-items: center; gap: 8px; color: #33445c; font-size: 14px; }
.vc-cell-loc { flex: 0 0 14%; min-width: 110px; }
.vc-cell-sal { flex: 0 0 19%; min-width: 150px; }
.vc-cell-exp { flex: 0 0 13%; min-width: 105px; }
.vc-cell-qual { flex: 1; min-width: 150px; }
.vc-cell-ic { color: #1f7ae0; font-size: 14px; }
.vc-job-arrow { flex: none; color: #1f7ae0; font-size: 18px; margin-left: auto; }

/* ---- footer row ---- */
.vc-also-wrap { gap: 12px; }
.vc-also-label { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 16px; color: #0e2a47; padding-top: 9px; }
.vc-also-chips { gap: 12px; }
.psearch { cursor: pointer; display: inline-flex; align-items: center; gap: 9px; border: 1px solid #e4ebf3; border-radius: 10px; padding: 11px 18px; font-size: 14px; color: #33445c; background: #fff; transition: .2s; }
.psearch:hover { border-color: #1f7ae0; color: #1f7ae0; }
.vc-psearch-ic { font-size: 12px; color: #9aa7b8; }
.vc-pager { gap: 6px; }
.vc-pg-prev { display: inline-flex; align-items: center; gap: 6px; color: #d8222a; font-size: 14px; font-weight: 500; cursor: pointer; padding: 0 10px; }
.vc-pg-next { display: inline-flex; align-items: center; gap: 6px; color: #1f7ae0; font-size: 14px; font-weight: 500; cursor: pointer; padding: 0 10px; }
.vc-pg-chev { font-size: 11px; }
.pgbtn { cursor: pointer; min-width: 38px; height: 38px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; color: #1f7ae0; background: transparent; border: none; }
.pgbtn.active { background: #1f7ae0; color: #fff; }
.pgbtn-muted { color: #9aa7b8; }
