/* ===== Two-column card grid for WP Job Manager list ===== */

/* The UL becomes a responsive grid */
ul.job_listings.wpjm-cards-2{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  list-style: none;
  padding-left: 0;
  padding-top:20px;
}

/* Make each LI a card */
ul.job_listings.wpjm-cards-2 > li.job_listing.wpjm-card{
  margin: 0;
}

/* Anchor as full card surface */
ul.job_listings.wpjm-cards-2 > li.job_listing .wpjm-card__inner{
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #fff;
  border: 1px solid #e5e7eb;        /* soft border */
  border-radius: 14px;
  padding: 14px;
  text-decoration: none;
  transition: box-shadow .15s ease, transform .05s ease, border-color .15s ease;
}

/* Hover affordance */
ul.job_listings.wpjm-cards-2 > li.job_listing .wpjm-card__inner:hover{
  border-color: #d1d5db;
  box-shadow: 0 6px 20px rgba(0,0,0,.06);
  transform: translateY(-1px);
}

/* Title */
ul.job_listings.wpjm-cards-2 .position h3{
  margin: 0 0 6px;
  font-size: 1.05rem;
  line-height: 1.3;
  color: #111827;
}

/* (Optional) hide the tiny "company" line under title if theme adds one */
ul.job_listings.wpjm-cards-2 .position .company{ display:none; }

/* Location — allow wrapping */
ul.job_listings.wpjm-cards-2 .location{
  margin-top: 4px;
  font-size: .95rem;
  color: #374151;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

/* Meta (date etc.) → push to bottom of card */
ul.job_listings.wpjm-cards-2 .meta{ display:none !important; }  /* we synthesize date below */
ul.job_listings.wpjm-cards-2 .wpjm-card__posted{
  margin-top: auto;
  font-size: .9rem;
  color: #6b7280;
}

/* Make the “square” feel: set a minimum height so cards align nicely */
@media (min-width: 768px){
  ul.job_listings.wpjm-cards-2 > li.job_listing .wpjm-card__inner{
    min-height: 50px;
    width: fit-content;
  }
}

/* Mobile: stack to 1 column */
@media (max-width: 719.98px){
  ul.job_listings.wpjm-cards-2{
    grid-template-columns: 1fr;
  }
}
/* Hide numbered pagination if a theme forces it somewhere */
.job_listings .pagination { display:none; }


/* ===== WPJM: Centered Filters + Smaller Buttons ===== */

/* A: Center the entire filter area and constrain width */
.job_filters.wpjm-filters-centered {
  max-width: 1100px;
  margin-inline: auto;
  padding-inline: 12px;
}

/* Make the inner filter row a responsive, centered grid */
.job_filters .search_jobs.wpjm-filters-inner {
  display: grid;
  gap: 10px;
  align-items: end;
  justify-content: center;           /* centers the grid as a block */
  grid-auto-flow: row;
}

/* Desktop layout: keywords / location / category / submit */
@media (min-width: 900px) {
  .job_filters .search_jobs.wpjm-filters-inner {
    grid-template-columns: minmax(220px, 1fr) minmax(200px, 1fr) minmax(180px, 1fr) auto;
  }
}

/* Tablet */
@media (min-width: 600px) and (max-width: 899px) {
  .job_filters .search_jobs.wpjm-filters-inner {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile: single column centered */
@media (max-width: 599px) {
  .job_filters .search_jobs.wpjm-filters-inner {
    grid-template-columns: 1fr;
  }
}

/* Normalize common WPJM filter controls so they line up nicely */
.job_filters .search_jobs.wpjm-filters-inner > * {
  width: 100%;
}
.job_filters .search_jobs.wpjm-filters-inner label {
  display: block;
  font-size: .9rem;
  margin-bottom: 6px;
  color: var(--sj-subtle, #6b7280);
}
.job_filters .search_jobs.wpjm-filters-inner input[type="text"],
.job_filters .search_jobs.wpjm-filters-inner input[type="search"],
.job_filters .search_jobs.wpjm-filters-inner select {
  width: 100%;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid var(--sj-border, #e5e7eb);
  background: #fff;
  box-sizing: border-box;
}

/* If using Select2, keep height compact yet tidy */
.select2-container .select2-selection--single {
  height: 38px;
  border-radius: 10px;
  border-color: var(--sj-border, #e5e7eb);
}
.select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 36px;
  padding-left: 10px;
}
.select2-container .select2-selection--single .select2-selection__arrow {
  height: 36px;
}

/* Center "showing x jobs" and reset links below the form (theme-dependent) */
.showing_jobs, .reset_search {
  text-align: center;
}

/* B: Make buttons smaller (filters + single job apply + generic WPJM buttons) */
.wpjm-compact-buttons .search_jobs input[type="submit"],
.wpjm-compact-buttons .search_jobs button,
.single_job_listing .application_button,
.single_job_listing .job_application input[type="submit"],
.single_job_listing .job_application button,
ul.job_listings .job_listing a.button,
ul.job_listings .job_listing button,
ul.job_listings .job_listing input[type="submit"] {
  padding: 6px 12px;        /* smaller */
  font-size: .9rem;         /* smaller */
  border-radius: 999px;
  line-height: 1.2;
}

/* Preserve your crimson gradient style on primary actions */
.single_job_listing .application_button,
.single_job_listing .job_application input[type="submit"],
.single_job_listing .job_application button,
.wpjm-compact-buttons .search_jobs input[type="submit"],
.wpjm-compact-buttons .search_jobs button[type="submit"] {
  background: linear-gradient(180deg, var(--sj-primary-300, #e06a84), var(--sj-primary, #C2274B));
  border: 1px solid var(--sj-primary-600, #8f1734);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  transition: filter .15s, transform .05s;
}

.wpjm-compact-buttons .search_jobs input[type="submit"]:hover,
.wpjm-compact-buttons .search_jobs button[type="submit"]:hover,
.single_job_listing .application_button:hover,
.single_job_listing .job_application input[type="submit"]:hover,
.single_job_listing .job_application button:hover {
  filter: brightness(1.04) saturate(1.05);
}

/* Optional: tighten vertical gaps inside the filter form */
.job_filters .search_jobs.wpjm-filters-inner .search_keywords,
.job_filters .search_jobs.wpjm-filters-inner .search_location,
.job_filters .search_jobs.wpjm-filters-inner .search_categories {
  margin: 0; /* grid gap handles spacing */
}

/* If your theme adds wide margins, soften them so centering is visually crisp */
.job_filters {
  margin-top: 10px;
  margin-bottom: 14px;
}

/* ===== View More button: compact size (cards only) ===== */
ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta .button,
ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta .wpjm-view-more,
ul.job_listings.wpjm-cards-2 li.job_listing a.wpjm-view-more {
  padding: 6px 10px;     /* smaller */
  font-size: 0.88rem;    /* smaller text */
  line-height: 1.2;
  border-radius: 10px;   /* slightly rounded */
  min-height: 30px;      /* keeps hit area OK */
}

/* Optional: extra-small on narrow screens */
@media (max-width: 480px){
  ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta .button,
  ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta .wpjm-view-more,
  ul.job_listings.wpjm-cards-2 li.job_listing a.wpjm-view-more {
    padding: 5px 9px;
    font-size: 0.84rem;
    min-height: 28px;
  }
}

/* Kill the old 180px card height and set a smaller one */
@media (min-width: 768px){
  ul.job_listings.wpjm-cards-2 > li.job_listing > a {
    min-height: 50px !important;  /* override the 180px */
  }
  /* keep inner flexible; don't constrain width */
  ul.job_listings.wpjm-cards-2 > li.job_listing .wpjm-card__inner{
    min-height: 50px;              /* optional to match */
    width: auto;                    /* avoid shrinking the card */
  }
}

/* Compact only the card CTA button, not global WPJM buttons */
ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta a.button,
ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta .wpjm-view-more {
  padding: 6px 10px !important;
  font-size: 0.88rem !important;
  line-height: 1.2;
  border-radius: 10px;
  min-height: 30px;
}

@media (max-width: 480px){
  ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta a.button,
  ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__cta .wpjm-view-more {
    padding: 5px 9px !important;
    font-size: 0.84rem !important;
    min-height: 28px;
  }
}

/* 1) Let the address wrap fully (no ellipsis/trim) on card list */
ul.job_listings.wpjm-cards-2 li.job_listing .location,
ul.job_listings.wpjm-cards-2 li.job_listing .location a {
  display: block;
  white-space: normal !important;   /* override any nowrap */
  overflow: visible !important;     /* cancel hidden */
  text-overflow: initial !important;/* cancel ellipsis */
  word-break: break-word;           /* long strings wrap */
  max-width: none;                   /* ensure no forced width */
  width: auto !important;                     /* avoid constraining width */
}

/* (Optional) in case a parent was clipping */
ul.job_listings.wpjm-cards-2 li.job_listing .position,
ul.job_listings.wpjm-cards-2 li.job_listing .wpjm-card__inner {
  overflow: visible !important;
}

/* 2) Make the position title/header red (and its link) */
ul.job_listings.wpjm-cards-2 li.job_listing .position h3,
ul.job_listings.wpjm-cards-2 li.job_listing .position h3 a {
  color: #C2274B !important;        /* your crimson */
  font-weight: 800;                  /* punchier header */
}

/* (Optional hover) slightly darker on hover for the title link */
ul.job_listings.wpjm-cards-2 li.job_listing .position h3 a:hover {
  color: #a41f3f !important;        /* crimson-600 */
}

/* WPJM cards: let .position size itself */
ul.job_listings.wpjm-cards-2 li.job_listing a div.position,
ul.job_listings.wpjm-cards-2 li.no_job_listings_found a div.position {
  width: auto !important;
  max-width: 100%;
  /* (optional but recommended if a theme float leaks in) */
  float: none !important;
  padding-left: 0; /* remove the old 42px indent, if you don’t use that icon */
}