/* ============================================================
   Vores Tog rekruttering — public site (job board + application)
   ============================================================ */

.vt-page { background: var(--surface-page); font-family: var(--font-sans); }

.vt-listing-intro { max-width: var(--container-max); margin: 0 auto; padding: 40px 40px 0; }
.vt-listing-intro h1 { font: 200 38px/1.05 var(--font-sans); letter-spacing: -.03em; color: var(--vt-blue); margin: 0 0 12px; }
.vt-listing-intro p { font: 400 16px/1.55 var(--font-sans); color: var(--text-body); margin: 0; max-width: 70ch; }

.vt-listing { display: grid; grid-template-columns: 264px 1fr; gap: 36px; padding: 36px 40px 60px; max-width: var(--container-max); margin: 0 auto; }
@media (max-width: 900px) { .vt-listing { grid-template-columns: 1fr; } }

.vt-filters { display: flex; flex-direction: column; gap: 26px; }
.vt-filters__group-label { font: 500 11px/1 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px; }
.vt-filters__checks { display: flex; flex-direction: column; gap: 10px; }
.vt-filters__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.vt-agent-card { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: #fff; padding: 18px; }
.vt-agent-card h4 { font: 600 15px/1.3 var(--font-sans); color: var(--text-strong); margin: 0 0 6px; }
.vt-agent-card p { font: 400 13px/1.5 var(--font-sans); color: var(--text-muted); margin: 0 0 14px; }
.vt-agent-card .vt-btn { margin-bottom: 8px; }

.vt-jobs-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 18px; flex-wrap: wrap; gap: 8px; }
.vt-jobs-head strong { font-weight: 600; color: var(--text-strong); }
.vt-jobs-sort { display: flex; align-items: center; gap: 10px; font: 400 13px/1 var(--font-sans); color: var(--text-muted); }
.vt-jobs-sort span.is-active { font-weight: 500; color: var(--text-strong); border-bottom: 1px solid var(--vt-orange); padding-bottom: 2px; }

.vt-job-list { display: flex; flex-direction: column; gap: 12px; }
.vt-job-card {
  background: #fff; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg);
  padding: 20px 22px; display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: center;
  box-shadow: var(--shadow-sm);
}
@media (max-width: 640px) { .vt-job-card { grid-template-columns: 1fr; } }
.vt-job-card__meta { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.vt-job-card__fag { font: 500 10.5px/1 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.vt-job-card__dot { width: 3px; height: 3px; border-radius: 50%; background: var(--gray-300); }
.vt-job-card__sted { font: 400 12px/1 var(--font-sans); color: var(--text-muted); }
.vt-job-card__title { font: 600 19px/1.25 var(--font-sans); letter-spacing: -.01em; color: var(--text-strong); margin-bottom: 8px; }
.vt-job-card__tease { font: 400 14px/1.5 var(--font-sans); color: var(--text-body); max-width: 62ch; }
.vt-job-card__tags { display: flex; gap: 8px; margin-top: 14px; }
.vt-job-card__tag { font: 500 12px/1 var(--font-sans); color: var(--text-body); background: var(--gray-100); border-radius: var(--radius-pill); padding: 7px 12px; }
.vt-job-card__side { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; min-width: 150px; }
.vt-job-card__deadline-label { font: 500 10.5px/1 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 6px; text-align: right; }
.vt-job-card__deadline { font: 400 20px/1 var(--font-sans); color: var(--text-strong); text-align: right; }
.vt-empty { padding: 40px; text-align: center; color: var(--text-muted); }

/* ---- Single job ---- */
.vt-single-hero { height: 300px; background: var(--gray-200); display: flex; align-items: center; justify-content: center; border-bottom: 1px solid var(--border-subtle); }
.vt-single-hero__placeholder { text-align: center; color: var(--gray-500); font: 400 13px/1.5 var(--font-sans); }
.vt-single-hero img { width: 100%; height: 100%; object-fit: cover; }
.vt-single { display: grid; grid-template-columns: 1fr 344px; gap: 44px; padding: 40px; max-width: var(--container-max); margin: 0 auto; }
@media (max-width: 900px) { .vt-single { grid-template-columns: 1fr; } }
.vt-single__eyebrow { font: 500 11px/1 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px; }
.vt-single h2.vt-single__title { font: 200 40px/1.05 var(--font-sans); letter-spacing: -.03em; color: var(--vt-blue); margin: 0 0 20px; }
.vt-single__body p { font: 400 15px/1.65 var(--font-sans); color: var(--text-body); margin: 0 0 22px; }
.vt-single__body h3 { font: 600 17px/1.3 var(--font-sans); color: var(--text-strong); margin: 0 0 10px; }
.vt-single__body ul { margin: 0 0 22px; padding-left: 20px; font: 400 15px/1.7 var(--font-sans); color: var(--text-body); }
.vt-single__body .vt-lede { font: 400 17px/1.6 var(--font-sans); color: var(--text-body); margin: 0 0 26px; }
.vt-sidebar { display: flex; flex-direction: column; gap: 16px; }
.vt-sidebar__card { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 24px; }
.vt-facts { display: flex; flex-direction: column; gap: 16px; margin-bottom: 22px; }
.vt-facts__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.vt-facts__label { font: 500 10.5px/1 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 5px; }
.vt-facts__value { font: 400 15px/1.3 var(--font-sans); color: var(--text-strong); }
.vt-facts__deadline { font: 400 20px/1.1 var(--font-sans); color: var(--text-strong); }
.vt-contact { display: flex; gap: 14px; align-items: center; }
.vt-contact__name { font: 600 15px/1.3 var(--font-sans); color: var(--text-strong); }
.vt-contact__title { font: 400 13px/1.4 var(--font-sans); color: var(--text-muted); }
.vt-contact__details { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; font: 400 14px/1.5 var(--font-sans); color: var(--text-body); }
.vt-process { display: flex; flex-direction: column; gap: 12px; }
.vt-process__step { display: flex; gap: 12px; align-items: flex-start; }
.vt-process__num { width: 22px; height: 22px; border-radius: 50%; background: var(--vt-blue); color: #fff; font: 500 12px/22px var(--font-sans); text-align: center; flex: none; }
.vt-process__text { font: 400 14px/1.45 var(--font-sans); color: var(--text-body); }

/* ---- Application form ---- */
.vt-form-wrap { max-width: 920px; margin: 0 auto; background: #fff; min-height: 100%; }
.vt-form-body { padding: 36px 40px 44px; }
.vt-form-eyebrow { font: 500 11px/1 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 10px; }
.vt-form-eyebrow [data-vt-saved-at] { text-transform: none; letter-spacing: normal; font-weight: 400; }
.vt-form-body h2 { font: 200 34px/1.1 var(--font-sans); letter-spacing: -.03em; color: var(--vt-blue); margin: 0 0 26px; }
.vt-steps { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 32px; }
.vt-steps__step { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.vt-steps__bar { height: 4px; border-radius: 2px; background: var(--gray-200); }
.vt-steps__step.is-active .vt-steps__bar, .vt-steps__step.is-done .vt-steps__bar { background: var(--vt-orange); }
.vt-steps__label { font: 500 12.5px/1 var(--font-sans); color: var(--text-faint); }
.vt-steps__step.is-active .vt-steps__label, .vt-steps__step.is-done .vt-steps__label { color: var(--text-strong); }
.vt-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 640px) { .vt-form-grid { grid-template-columns: 1fr; } }
.vt-form-grid--zip { display: grid; grid-template-columns: 100px 1fr; gap: 12px; }
.vt-form-panel[hidden] { display: none; }

.vt-doc-row {
  border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: 18px 20px;
  display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center;
}
.vt-doc-row--fill { background: var(--surface-page); }
.vt-doc-row__title { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; font: 600 15px/1.3 var(--font-sans); color: var(--text-strong); }
.vt-doc-row__title small { font-weight: 400; color: var(--text-muted); }
.vt-doc-row__helper { font: 400 13px/1.5 var(--font-sans); color: var(--text-muted); }
.vt-doc-row__required { font: 500 11px/1 var(--font-sans); color: var(--red-500); background: var(--red-soft); border-radius: var(--radius-pill); padding: 5px 9px; }
.vt-dropzone { border: 2px dashed var(--border-default); border-radius: var(--radius-md); padding: 28px; text-align: center; }
.vt-dropzone.is-dragover { border-color: var(--vt-blue); background: var(--surface-page); }
.vt-dropzone__title { font: 600 15px/1.3 var(--font-sans); color: var(--text-strong); margin-bottom: 6px; }
.vt-dropzone__helper { font: 400 13px/1.5 var(--font-sans); color: var(--text-muted); }
.vt-file-list { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; text-align: left; font: 400 13px/1.4 var(--font-sans); color: var(--text-body); }

.vt-form-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; }

.vt-gdpr-table { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 20px; }
.vt-gdpr-table__head, .vt-gdpr-table__row { display: grid; grid-template-columns: 1.1fr 1fr 140px; gap: 0; padding: 12px 20px; }
.vt-gdpr-table__head { background: var(--surface-page); font: 500 10.5px/1 var(--font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted); }
.vt-gdpr-table__row { padding: 16px 20px; border-top: 1px solid var(--border-subtle); align-items: start; }
.vt-gdpr-table__formaal { font: 600 14px/1.45 var(--font-sans); color: var(--text-strong); padding-right: 16px; }
.vt-gdpr-table__data, .vt-gdpr-table__slet { font: 400 13.5px/1.5 var(--font-sans); color: var(--text-body); padding-right: 16px; }
.vt-consent-box { display: flex; flex-direction: column; gap: 16px; padding: 22px 24px; border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); background: var(--surface-page); }
.vt-consent-box__legal { font: 400 13px/1.55 var(--font-sans); color: var(--text-muted); }

.vt-receipt { border: 1px solid var(--border-subtle); border-radius: var(--radius-lg); padding: 32px 34px; display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: start; }
.vt-receipt img { width: 46px; height: 46px; border-radius: 11px; }
.vt-receipt h3 { font: 200 30px/1.15 var(--font-sans); letter-spacing: -.02em; color: var(--vt-blue); margin: 0 0 10px; }
.vt-receipt p { font: 400 15px/1.6 var(--font-sans); color: var(--text-body); margin: 0 0 18px; max-width: 58ch; }
.vt-receipt__actions { display: flex; gap: 10px; flex-wrap: wrap; }

.vt-withdraw-page { max-width: 560px; margin: 60px auto; padding: 0 24px; text-align: center; }
.vt-withdraw-page h1 { font: 200 30px/1.15 var(--font-sans); color: var(--vt-blue); letter-spacing: -.02em; }
.vt-withdraw-page p { font: 400 15px/1.6 var(--font-sans); color: var(--text-body); }
