/* Module-owned styles: work in both the default Oqtane admin theme and DMVH. */
.dmvh-theme .dmvh-vacancies,
.dmvh-vacancies { --dmvh-max: 1680px; width: 100%; }
.dmvh-theme .dmvh-vacancy-title,
.dmvh-vacancy-title { margin-top: 1.5rem !important; margin-bottom: var(--dmvh-vacancy-gap-top, 2.5rem) !important; line-height: 1.25; }
.dmvh-theme .dmvh-vacancy-subtitle,
.dmvh-vacancy-subtitle { margin-bottom: var(--dmvh-vacancy-gap-top, 2.5rem) !important; font-size: 1.15rem; line-height: 1.6; color: var(--dmvh-ink, #293d5b); }
.dmvh-vacancy-grid { display: grid; grid-template-columns: repeat(var(--dmvh-vacancy-columns, 3), minmax(0, 1fr)); gap: 2.25rem; align-items: stretch; }
.dmvh-vacancy-card { display: flex; flex-direction: column; padding: clamp(2rem, 3vw, 2.75rem) clamp(1.75rem, 2.5vw, 2.25rem); border-radius: 0 2rem 0 2rem; background: #fff; color: #243e5b; box-shadow: 0 8px 36px #243e5b12; border: 1px solid #e7edf2; }
.dmvh-vacancy-card .dmvh-eyebrow { margin-bottom: 0.6rem; font-size: 0.875rem; }
.dmvh-vacancy-card h3 { font-size: clamp(1.45rem, 2vw, 1.7rem); line-height: 1.28; margin-bottom: 0.85rem; color: var(--dmvh-ink, #172c49); }
.dmvh-vacancy-card .badge { align-self: flex-start; margin-bottom: 0.85rem; }
.dmvh-vacancy-intro { font-size: 1.025rem; line-height: 1.68; margin-bottom: 1.5rem; color: var(--dmvh-ink, #293d5b); }
.dmvh-vacancy-section { margin-top: 2.25rem; }
.dmvh-vacancy-section h4 { font-family: "DMVH Funnel", Arial, sans-serif; font-size: 1.22rem; font-weight: 600; color: var(--dmvh-ink, #172c49); margin: 0 0 0.85rem 0; line-height: 1.35; }
.dmvh-vacancy-section .dmvh-copy { font-size: 0.95rem; line-height: 1.68; color: var(--dmvh-ink, #293d5b); }
.dmvh-vacancy-section .dmvh-copy p { margin-bottom: 1.15rem; line-height: 1.68; }
.dmvh-vacancy-section .dmvh-copy p:last-child { margin-bottom: 0; }
.dmvh-vacancy-section .dmvh-copy ul,
.dmvh-vacancy-section .dmvh-copy ol { padding-left: 1.35rem; margin-bottom: 1.15rem; }
.dmvh-vacancy-section .dmvh-copy li { margin: 0.45rem 0; line-height: 1.65; }
.dmvh-vacancy-footer { margin-top: auto; display: flex; flex-direction: column; }
.dmvh-vacancy-closing { font-size: 0.875rem; color: var(--dmvh-muted, #7e8da1); margin-top: 1.5rem; margin-bottom: 0; }
.dmvh-vacancy-card-actions { margin-top: auto; padding-top: 2.25rem; display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.dmvh-vacancy-card-actions .dmvh-button { width: 100%; text-align: center; justify-content: center; }

@supports (grid-template-rows: subgrid) {
    @media (min-width: 1101px) {
        .dmvh-vacancy-grid {
            grid-auto-rows: auto;
        }
        .dmvh-vacancy-card {
            display: grid;
            grid-row: span 5;
            grid-template-rows: subgrid;
            row-gap: 2rem;
        }
        .dmvh-vacancy-card .dmvh-vacancy-section {
            margin-top: 0;
        }
        .dmvh-vacancy-card .dmvh-vacancy-intro {
            margin-bottom: 0;
        }
        .dmvh-vacancy-card .dmvh-vacancy-footer {
            margin-top: 0;
            justify-content: flex-end;
        }
        .dmvh-vacancy-card-actions {
            margin-top: 0;
            padding-top: 0;
        }
        .dmvh-vacancy-closing {
            margin-top: 0;
            margin-bottom: 1rem;
        }
    }
}
.dmvh-vacancy-tools { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.dmvh-vacancy-detail { max-width: 850px; margin: 3rem auto; }
.dmvh-vacancy-detail .dmvh-eyebrow { margin-bottom: 0.75rem; }
.dmvh-vacancy-detail h1 { font-size: clamp(2.2rem, 3.5vw, 3.2rem); line-height: 1.15; margin-bottom: 1.5rem; }
.dmvh-vacancy-detail h2 { margin-top: 2.5rem; margin-bottom: 1rem; line-height: 1.25; }
.dmvh-vacancy-detail .dmvh-vacancy-intro { font-size: 1.2rem; line-height: 1.68; margin-bottom: 2rem; }
.dmvh-vacancy-detail .dmvh-copy p { line-height: 1.68; margin-bottom: 1.25rem; }
.dmvh-vacancy-editor > label { display: block; margin-top: 1.25rem; font-weight: 600; margin-bottom: 0.35rem; }
.dmvh-vacancy-editor > h3 { margin-top: 2.25rem; margin-bottom: 0.75rem; }
.dmvh-vacancies a:focus-visible { outline: 3px solid #2585bd; outline-offset: 4px; }
@media (max-width: 1100px) {
    .dmvh-vacancy-grid { grid-template-columns: 1fr; gap: 1.75rem; }
}
@media (max-width: 640px) {
    .dmvh-vacancy-grid { gap: 1.5rem; }
    .dmvh-vacancy-card { padding: 1.75rem 1.5rem; }
}
