/* Square listing artwork; preserve complete older images within the frame. */
.ppdjobs-grid.is-list .ppdjobs-card {
    grid-template-columns: 200px minmax(0, 1fr) !important;
}

.ppdjobs-grid.is-list .ppdjobs-card-image {
    display: flex !important;
    width: 180px !important;
    height: 180px !important;
    margin: 10px !important;
    align-items: center;
    justify-content: center;
    overflow: hidden !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.ppdjobs-grid.is-list .ppdjobs-card-image img,
.ppdjobs-grid.is-list .ppdjobs-card-image .wp-post-image {
    position: static !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
    background: #fff !important;
    transform: none !important;
}

.ppdjobs-grid.is-list .ppdjobs-card-body {
    min-width: 0;
    position: relative;
    z-index: 1;
    background: #fff;
}

/* Prevent the theme's white typography from affecting the staff form. */
.ppdjobs-front-form,
.ppdjobs-front-form p,
.ppdjobs-front-form label,
.ppdjobs-front-form span,
.ppdjobs-front-form strong,
.ppdjobs-front-form legend,
.ppdjobs-front-form h2,
.ppdjobs-front-form h3 {
    color: #545454 !important;
}

.ppdjobs-front-form input,
.ppdjobs-front-form select,
.ppdjobs-front-form textarea {
    color: #545454 !important;
    background-color: #fff !important;
}

@media (max-width: 620px) {
    .ppdjobs-grid.is-list .ppdjobs-card {
        grid-template-columns: 1fr;
    }

    .ppdjobs-grid.is-list .ppdjobs-card-image {
        width: min(300px, calc(100% - 20px)) !important;
        height: auto !important;
        aspect-ratio: 1 / 1;
    }
}

/* Hierarchical categories and accessible multiple-location selection. */
.ppdjobs-filters.ppdjobs-hierarchy-filters { display: flex; align-items: end; flex-wrap: wrap; }
.ppdjobs-hierarchy-filters .ppdjobs-filter-field { display: flex; flex: 1 1 175px; min-width: 0; flex-direction: column; gap: 6px; font-size: 14px; color: #555b64; }
.ppdjobs-hierarchy-filters .ppdjobs-filter-field > input,
.ppdjobs-hierarchy-filters .ppdjobs-filter-field > select { width: 100%; box-sizing: border-box; min-height: 46px; font: inherit; font-size: 16px; }
.ppdjobs-location-picker { position: relative; font-size: 16px; }
.ppdjobs-location-picker summary { cursor: pointer; min-height: 46px; padding: 11px 12px; box-sizing: border-box; border: 1px solid #ddd; border-radius: 8px; background: #fff; }
.ppdjobs-location-options { position: absolute; z-index: 20; top: 100%; left: 0; width: 100%; min-width: 220px; max-height: 280px; overflow-y: auto; box-sizing: border-box; margin: 4px 0 0; padding: 12px; border: 1px solid #ddd; border-radius: 8px; background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.ppdjobs-location-options label { display: flex; align-items: center; gap: 8px; padding: 6px 0; cursor: pointer; }
.ppdjobs-filters .ppdjobs-location-options input[type="checkbox"] { width: 18px; height: 18px; min-height: 0; margin: 0; padding: 0; flex: 0 0 18px; accent-color: #A82025; }
@media(max-width: 620px) { .ppdjobs-hierarchy-filters .ppdjobs-filter-field { flex-basis: 100%; } .ppdjobs-location-options { min-width: 0; } }

.ppdjobs-location-options label[hidden] { display: none; }
.ppdjobs-location-picker summary { overflow-wrap: anywhere; }

/* Region headings remain selectable; towns follow their parent region. */
.ppdjobs-location-options .ppdjobs-location-depth-0 { font-weight: 700; border-top: 1px solid #eee; margin-top: 6px; padding-top: 10px; }
.ppdjobs-location-options .ppdjobs-location-depth-0:first-of-type { border-top: 0; margin-top: 0; }

/* Search sidebar with a flexible results column. */
.ppdjobs-listing-layout { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 28px; align-items: start; }
.ppdjobs-search-sidebar, .ppdjobs-listing-results { min-width: 0; }
.ppdjobs-search-sidebar .ppdjobs-hierarchy-filters { display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 18px; margin: 0; padding: 22px; }
.ppdjobs-search-sidebar .ppdjobs-filter-field { flex: 0 0 auto; width: 100%; }
.ppdjobs-search-sidebar .ppdjobs-filter-heading { margin: 0; color: #545454; font-size: 22px; line-height: 1.25; }
.ppdjobs-search-sidebar .ppdjobs-location-options { position: static; min-width: 0; width: 100%; max-height: 260px; margin-top: 8px; box-shadow: none; }
.ppdjobs-search-sidebar .ppdjobs-button, .ppdjobs-search-sidebar .ppdjobs-reset-filters { width: 100%; box-sizing: border-box; text-align: center; }
.ppdjobs-listing-results .ppdjobs-card h2 { overflow-wrap: anywhere; }
@media (max-width: 1000px) and (min-width: 801px) {
  .ppdjobs-listing-layout { grid-template-columns: 260px minmax(0, 1fr); gap: 20px; }
  .ppdjobs-listing-results .ppdjobs-grid.is-list .ppdjobs-card { grid-template-columns: 140px minmax(0, 1fr) !important; }
  .ppdjobs-listing-results .ppdjobs-grid.is-list .ppdjobs-card-image { width: 120px !important; height: 120px !important; }
}
@media (max-width: 800px) { .ppdjobs-listing-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; } }
@media (max-width: 620px) { .ppdjobs-listing-results .ppdjobs-grid.is-list .ppdjobs-card { grid-template-columns: minmax(0, 1fr) !important; } }

/* Lighter job titles on search result cards. */
.ppdjobs-listing-results .ppdjobs-card h2,
.ppdjobs-listing-results .ppdjobs-card h2 a {
  font-weight: 500 !important;
}

.ppdjobs-work-location-filter summary { cursor:pointer; color:#545454; }
.ppdjobs-work-location-filter select { margin-top:10px; }

/* Job-card classification pills use the site light grey. */
.ppdjobs-card .ppdjobs-card-tags span { background:#F4F5F5; }
