/* ============================================================
   JVI MAIN CSS — all component styles, no inline <style> tags
   ============================================================ */

/* ── HOMEPAGE LAYOUT ─────────────────────────────────────────── */

/* ── New Today pill (inline in hero subtitle) ── */
.jvi-new-today-inline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--jvi-green-bg);
  border: 1px solid var(--jvi-green-border);
  color: var(--jvi-green);
  font-size: 11.5px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: var(--jvi-r-full);
  margin-left: 10px;
  vertical-align: middle;
  letter-spacing: .2px;
}
.jvi-new-today-dot {
  width: 7px; height: 7px;
  background: var(--jvi-green);
  border-radius: 50%;
  flex-shrink: 0;
  animation: jvi-pulse 2s ease-in-out infinite;
}

/* ── Most Viewed section ── */
.jvi-most-viewed {
  margin: 4px 0 24px;
}
.jvi-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.jvi-section-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 700;
  color: var(--jvi-muted);
  text-transform: uppercase;
  letter-spacing: .6px;
}
.jvi-section-title svg { color: var(--jvi-amber-mid); flex-shrink: 0; }
.jvi-section-link {
  font-size: 12px;
  color: var(--jvi-muted);
  text-decoration: none;
}
.jvi-section-link:hover { color: var(--jvi-navy); }

.jvi-mv-strip {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}
.jvi-mv-card {
  background: var(--jvi-white);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-md);
  padding: 14px 14px 12px;
  position: relative;
  box-shadow: var(--jvi-shadow-sm);
  transition: box-shadow .15s, border-color .15s;
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: hidden;
}
.jvi-mv-card:hover {
  box-shadow: var(--jvi-shadow-md);
  border-color: #c7daef;
}
.jvi-mv-rank {
  position: absolute;
  top: 9px; right: 9px;
  width: 20px; height: 20px;
  background: var(--jvi-surface-2);
  border-radius: 50%;
  font-size: 10px; font-weight: 800;
  color: var(--jvi-muted);
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.jvi-mv-rank-top { background: var(--jvi-amber-bg); color: var(--jvi-amber); }
.jvi-mv-logo-link { text-decoration: none; }
.jvi-mv-logo {
  width: 36px; height: 36px;
  border-radius: var(--jvi-r-sm);
  border: 1px solid var(--jvi-border);
  overflow: hidden;
  background: var(--jvi-surface);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.jvi-mv-logo img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.jvi-mv-logo-fallback {
  width: 36px; height: 36px;
  border-radius: var(--jvi-r-sm);
  background: var(--jvi-navy-light);
  border: 1px solid #c7daef;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 800; color: var(--jvi-navy);
  flex-shrink: 0;
}
.jvi-mv-title {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--jvi-dark);
  line-height: 1.35;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}
.jvi-mv-title a { color: inherit; text-decoration: none; }
.jvi-mv-title a:hover { color: var(--jvi-navy-mid); }
.jvi-mv-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-top: auto;
}
.jvi-mv-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: var(--jvi-r-full);
  white-space: nowrap;
}
.jvi-mv-badge-public  { background: var(--jvi-navy-light);  color: var(--jvi-navy);   border: 1px solid #c7daef; }
.jvi-mv-badge-private { background: var(--jvi-violet-bg);   color: var(--jvi-violet); border: 1px solid var(--jvi-violet-border); }
.jvi-mv-views {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10.5px;
  color: var(--jvi-subtle);
  white-space: nowrap;
}

@media (max-width: 960px) {
  .jvi-mv-strip {
    grid-template-columns: repeat(3, 1fr);
  }
  .jvi-mv-card:nth-child(n+4) { display: none; }
}
@media (max-width: 600px) {
  .jvi-mv-strip {
    grid-template-columns: repeat(2, 1fr);
  }
  .jvi-mv-card:nth-child(n+3) { display: none; }
}

/* ── New Today bar (above job grid) ── */
.jvi-new-today-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--jvi-green-bg);
  border: 1px solid var(--jvi-green-border);
  border-radius: var(--jvi-r-md);
  padding: 10px 16px;
  margin-bottom: 14px;
}
.jvi-new-today-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.jvi-new-today-text {
  font-size: 13px;
  color: #14532D;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jvi-new-today-text strong { font-weight: 700; }
.jvi-new-today-link {
  flex-shrink: 0;
  font-size: 12px;
  color: var(--jvi-green);
  font-weight: 600;
  text-decoration: none;
  border: 1px solid var(--jvi-green-border);
  padding: 4px 12px;
  border-radius: var(--jvi-r-full);
  background: var(--jvi-white);
  transition: background .15s, color .15s;
  white-space: nowrap;
}
.jvi-new-today-link:hover { background: var(--jvi-green); color: #fff; }

@media (max-width: 600px) {
  .jvi-new-today-bar { flex-direction: column; align-items: flex-start; gap: 8px; }
  .jvi-new-today-text { white-space: normal; }
}

/* Reset any Blocksy container constraints on the home page */
.home .ct-container,
.home .site-main,
.home #primary,
.home .content-area,
.home .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}

.jvi-home-wrap {
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 20px 48px;
  box-sizing: border-box;
  width: 100%;
  overflow-x: hidden;
}

.jvi-home-inner {
  display: grid !important;
  grid-template-columns: 1fr 300px !important;
  gap: 32px;
  align-items: start;
  margin-top: 28px;
  width: 100%;
}

.jvi-home-main  { min-width: 0; }

.jvi-home-sidebar {
  display: flex !important;
  flex-direction: column;
  gap: 24px;
  position: sticky;
  top: 90px;
  min-width: 0;
}

@media (max-width: 960px) {
  .jvi-home-inner {
    grid-template-columns: 1fr !important;
  }
  .jvi-home-sidebar { position: static; }
}

/* ── BADGES ──────────────────────────────────────────────────── */
.jvi-badge {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11.5px; font-weight: 500;
  padding: 3px 9px; border-radius: var(--jvi-r-full);
  white-space: nowrap; line-height: 1.4;
}
.jvi-badge-new      { background: var(--jvi-navy);        color: #fff; }
.jvi-badge-closing  { background: var(--jvi-amber-bg);    color: var(--jvi-amber);  border: 1px solid var(--jvi-amber-border); }
.jvi-badge-urgent   { background: var(--jvi-red-bg);      color: var(--jvi-red);    border: 1px solid var(--jvi-red-border); animation: jvi-pulse 1.5s infinite; }
.jvi-badge-expired  { background: var(--jvi-red-bg);      color: var(--jvi-red);    border: 1px solid var(--jvi-red-border); }
.jvi-badge-loc      { background: var(--jvi-navy-light);  color: var(--jvi-navy);   border: 1px solid #C7DAEF; }
.jvi-badge-public   { background: var(--jvi-navy-light);  color: var(--jvi-navy-mid); border: 1px solid #C7DAEF; }
.jvi-badge-private  { background: var(--jvi-violet-bg);   color: var(--jvi-violet); border: 1px solid var(--jvi-violet-border); }
.jvi-badge-guide    { background: var(--jvi-green-bg);    color: var(--jvi-green);  border: 1px solid var(--jvi-green-border); }
.jvi-views-badge    { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--jvi-muted); }
.jvi-count-badge    { font-size: 11px; font-weight: 600; color: var(--jvi-navy-mid); background: var(--jvi-navy-light); padding: 2px 8px; border-radius: 10px; min-width: 24px; text-align: center; }

@keyframes jvi-pulse {
  0%,100% { opacity: 1; }
  50%      { opacity: .7; }
}

/* ── BUTTONS ─────────────────────────────────────────────────── */
.jvi-btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--jvi-navy); color: #fff; border: none; cursor: pointer;
  border-radius: var(--jvi-r-md); padding: 10px 20px;
  font-size: 13.5px; font-weight: 600; font-family: inherit;
  text-decoration: none; transition: background .15s;
}
.jvi-btn-primary:hover { background: var(--jvi-navy-mid); color: #fff; }
.jvi-btn-outline {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  background: var(--jvi-white); color: var(--jvi-navy);
  border: 1.5px solid var(--jvi-border); cursor: pointer;
  border-radius: var(--jvi-r-md); padding: 9px 18px;
  font-size: 13.5px; font-weight: 600; font-family: inherit;
  text-decoration: none; transition: border-color .15s, background .15s;
}
.jvi-btn-outline:hover { border-color: var(--jvi-navy); background: var(--jvi-navy-light); color: var(--jvi-navy); }
.jvi-btn-full { width: 100%; display: flex; }

/* ── JOB GRID & CARDS ────────────────────────────────────────── */
.jvi-job-grid { display: flex; flex-direction: column; gap: 10px; }

.jvi-job-card {
  background: var(--jvi-white); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg); padding: 16px 18px;
  display: grid; grid-template-columns: 56px 1fr auto; gap: 0 14px;
  align-items: start; position: relative; overflow: hidden;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.jvi-job-card::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  border-radius: 3px 0 0 3px; opacity: 0; transition: opacity .18s;
}
.jvi-job-card:hover { border-color: var(--jvi-navy-mid); box-shadow: var(--jvi-shadow-md); transform: translateY(-1px); }
.jvi-job-card:hover::before { opacity: 1; }
.jvi-job-public::before  { background: var(--jvi-navy); }
.jvi-job-private::before { background: var(--jvi-violet); }
.jvi-job-article::before { background: var(--jvi-green); }

.jvi-card-logo { width: 56px; height: 56px; border-radius: var(--jvi-r-md); border: 1px solid var(--jvi-border); overflow: hidden; display: flex; align-items: center; justify-content: center; background: var(--jvi-surface); flex-shrink: 0; }
.jvi-card-logo img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.jvi-card-logo-fallback { width: 56px; height: 56px; border-radius: var(--jvi-r-md); border: 1px solid var(--jvi-border); background: var(--jvi-navy-light); display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 800; color: var(--jvi-navy); flex-shrink: 0; }
.jvi-card-logo-link { text-decoration: none; }

.jvi-card-body { min-width: 0; }
.jvi-card-title-row { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 6px; margin-bottom: 4px; }
.jvi-card-title { font-size: 15px; font-weight: 700; color: var(--jvi-dark); line-height: 1.3; margin: 0; flex: 1; min-width: 0; }
.jvi-card-title a { color: inherit; text-decoration: none; }
.jvi-card-title a:hover { color: var(--jvi-navy-mid); }
.jvi-card-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 6px; }
.jvi-card-views { font-size: 11px; color: var(--jvi-subtle); display: flex; align-items: center; gap: 3px; }

.jvi-card-right { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; flex-shrink: 0; }
.jvi-card-deadline { text-align: right; }
.jvi-deadline-label { font-size: 10px; font-weight: 700; color: var(--jvi-muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.jvi-deadline-date { font-size: 12.5px; font-weight: 600; color: var(--jvi-dark); }
.jvi-deadline-soon { color: var(--jvi-amber-mid); }

.jvi-card-btn {
  background: var(--jvi-navy); color: #fff; border: none; cursor: pointer;
  border-radius: var(--jvi-r-sm); padding: 8px 14px;
  font-size: 12.5px; font-weight: 600; font-family: inherit;
  text-decoration: none; display: inline-flex; align-items: center; gap: 4px;
  transition: background .15s; white-space: nowrap;
}
.jvi-card-btn:hover { background: var(--jvi-navy-mid); color: #fff; }
.jvi-card-btn-outline { background: none; color: var(--jvi-navy); border: 1.5px solid var(--jvi-border); }
.jvi-card-btn-outline:hover { border-color: var(--jvi-navy); background: var(--jvi-navy-light); }

/* ── SAVE BUTTON ──────────────────────────────────────────────── */
.jvi-save-btn {
  background: none; border: 1.5px solid var(--jvi-border); color: var(--jvi-muted);
  border-radius: var(--jvi-r-sm); padding: 6px 10px; cursor: pointer;
  font-family: inherit; font-size: 12px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 5px;
  transition: border-color .15s, color .15s, background .15s;
}
.jvi-save-btn:hover { border-color: var(--jvi-navy); color: var(--jvi-navy); background: var(--jvi-navy-light); }
.jvi-save-btn.jvi-saved { border-color: var(--jvi-green); color: var(--jvi-green); background: var(--jvi-green-bg); }
.jvi-save-card-btn { border-color: transparent; padding: 6px; }
.jvi-save-card-btn:hover { border-color: var(--jvi-border); }

/* ── SHARE BAR (single post) ─────────────────────────────────── */
.jvi-share-bar {
  display: flex; align-items: center; flex-wrap: wrap; gap: 10px;
  margin: 32px 0 16px; padding: 16px 18px;
  background: var(--jvi-surface); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg);
}
.jvi-share-label { font-size: 13px; font-weight: 600; color: var(--jvi-muted); }
.jvi-wa-share-btn {
  display: inline-flex; align-items: center; gap: 7px;
  background: #25D366; color: #fff; border-radius: var(--jvi-r-md);
  padding: 9px 16px; font-size: 13.5px; font-weight: 700; text-decoration: none;
  transition: background .15s;
}
.jvi-wa-share-btn:hover { background: #1ebe5d; color: #fff; }
.jvi-wa-join-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--jvi-white); color: var(--jvi-navy);
  border: 1.5px solid var(--jvi-border); border-radius: var(--jvi-r-md);
  padding: 8px 14px; font-size: 13px; font-weight: 600; text-decoration: none;
  transition: border-color .15s, background .15s;
}
.jvi-wa-join-btn:hover { border-color: #25D366; color: #25D366; background: #f0fdf4; }

/* ── WHATSAPP BLOCKS ─────────────────────────────────────────── */
.jvi-wa-join-block {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  background: linear-gradient(90deg, #075E54, #128C7E);
  border-radius: var(--jvi-r-lg); padding: 20px 24px; margin: 24px 0;
}
.jvi-wa-join-icon { flex-shrink: 0; }
.jvi-wa-join-text { flex: 1; min-width: 180px; }
.jvi-wa-join-text strong { display: block; font-size: 15px; color: #fff; margin-bottom: 4px; }
.jvi-wa-join-text p { font-size: 13px; color: rgba(255,255,255,.8); margin: 0; }
.jvi-wa-join-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.jvi-btn-wa-primary {
  display: inline-flex; align-items: center; gap: 6px;
  background: #25D366; color: #fff; border-radius: var(--jvi-r-md);
  padding: 9px 18px; font-size: 13px; font-weight: 700; text-decoration: none;
  transition: background .15s; white-space: nowrap;
}
.jvi-btn-wa-primary:hover { background: #1ebe5d; color: #fff; }
.jvi-btn-wa-outline {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25);
  color: #fff; border-radius: var(--jvi-r-md);
  padding: 9px 18px; font-size: 13px; font-weight: 600; text-decoration: none;
  transition: background .15s; white-space: nowrap;
}
.jvi-btn-wa-outline:hover { background: rgba(255,255,255,.25); color: #fff; }

.jvi-wa-sidebar-widget { background: linear-gradient(135deg, #075E54, #128C7E); border-radius: var(--jvi-r-lg); overflow: hidden; }
.jvi-wa-sidebar-header { display: flex; align-items: center; gap: 8px; padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.12); font-size: 13px; font-weight: 700; color: #fff; }
.jvi-wa-sidebar-body { padding: 14px 18px; }
.jvi-wa-sidebar-body p { font-size: 13px; color: rgba(255,255,255,.82); margin: 0 0 12px; line-height: 1.6; }
.jvi-wa-sidebar-body p strong { color: #fff; }
.jvi-wa-sidebar-body .jvi-btn-wa-primary,
.jvi-wa-sidebar-body .jvi-btn-wa-outline { margin-bottom: 8px; justify-content: center; }
.jvi-wa-sidebar-note { font-size: 11px; color: rgba(255,255,255,.55) !important; text-align: center; margin: 8px 0 0 !important; }

/* ── COUNTY WIDGET ────────────────────────────────────────────── */
.jvi-county-widget { background: var(--jvi-white); border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-lg); overflow: hidden; }
.jvi-widget-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--jvi-border); }
.jvi-widget-title { font-size: 13px; font-weight: 700; color: var(--jvi-dark); }
.jvi-widget-link { font-size: 12px; color: var(--jvi-navy); font-weight: 500; text-decoration: none; }
.jvi-widget-link:hover { text-decoration: underline; }
.jvi-county-list { list-style: none; margin: 0; padding: 0; }
.jvi-county-list li a { display: flex; align-items: center; justify-content: space-between; padding: 9px 18px; font-size: 13px; color: var(--jvi-body); text-decoration: none; transition: background .12s, color .12s; }
.jvi-county-list li a:hover { background: var(--jvi-surface); color: var(--jvi-navy); }

/* ── HSE REGION WIDGET ────────────────────────────────────────── */
.jvi-hse-widget { background: var(--jvi-white); border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-lg); overflow: hidden; }
.jvi-hse-region { border-bottom: 1px solid var(--jvi-border); }
.jvi-hse-region:last-child { border-bottom: none; }
.jvi-hse-region-header { width: 100%; display: flex; align-items: center; justify-content: space-between; padding: 11px 18px; cursor: pointer; background: none; border: none; font-family: inherit; text-align: left; transition: background .12s; }
.jvi-hse-region-header:hover { background: var(--jvi-surface); }
.jvi-hse-region-name { font-size: 12.5px; font-weight: 600; color: var(--jvi-dark); }
.jvi-hse-region-meta { font-size: 11px; color: var(--jvi-muted); margin-top: 1px; }
.jvi-hse-right { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.jvi-hse-count { font-size: 11px; font-weight: 600; background: var(--jvi-navy-light); color: var(--jvi-navy); padding: 2px 7px; border-radius: 10px; }
.jvi-hse-chevron { color: var(--jvi-muted); font-size: 12px; transition: transform .2s; }
.jvi-hse-region.jvi-open .jvi-hse-chevron { transform: rotate(180deg); }
.jvi-hse-counties { background: var(--jvi-surface); }
.jvi-hse-county-link { display: flex; align-items: center; justify-content: space-between; padding: 7px 26px; font-size: 12.5px; color: var(--jvi-body); text-decoration: none; transition: background .12s, color .12s; }
.jvi-hse-county-link:hover { background: var(--jvi-navy-light); color: var(--jvi-navy); }

/* ── SEARCH BAR ────────────────────────────────────────────────── */
.jvi-search-wrap {
  background: var(--jvi-navy);
  padding: 20px 24px 24px;
  border-radius: var(--jvi-r-lg);
  margin-bottom: 24px;
}

.jvi-search-form { width: 100%; }

.jvi-search-bar {
  display: flex; align-items: center;
  background: #fff; border: none;
  border-radius: 50px; padding: 5px 5px 5px 20px;
  box-shadow: 0 4px 24px rgba(0,0,0,.18);
  gap: 0; width: 100%; box-sizing: border-box;
}
.jvi-search-field { display: flex; align-items: center; gap: 8px; }
.jvi-search-keyword { flex: 1; min-width: 0; padding: 6px 0; }
.jvi-search-keyword input {
  border: none; outline: none; font-size: 14px; color: #0F172A;
  font-family: inherit; background: none; min-width: 0; width: 100%;
  line-height: 1.5;
}
.jvi-search-keyword input::placeholder { color: #94A3B8; }
.jvi-search-select {
  border-left: 1px solid #E2E8F0;
  padding: 6px 4px 6px 12px;
}
.jvi-search-select select {
  border: none; outline: none; font-size: 13px; color: #334155;
  font-family: inherit; background: none; cursor: pointer;
  padding-right: 4px; font-weight: 500;
}
.jvi-search-submit {
  background: var(--jvi-navy); color: #fff; border: none; cursor: pointer;
  border-radius: 9999px !important; padding: 11px 24px; font-size: 14px; font-weight: 700;
  font-family: inherit; display: flex; align-items: center; gap: 6px;
  flex-shrink: 0; transition: background .15s; white-space: nowrap;
  margin: 4px 4px 4px 8px; line-height: 1;
}
.jvi-search-submit:hover { background: var(--jvi-navy-mid) !important; }

.jvi-search-active-filters { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 10px; font-size: 12px; }
.jvi-filter-label { color: var(--jvi-muted); font-weight: 500; }
.jvi-filter-tag { background: var(--jvi-navy-light); color: var(--jvi-navy); border-radius: var(--jvi-r-full); padding: 3px 10px; display: inline-flex; align-items: center; gap: 5px; font-weight: 500; }
.jvi-filter-tag a { color: var(--jvi-muted); text-decoration: none; font-weight: 700; margin-left: 2px; }
.jvi-filter-tag a:hover { color: var(--jvi-red); }
.jvi-clear-filters { color: var(--jvi-red); font-weight: 600; text-decoration: none; }
.jvi-clear-filters:hover { text-decoration: underline; }

/* ── CLOSING SOON ─────────────────────────────────────────────── */
.jvi-section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; flex-wrap: wrap; gap: 8px; }
.jvi-section-title { font-size: 18px; font-weight: 700; color: var(--jvi-dark); display: flex; align-items: center; gap: 8px; margin: 0; }
.jvi-closing-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--jvi-red); display: inline-block; animation: jvi-pulse 1.5s infinite; }
.jvi-closing-sub { font-size: 13px; color: var(--jvi-muted); }

.jvi-closing-grid { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.jvi-closing-card {
  background: var(--jvi-white); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg); padding: 12px 14px;
  display: flex; align-items: center; gap: 10px;
  text-decoration: none; transition: border-color .15s, box-shadow .15s;
}
.jvi-closing-card:hover { border-color: var(--jvi-amber-mid); box-shadow: var(--jvi-shadow-sm); }
.jvi-closing-logo {
  width: 36px; height: 36px; border-radius: var(--jvi-r-md);
  border: 1px solid var(--jvi-border); overflow: hidden;
  background: var(--jvi-surface); display: flex; align-items: center;
  justify-content: center; flex-shrink: 0;
}
.jvi-closing-logo img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.jvi-closing-body { flex: 1; min-width: 0; }
.jvi-closing-job-title {
  font-size: 12.5px; font-weight: 600; color: var(--jvi-dark);
  line-height: 1.3; margin-bottom: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.jvi-closing-location { font-size: 11px; color: var(--jvi-muted); }
.jvi-closing-badge-wrap { flex-shrink: 0; text-align: right; }
.jvi-closing-date { font-size: 10.5px; color: var(--jvi-muted); margin-top: 2px; }

/* ── RELATED JOBS ─────────────────────────────────────────────── */
.jvi-related-jobs { margin: 40px 0 24px; }
.jvi-related-title { font-size: 18px; font-weight: 700; color: var(--jvi-dark); margin: 0 0 16px; }
.jvi-related-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.jvi-related-card { background: var(--jvi-white); border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-lg); padding: 14px; display: flex; gap: 12px; text-decoration: none; transition: border-color .15s, box-shadow .15s, transform .15s; }
.jvi-related-card:hover { border-color: var(--jvi-navy-mid); box-shadow: var(--jvi-shadow-sm); transform: translateY(-1px); }
.jvi-related-logo { width: 44px; height: 44px; border-radius: var(--jvi-r-md); border: 1px solid var(--jvi-border); overflow: hidden; background: var(--jvi-surface); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.jvi-related-logo img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.jvi-logo-fallback { font-size: 12px; font-weight: 700; color: var(--jvi-navy); background: var(--jvi-navy-light); width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.jvi-related-body { flex: 1; min-width: 0; }
.jvi-related-job-title { font-size: 13px; font-weight: 600; color: var(--jvi-dark); line-height: 1.3; margin-bottom: 5px; }
.jvi-related-meta { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 5px; }
.jvi-related-deadline { font-size: 11px; color: var(--jvi-muted); }

/* ── SAVED JOBS PAGE ─────────────────────────────────────────── */
.jvi-saved-page { max-width: 700px; }
.jvi-saved-empty { text-align: center; padding: 48px 24px; color: var(--jvi-muted); }
.jvi-saved-empty p { margin: 12px 0 20px; font-size: 15px; }
.jvi-saved-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--jvi-border); }
.jvi-saved-item:last-child { border-bottom: none; }
.jvi-saved-item-title a { font-size: 14px; font-weight: 600; color: var(--jvi-dark); text-decoration: none; }
.jvi-saved-item-title a:hover { color: var(--jvi-navy); }
.jvi-saved-remove { padding: 5px 12px; font-size: 12px; }
.jvi-saved-actions { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }

/* ── SEND TO EMAIL FORM ──────────────────────────────────────── */
.jvi-email-form-wrap { margin-top: 20px; }
.jvi-email-form-inner {
  background: var(--jvi-white); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg); padding: 24px;
  box-shadow: var(--jvi-shadow-sm);
}
.jvi-email-form-title { margin: 0 0 6px; font-size: 16px; font-weight: 700; color: var(--jvi-navy); }
.jvi-email-form-sub   { margin: 0 0 16px; font-size: 13.5px; color: var(--jvi-muted); }
.jvi-email-form-row   { display: flex; gap: 10px; flex-wrap: wrap; }
.jvi-email-input {
  flex: 1; min-width: 220px; height: 42px; padding: 0 14px;
  border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-md);
  font-size: 14px; color: var(--jvi-dark); outline: none;
  transition: border-color .15s;
}
.jvi-email-input:focus { border-color: var(--jvi-navy); }
.jvi-email-msg { margin-top: 10px; font-size: 13.5px; min-height: 20px; }
.jvi-email-msg-success { color: #16a34a; }
.jvi-email-msg-error   { color: #dc2626; }

/* ── EMAIL ALERT FORM ────────────────────────────────────────── */
.jvi-alert-signup { background: var(--jvi-white); border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-lg); padding: 24px; max-width: 560px; }
.jvi-alert-signup-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.jvi-alert-signup-header h3 { font-size: 17px; font-weight: 700; color: var(--jvi-dark); margin: 0; }
.jvi-alert-signup > p { font-size: 13px; color: var(--jvi-muted); margin: 0 0 16px; }
.jvi-alert-fields { display: grid; gap: 12px; margin-bottom: 16px; }
.jvi-field label { display: block; font-size: 12px; font-weight: 600; color: var(--jvi-muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 5px; }
.jvi-field input,
.jvi-field select { width: 100%; border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-sm); padding: 9px 12px; font-size: 13.5px; color: var(--jvi-dark); font-family: inherit; outline: none; transition: border-color .15s; }
.jvi-field input:focus, .jvi-field select:focus { border-color: var(--jvi-navy); }
.jvi-alert-note { font-size: 11.5px; color: var(--jvi-subtle); text-align: center; margin: 10px 0 0; }
.jvi-alert-msg { padding: 10px 14px; border-radius: var(--jvi-r-sm); margin-bottom: 14px; font-size: 13.5px; }
.jvi-alert-success { background: var(--jvi-green-bg); color: var(--jvi-green); border: 1px solid var(--jvi-green-border); }
.jvi-alert-error   { background: var(--jvi-red-bg);   color: var(--jvi-red);   border: 1px solid var(--jvi-red-border); }

/* ── GDPR BANNER ─────────────────────────────────────────────── */
.jvi-gdpr-banner {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
  background: var(--jvi-dark); border-top: 1px solid rgba(255,255,255,.08);
  box-shadow: 0 -4px 20px rgba(0,0,0,.18);
}
.jvi-gdpr-inner { max-width: 1200px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.jvi-gdpr-text { display: flex; align-items: flex-start; gap: 10px; flex: 1; min-width: 240px; }
.jvi-gdpr-text svg { flex-shrink: 0; color: var(--jvi-amber-mid); margin-top: 2px; }
.jvi-gdpr-text p { font-size: 13px; color: rgba(255,255,255,.75); margin: 0; line-height: 1.6; }
.jvi-gdpr-text p strong { color: #fff; }
.jvi-gdpr-text a { color: var(--jvi-navy-light); }
.jvi-gdpr-actions { display: flex; gap: 8px; flex-shrink: 0; }
.jvi-gdpr-btn { border-radius: var(--jvi-r-sm); padding: 9px 18px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; border: none; transition: background .15s; }
.jvi-gdpr-decline { background: rgba(255,255,255,.1); color: rgba(255,255,255,.75); }
.jvi-gdpr-decline:hover { background: rgba(255,255,255,.18); color: #fff; }
.jvi-gdpr-accept  { background: var(--jvi-green); color: #fff; }
.jvi-gdpr-accept:hover  { background: var(--jvi-green-mid); }

/* ── TAG GRID (backwards compat) ────────────────────────────── */
.jvi-tag-grid { display: grid; gap: 14px; }
.jvi-tag-grid-cols-1 { grid-template-columns: 1fr; }
.jvi-tag-grid-cols-2 { grid-template-columns: repeat(2,1fr); }
.jvi-tag-grid-cols-3 { grid-template-columns: repeat(3,1fr); }
.jvi-tag-grid-cols-4 { grid-template-columns: repeat(4,1fr); }
.jvi-tag-list-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px; border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-md); background: var(--jvi-white); transition: box-shadow .15s, transform .15s; }
.jvi-tag-list-item:hover { box-shadow: var(--jvi-shadow-sm); transform: translateY(-1px); }
.jvi-tag-thumb { width: 52px; height: 52px; border-radius: var(--jvi-r-md); overflow: hidden; background: var(--jvi-surface); flex-shrink: 0; display: block; }
.jvi-tag-thumb img { width: 100%; height: 100%; object-fit: cover; }
.jvi-tag-title { font-size: 14px; font-weight: 600; margin: 0 0 4px; }
.jvi-tag-title a { color: var(--jvi-dark); text-decoration: none; }
.jvi-tag-title a:hover { color: var(--jvi-navy); }
.jvi-tag-date { font-size: 12px; color: var(--jvi-muted); }
.jvi-tag-card { background: var(--jvi-white); border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-lg); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .15s, transform .15s; }
.jvi-tag-card:hover { box-shadow: var(--jvi-shadow-md); transform: translateY(-2px); }
.jvi-tag-card img { width: 100%; height: 170px; object-fit: cover; display: block; }
.jvi-tag-card-body { padding: 16px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.jvi-tag-card h3 { margin: 0; font-size: 1.05rem; line-height: 1.35; }
.jvi-tag-card p { margin: 0; color: var(--jvi-body); line-height: 1.5; font-size: 13.5px; }
.jvi-tag-btn { margin-top: auto; display: inline-block; padding: 9px 14px; border-radius: var(--jvi-r-md); border: 1.5px solid var(--jvi-border); color: var(--jvi-navy); font-weight: 600; font-size: 13px; text-decoration: none; transition: border-color .15s, background .15s; }
.jvi-tag-btn:hover { border-color: var(--jvi-navy); background: var(--jvi-navy-light); }

/* ── PAGINATION ──────────────────────────────────────────────── */
.jvi-pagination {
  margin-top: 32px; padding-top: 24px;
  border-top: 1px solid var(--jvi-border);
  display: flex; align-items: center; justify-content: center;
  flex-wrap: wrap; gap: 6px;
}
.jvi-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px; padding: 0 10px;
  border-radius: var(--jvi-r-md); font-size: 13.5px; font-weight: 600;
  color: var(--jvi-body); text-decoration: none;
  border: 1px solid var(--jvi-border);
  background: var(--jvi-white);
  transition: background .12s, border-color .12s, color .12s;
}
.jvi-pagination .page-numbers:hover {
  background: var(--jvi-navy-light); border-color: var(--jvi-navy);
  color: var(--jvi-navy);
}
.jvi-pagination .page-numbers.current {
  background: var(--jvi-navy); color: #fff;
  border-color: var(--jvi-navy); cursor: default;
}
.jvi-pagination .page-numbers.dots {
  border-color: transparent; background: transparent;
  color: var(--jvi-muted); cursor: default; letter-spacing: .05em;
}
.jvi-pagination .page-numbers.prev,
.jvi-pagination .page-numbers.next {
  padding: 0 16px; font-weight: 700; color: var(--jvi-navy);
  border-color: var(--jvi-navy-10); background: var(--jvi-navy-light);
}
.jvi-pagination .page-numbers.prev:hover,
.jvi-pagination .page-numbers.next:hover {
  background: var(--jvi-navy); color: #fff; border-color: var(--jvi-navy);
}

/* ── NO RESULTS ──────────────────────────────────────────────── */
.jvi-no-results { color: var(--jvi-muted); font-size: 14px; padding: 16px 0; }
.jvi-no-results-wrap { text-align: center; padding: 56px 24px; }
.jvi-no-results-wrap svg { display: block; margin: 0 auto 20px; }
.jvi-no-results-title { font-size: 1.25rem; font-weight: 700; color: var(--jvi-dark); margin: 0 0 10px; }
.jvi-no-results-sub { font-size: 14.5px; color: var(--jvi-muted); margin: 0 0 24px; }
.jvi-no-results-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 900px) {
  .jvi-closing-grid  { flex-direction: column; }
  .jvi-related-grid  { grid-template-columns: repeat(2,1fr); }
  .jvi-tag-grid-cols-3,
  .jvi-tag-grid-cols-4 { grid-template-columns: repeat(2,1fr); }
}

@media (max-width: 640px) {
  .jvi-job-card { grid-template-columns: 44px 1fr; }
  .jvi-card-right { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; border-top: 1px solid var(--jvi-border); padding-top: 10px; margin-top: 2px; }
  .jvi-card-deadline { text-align: left; }

  .jvi-search-bar { flex-direction: column; border-radius: var(--jvi-r-lg); padding: 0; gap: 0; }
  .jvi-search-keyword { width: 100%; padding: 13px 16px; }
  .jvi-search-divider { width: 100%; height: 1px; margin: 0; }
  .jvi-search-select { width: 100%; padding: 10px 16px; }
  .jvi-search-select select { width: 100%; }
  .jvi-search-submit { width: 100%; border-radius: 0 0 var(--jvi-r-lg) var(--jvi-r-lg); justify-content: center; padding: 13px; }

  .jvi-closing-grid  { grid-template-columns: 1fr; }
  .jvi-related-grid  { grid-template-columns: 1fr; }
  .jvi-tag-grid-cols-2,
  .jvi-tag-grid-cols-3,
  .jvi-tag-grid-cols-4 { grid-template-columns: 1fr; }

  .jvi-wa-join-block { flex-direction: column; text-align: center; }
  .jvi-wa-join-actions { width: 100%; }
  .jvi-btn-wa-primary, .jvi-btn-wa-outline { flex: 1; justify-content: center; }

  .jvi-gdpr-inner { flex-direction: column; gap: 12px; }
  .jvi-gdpr-actions { width: 100%; }
  .jvi-gdpr-btn { flex: 1; }

  .jvi-alert-fields { grid-template-columns: 1fr; }
}

/* ── SINGLE JOB POST ─────────────────────────────────────────── */
.jvi-single-wrap { max-width: 100%; overflow-x: hidden; }

.jvi-single-header {
  display: flex; flex-direction: column;
  background: var(--jvi-white); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg); overflow: hidden;
  margin-bottom: 24px; box-shadow: var(--jvi-shadow-sm);
}
.jvi-single-banner {
  width: 100%; border-radius: var(--jvi-r-md) var(--jvi-r-md) 0 0;
  overflow: hidden; background: var(--jvi-surface);
  border-bottom: 1px solid var(--jvi-border);
}
.jvi-single-banner img {
  width: 100%; height: auto; display: block;
  aspect-ratio: 1200 / 628; object-fit: cover;
}
.jvi-single-logo-fallback {
  width: 64px; height: 64px; border-radius: var(--jvi-r-md);
  background: var(--jvi-navy); color: #fff; font-size: 22px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  margin-bottom: 12px;
}
.jvi-single-header-body { flex: 1; min-width: 0; padding: 24px; }
.jvi-single-title { font-size: 1.45rem; font-weight: 800; color: var(--jvi-navy); margin: 0 0 10px; line-height: 1.3; }
.jvi-single-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.jvi-single-meta { display: flex; align-items: center; gap: 16px; font-size: 12.5px; color: var(--jvi-muted); }
.jvi-single-meta span { display: flex; align-items: center; gap: 5px; }

.jvi-single-content { background: var(--jvi-white); border: 1px solid var(--jvi-border); border-radius: var(--jvi-r-lg); padding: 28px; box-shadow: var(--jvi-shadow-xs); line-height: 1.75; }
.jvi-single-content h2, .jvi-single-content h3 { color: var(--jvi-navy); margin-top: 1.5em; }
.jvi-single-content ul, .jvi-single-content ol { padding-left: 1.4em; }
.jvi-single-content li { margin-bottom: 6px; }
.jvi-single-content a { color: var(--jvi-navy-mid); text-decoration: underline; }

/* ── CLS guard: images inside post content ───────────────────
   WordPress doesn't always write width+height on editor images.
   height:auto + max-width:100% prevents content images from
   causing layout shift as they load (CLS reduction).
   aspect-ratio:auto lets the browser use the intrinsic ratio
   from the width attribute when height is omitted.            */
.jvi-single-content img,
.jvi-single-content figure img,
.jvi-single-content .wp-block-image img,
.jvi-single-content .wp-block-cover img {
  height: auto;
  max-width: 100%;
  aspect-ratio: auto;
  display: block;
}

/* WordPress button blocks inside post content — brighten from dark navy */
.jvi-single-content .wp-block-button__link,
.jvi-single-content .wp-element-button {
  background-color: var(--jvi-navy-mid) !important;
  color: #fff !important;
  text-decoration: none !important;
  border-radius: var(--jvi-r-md) !important;
  padding: 11px 28px !important;
  font-weight: 600 !important;
  transition: background-color .15s !important;
}
.jvi-single-content .wp-block-button__link:hover,
.jvi-single-content .wp-element-button:hover {
  background-color: #2563EB !important;
  color: #fff !important;
}

/* Apply sidebar card */
.jvi-apply-card {
  background: var(--jvi-white); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg); padding: 20px; box-shadow: var(--jvi-shadow-sm);
  display: flex; flex-direction: column; gap: 14px;
}
.jvi-apply-deadline { text-align: center; padding-bottom: 14px; border-bottom: 1px solid var(--jvi-border); }
.jvi-apply-deadline-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--jvi-muted); margin-bottom: 4px; }
.jvi-apply-deadline-date { font-size: 18px; font-weight: 800; color: var(--jvi-navy); }
.jvi-apply-deadline-date.jvi-deadline-soon { color: var(--jvi-red); }
.jvi-apply-days-left { font-size: 12px; font-weight: 600; color: var(--jvi-amber); margin-top: 4px; }
.jvi-save-single-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 11px; border-radius: var(--jvi-r-md);
  border: 1.5px solid var(--jvi-border); background: var(--jvi-surface);
  font-size: 13.5px; font-weight: 600; color: var(--jvi-body);
  cursor: pointer; transition: border-color .15s, background .15s; font-family: inherit;
}
.jvi-save-single-btn:hover, .jvi-save-single-btn.jvi-saved {
  border-color: var(--jvi-navy); background: var(--jvi-navy-light); color: var(--jvi-navy);
}
.jvi-apply-now-btn {
  display: flex; align-items: center; justify-content: center;
  width: 100%; padding: 13px; border-radius: var(--jvi-r-md);
  background: var(--jvi-green); color: #fff;
  font-size: 15px; font-weight: 700; text-decoration: none;
  text-align: center; transition: background .15s, transform .1s;
}
.jvi-apply-now-btn:hover { background: #15803D; color: #fff; transform: translateY(-1px); }
/* Standalone apply block — button left, deadline stacked right */
.jvi-main-apply-block {
  background: var(--jvi-white); border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg); padding: 20px 24px;
  box-shadow: var(--jvi-shadow-sm); margin-bottom: 24px;
  display: flex; flex-direction: row; align-items: center; gap: 0;
}
.jvi-main-apply-btn-col {
  flex: 1; padding-right: 24px;
}
.jvi-main-apply-btn-col .jvi-apply-now-btn { width: 100%; }
.jvi-main-apply-divider {
  width: 1px; align-self: stretch; background: var(--jvi-border); flex-shrink: 0;
}
.jvi-main-apply-deadline {
  flex: 0 0 auto; padding-left: 24px;
  display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center;
}
.jvi-main-apply-deadline .jvi-apply-deadline-label {
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .06em; color: var(--jvi-muted);
}
.jvi-main-apply-deadline .jvi-apply-deadline-date {
  font-size: 18px; font-weight: 800; color: var(--jvi-navy);
}
.jvi-main-apply-deadline .jvi-apply-deadline-date.jvi-deadline-soon { color: var(--jvi-red); }
.jvi-main-apply-deadline .jvi-apply-deadline-time {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 13px; color: var(--jvi-muted);
}
.jvi-main-apply-deadline .jvi-apply-days-left {
  font-size: 11px; font-weight: 700; color: #fff;
  background: var(--jvi-amber-mid); padding: 2px 8px; border-radius: var(--jvi-r-full);
}
@media (max-width: 600px) {
  .jvi-main-apply-block    { flex-direction: column; gap: 16px; }
  .jvi-main-apply-btn-col  { padding-right: 0; width: 100%; }
  .jvi-main-apply-divider  { width: 100%; height: 1px; align-self: auto; }
  .jvi-main-apply-deadline { padding-left: 0; width: 100%; }
}

.jvi-apply-deadline-time {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; color: var(--jvi-muted); margin-top: 3px;
}

/* Email variant — amber tint to distinguish from direct-link green */
.jvi-apply-now-btn[href^="mailto:"] { background: var(--jvi-amber-mid); }
.jvi-apply-now-btn[href^="mailto:"]:hover { background: var(--jvi-amber); color: #fff; }

.jvi-apply-expired { text-align: center; display: flex; flex-direction: column; gap: 10px; }
.jvi-apply-expired p { font-size: 13px; color: var(--jvi-muted); margin: 0; }
.jvi-apply-article-note { font-size: 13px; color: var(--jvi-muted); margin: 0; text-align: center; }

/* Closing date/time bar below post content */
.jvi-content-deadline {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin-top: 28px; padding: 14px 18px;
  background: var(--jvi-amber-bg); border: 1px solid var(--jvi-amber-border);
  border-radius: var(--jvi-r-md); font-size: 13px; color: var(--jvi-body);
}
.jvi-content-deadline svg { flex-shrink: 0; color: var(--jvi-amber); }
.jvi-content-deadline-label { font-weight: 600; color: var(--jvi-amber); }
.jvi-content-deadline-date { font-weight: 700; }
.jvi-content-deadline-date.jvi-deadline-soon { color: var(--jvi-red); }
.jvi-content-deadline-sep { color: var(--jvi-muted); }
.jvi-content-deadline-time { display: inline-flex; align-items: center; gap: 4px; color: var(--jvi-muted); font-size: 12px; }
.jvi-content-deadline-days { margin-left: 4px; padding: 2px 8px; border-radius: var(--jvi-r-full); background: var(--jvi-amber-mid); color: #fff; font-size: 11px; font-weight: 700; }

/* ── ARCHIVE / CATEGORY / COUNTY PAGES ───────────────────────── */

/* Break Blocksy's layout constraints on archive/search/single pages.
   NOTE: .ct-container is intentionally excluded — our custom templates
   (category.php, taxonomy-county.php, single.php, search.php) never emit
   a content-area .ct-container; the only one on the page is inside the
   header, which must NOT be reset. */
.archive .site-main,
.archive #primary,
.archive .content-area,
.archive .entry-content,
.search-results .site-main,
.search-results #primary,
.search-results .content-area,
.search-results .entry-content {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}

.single .site-main,
.single #primary,
.single .content-area {
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  float: none !important;
}

/* Archive layout grid */
.jvi-archive-wrap { width: 100%; overflow-x: hidden; }

.jvi-archive-inner {
  display: grid !important;
  grid-template-columns: 1fr 300px !important;
  gap: 32px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 20px 56px;
  box-sizing: border-box;
}

/* Grid children must have min-width:0 to prevent overflow blowout */
.jvi-archive-main {
  min-width: 0;
  padding: 0;
}

.jvi-archive-sidebar {
  position: sticky !important;
  top: 90px;
  display: flex !important;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Single post layout grid */
.jvi-single-inner {
  display: grid !important;
  grid-template-columns: 1fr 300px !important;
  gap: 36px;
  align-items: start;
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 20px 56px;
  box-sizing: border-box;
}

/* Grid children must have min-width:0 to prevent overflow blowout */
.jvi-single-main {
  min-width: 0;
  padding: 0;
}

.jvi-single-sidebar {
  position: sticky !important;
  top: 90px;
  display: flex !important;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
  visibility: visible !important;
  opacity: 1 !important;
}

.jvi-archive-hero {
  background: var(--jvi-navy);
  padding: 36px 20px 32px;
}
.jvi-archive-hero-inner {
  max-width: 1200px; margin: 0 auto;
}
.jvi-archive-title {
  font-size: 2rem; font-weight: 800; color: #fff; margin: 0 0 8px; line-height: 1.2;
}
.jvi-archive-desc {
  color: rgba(255,255,255,.72); font-size: 15px; margin: 0 0 12px; max-width: 600px;
}
.jvi-archive-count {
  display: inline-flex; align-items: center;
  background: rgba(255,255,255,.12); color: rgba(255,255,255,.9);
  border: 1px solid rgba(255,255,255,.2); border-radius: var(--jvi-r-full);
  font-size: 12px; font-weight: 600; padding: 4px 12px; letter-spacing: .04em;
}
.jvi-archive-search {
  max-width: 1200px; margin: 0 auto; padding: 20px 20px 0;
}

/* ── BREADCRUMBS ────────────────────────────────────────────────── */
.jvi-breadcrumbs { margin: 12px 0 0; }
.jvi-breadcrumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0; list-style: none; margin: 0; padding: 0; }
.jvi-breadcrumbs li { display: inline-flex; align-items: center; font-size: 12px; }
.jvi-breadcrumbs li + li::before { content: '/'; margin: 0 7px; opacity: .4; }
.jvi-breadcrumbs a { color: var(--jvi-muted); text-decoration: none; }
.jvi-breadcrumbs a:hover { color: var(--jvi-navy); text-decoration: underline; }
.jvi-bc-current { color: var(--jvi-subtle); }

/* Breadcrumbs on navy hero background */
.jvi-archive-hero .jvi-breadcrumbs { margin-top: 14px; }
.jvi-archive-hero .jvi-breadcrumbs li + li::before { color: rgba(255,255,255,.35); opacity: 1; }
.jvi-archive-hero .jvi-breadcrumbs a { color: rgba(255,255,255,.72); }
.jvi-archive-hero .jvi-breadcrumbs a:hover { color: #fff; }
.jvi-archive-hero .jvi-bc-current { color: rgba(255,255,255,.45); }

/* Breadcrumbs on single post (light background) */
.jvi-single-main > .jvi-breadcrumbs { margin: 0 0 14px; }

/* ── SHARE BAR ────────────────────────────────────────────────── */
.jvi-share-bar {
  display: flex; align-items: center; gap: 7px; margin-top: 16px; flex-wrap: wrap;
}
.jvi-share-label {
  font-size: 11px; font-weight: 700; color: var(--jvi-muted);
  text-transform: uppercase; letter-spacing: .06em; margin-right: 2px;
}
.jvi-share-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 13px; border-radius: var(--jvi-r-full);
  font-size: 12.5px; font-weight: 600; text-decoration: none;
  border: none; cursor: pointer; font-family: inherit;
  transition: opacity .15s, transform .1s;
  white-space: nowrap;
}
.jvi-share-btn:hover { opacity: .85; transform: translateY(-1px); }
.jvi-share-linkedin { background: #0A66C2; color: #fff; }
.jvi-share-linkedin:hover { color: #fff; }
.jvi-share-wa       { background: #25D366; color: #fff; }
.jvi-share-wa:hover { color: #fff; }
.jvi-share-copy {
  background: var(--jvi-surface-2); color: var(--jvi-body);
  border: 1px solid var(--jvi-border);
}
.jvi-share-copy.jvi-copied { background: var(--jvi-green-bg); color: var(--jvi-green); border-color: var(--jvi-green-border); }

/* ══════════════════════════════════════════════════════════════
   RECENTLY VIEWED STRIP
   ══════════════════════════════════════════════════════════════ */
#jvi-rv-strip { margin-bottom: 20px; }

.jvi-rv-section { margin: 0 0 24px; }

.jvi-rv-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.jvi-rv-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--jvi-white);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-md);
  padding: 10px 12px;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .15s, border-color .15s;
  min-width: 0;
}
.jvi-rv-card:hover {
  box-shadow: var(--jvi-shadow-md);
  border-color: #c7daef;
  color: inherit;
}

.jvi-rv-logo {
  width: 40px; height: 40px;
  flex-shrink: 0;
  border-radius: var(--jvi-r-sm);
  border: 1px solid var(--jvi-border);
  overflow: hidden;
  background: var(--jvi-surface);
  display: flex; align-items: center; justify-content: center;
}
.jvi-rv-logo img { width: 100%; height: 100%; object-fit: contain; padding: 2px; }
.jvi-rv-initials {
  font-size: 13px; font-weight: 800;
  color: var(--jvi-navy-mid);
}

.jvi-rv-body { flex: 1; min-width: 0; }
.jvi-rv-title {
  font-size: 12.5px; font-weight: 600;
  color: var(--jvi-dark);
  line-height: 1.35;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 4px;
}
.jvi-rv-meta {
  display: flex; align-items: center; gap: 5px;
  flex-wrap: wrap;
}
.jvi-rv-county { font-size: 11px; color: var(--jvi-muted); }
.jvi-rv-meta .jvi-badge { font-size: 9px; padding: 1px 6px; }

.jvi-rv-clear {
  background: none; border: none; cursor: pointer; padding: 0;
}

@media (max-width: 960px) {
  .jvi-rv-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
  .jvi-rv-grid { grid-template-columns: 1fr; }
  .jvi-rv-card { padding: 8px 10px; }
}

/* ══════════════════════════════════════════════════════════════
   LOAD MORE BUTTON
   ══════════════════════════════════════════════════════════════ */
.jvi-load-more-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 24px 0 8px;
}

.jvi-load-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--jvi-white);
  border: 2px solid var(--jvi-navy);
  color: var(--jvi-navy);
  padding: 12px 28px;
  border-radius: var(--jvi-r-full);
  font-size: 14px; font-weight: 700;
  cursor: pointer;
  transition: background .15s, color .15s, box-shadow .15s;
}
.jvi-load-more-btn:hover {
  background: var(--jvi-navy);
  color: var(--jvi-white);
  box-shadow: var(--jvi-shadow-md);
}
.jvi-load-more-btn:disabled {
  opacity: .6; cursor: not-allowed;
}
.jvi-lm-icon { transition: transform .2s; }
.jvi-load-more-btn:hover .jvi-lm-icon { transform: translateY(2px); }
.jvi-lm-loading .jvi-lm-icon { animation: jvi-spin .7s linear infinite; }
@keyframes jvi-spin { to { transform: rotate(360deg); } }

.jvi-lm-count {
  font-size: 12px; color: var(--jvi-muted);
}

/* ══════════════════════════════════════════════════════════════
   STICKY APPLY BAR (mobile only)
   ══════════════════════════════════════════════════════════════ */
.jvi-sticky-apply {
  display: none; /* shown only on mobile via media query */
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: var(--jvi-white);
  border-top: 1px solid var(--jvi-border);
  box-shadow: 0 -4px 20px rgba(15,23,42,.12);
  z-index: 998;
  transform: translateY(100%);
  transition: transform .25s ease;
}
.jvi-sticky-apply.jvi-sticky-visible { transform: translateY(0); }

.jvi-sticky-apply-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 14px; /* extra bottom pad for safe area */
  max-width: 640px;
  margin: 0 auto;
}

.jvi-sticky-apply-info {
  flex: 1;
  min-width: 0;
}
.jvi-sticky-apply-title {
  font-size: 13px; font-weight: 700;
  color: var(--jvi-dark);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 2px;
}
.jvi-sticky-apply-days {
  font-size: 11px; font-weight: 600;
  color: var(--jvi-amber);
}
.jvi-sticky-apply-days.jvi-urgent { color: var(--jvi-red); }
.jvi-sticky-apply-deadline {
  font-size: 11px; color: var(--jvi-muted);
}

.jvi-sticky-apply-btn {
  display: inline-flex;
  align-items: center;
  background: var(--jvi-navy);
  color: var(--jvi-white) !important;
  padding: 11px 20px;
  border-radius: var(--jvi-r-full);
  font-size: 14px; font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background .15s;
}
.jvi-sticky-apply-btn:hover { background: var(--jvi-navy-mid); color: #fff !important; }

@media (max-width: 960px) {
  .jvi-sticky-apply { display: block; }
  /* Push page content up so sticky bar doesn't cover the footer */
  body.single { padding-bottom: 70px; }
}

/* ── 404 PAGE ────────────────────────────────────────────────── */
.jvi-404-wrap { max-width: 860px; margin: 0 auto; padding: 60px 20px 80px; text-align: center; }
.jvi-404-code { font-size: 120px; font-weight: 900; color: var(--jvi-navy-light); line-height: 1; letter-spacing: -4px; }
.jvi-404-title { font-size: 2rem; font-weight: 800; color: var(--jvi-navy); margin: 0 0 12px; }
.jvi-404-sub { font-size: 16px; color: var(--jvi-muted); max-width: 480px; margin: 0 auto 28px; line-height: 1.6; }
.jvi-404-search { max-width: 640px; margin: 40px auto; }
.jvi-404-search-label { font-size: 13px; font-weight: 600; color: var(--jvi-muted); margin-bottom: 12px; }
.jvi-404-recent { margin-top: 56px; text-align: left; }
.jvi-404-recent-title { font-size: 1.25rem; font-weight: 700; color: var(--jvi-navy); margin: 0 0 20px; }

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — TABLET  (≤ 960 px)
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 960px) {

  /* --- Archive / Search layout -------------------------------- */
  .jvi-archive-inner {
    grid-template-columns: 1fr !important;
    padding: 20px 16px 40px !important;
    gap: 24px !important;
  }
  .jvi-archive-sidebar {
    position: static !important;
    order: 2;
  }
  .jvi-archive-main { order: 1; }

  /* --- Single post layout ------------------------------------- */
  .jvi-single-inner {
    grid-template-columns: 1fr !important;
    padding: 16px 16px 40px !important;
    gap: 20px !important;
  }
  .jvi-single-sidebar {
    position: static !important;
    order: 2;
  }
  .jvi-single-main { order: 1; }

  /* --- Hero --------------------------------------------------- */
  .jvi-archive-hero { padding: 24px 16px 22px; }
  .jvi-archive-title { font-size: 1.5rem; }
  .jvi-archive-desc { font-size: 14px; }
  .jvi-archive-search { padding: 16px 16px 0; }

  /* --- Header card on single post ----------------------------- */
  .jvi-single-header-body { padding: 16px; }
  .jvi-single-title { font-size: 1.2rem; }

  /* --- Share bar wraps neatly --------------------------------- */
  .jvi-share-bar { gap: 6px; }
  .jvi-share-btn { font-size: 12px; padding: 5px 10px; }

  /* --- Apply header button ------------------------------------ */
  .jvi-apply-header-btn { margin: 8px 0 4px; }

  /* --- Home layout ------------------------------------------- */
  .jvi-home-inner {
    grid-template-columns: 1fr !important;
  }
  .jvi-home-sidebar { position: static; }

  /* --- Closing-soon / related --------------------------------- */
  .jvi-related-grid { grid-template-columns: 1fr; }

  /* --- 404 ---------------------------------------------------- */
  .jvi-404-code { font-size: 80px; }
}

/* ══════════════════════════════════════════════════════════════
   RESPONSIVE — MOBILE  (≤ 640 px)
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {

  /* --- Archive inner padding ---------------------------------- */
  .jvi-archive-inner { padding: 16px 12px 32px !important; }
  .jvi-single-inner  { padding: 12px 12px 32px !important; }

  /* --- Hero --------------------------------------------------- */
  .jvi-archive-hero { padding: 20px 12px 18px; }
  .jvi-archive-title { font-size: 1.3rem; }

  /* --- Single header card ------------------------------------- */
  .jvi-single-header-body { padding: 14px; }
  .jvi-single-title { font-size: 1.1rem; }
  .jvi-single-meta  { flex-direction: column; align-items: flex-start; gap: 6px; }

  /* --- Apply button full width -------------------------------- */
  .jvi-apply-now-btn { font-size: 14px; padding: 12px; }

  /* --- Share bar stacks to 2 rows ---------------------------- */
  .jvi-share-bar { gap: 5px; }

  /* --- Content deadline bar ----------------------------------- */
  .jvi-content-deadline { font-size: 12px; padding: 12px 14px; }

  /* --- Job card -- tighten ------------------------------------ */
  .jvi-job-card { gap: 10px; padding: 14px 12px; }
  .jvi-card-title { font-size: 14px; }
  .jvi-card-logo  { width: 44px; height: 44px; }
  .jvi-card-logo img { width: 44px; height: 44px; }
  .jvi-card-logo-fallback { width: 44px; height: 44px; font-size: 15px; }

  /* card-right stacks inline on very small screens */
  .jvi-card-right { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; border-top: 1px solid var(--jvi-border); padding-top: 10px; margin-top: 2px; }
  .jvi-card-deadline { text-align: left; }

  /* --- Search bar stacks ------------------------------------- */
  .jvi-search-bar    { flex-direction: column; border-radius: var(--jvi-r-lg); padding: 0; gap: 0; }
  .jvi-search-keyword { width: 100%; padding: 13px 16px; }
  .jvi-search-divider { width: 100%; height: 1px; margin: 0; }
  .jvi-search-select  { width: 100%; padding: 10px 16px; }
  .jvi-search-select select { width: 100%; }
  .jvi-search-submit  { width: 100%; border-radius: 0 0 var(--jvi-r-lg) var(--jvi-r-lg); justify-content: center; padding: 13px; }

  /* --- GDPR --------------------------------------------------- */
  .jvi-gdpr-inner   { flex-direction: column; gap: 12px; }
  .jvi-gdpr-actions { width: 100%; }
  .jvi-gdpr-btn     { flex: 1; }

  /* --- WhatsApp join block ------------------------------------ */
  .jvi-wa-join-block   { flex-direction: column; text-align: center; }
  .jvi-wa-join-actions { width: 100%; }
  .jvi-btn-wa-primary, .jvi-btn-wa-outline { flex: 1; justify-content: center; }

  /* --- Tag grids --------------------------------------------- */
  .jvi-tag-grid-cols-2,
  .jvi-tag-grid-cols-3,
  .jvi-tag-grid-cols-4 { grid-template-columns: 1fr; }

  /* --- Alert fields ------------------------------------------ */
  .jvi-alert-fields { grid-template-columns: 1fr; }

  /* --- Closing soon ------------------------------------------ */
  .jvi-closing-grid { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════
   HOMEPAGE HERO + QUICK LINKS
   ══════════════════════════════════════════════════════════════ */

/* Hero block: H1 + dynamic subtitle */
.jvi-home-hero {
  text-align: center;
  padding: 36px 20px 28px;
}

.jvi-home-h1 {
  font-size: clamp(28px, 5vw, 44px);
  font-weight: 800;
  color: var(--jvi-navy);
  line-height: 1.15;
  margin: 0 0 10px;
  letter-spacing: -0.5px;
}

.jvi-home-subtitle {
  font-size: clamp(14px, 2vw, 17px);
  color: var(--jvi-muted);
  margin: 0;
  font-weight: 400;
  line-height: 1.5;
}

/* Quick links: sector + county pills */
.jvi-home-quicklinks {
  padding: 0 0 20px;
}

.jvi-home-quicklinks-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.jvi-ql-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: var(--jvi-r-full);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  background: var(--jvi-white);
  color: var(--jvi-navy);
  border: 1.5px solid var(--jvi-border);
  transition: background .15s, border-color .15s, color .15s;
  white-space: nowrap;
}

.jvi-ql-pill:hover {
  background: var(--jvi-navy);
  color: #fff;
  border-color: var(--jvi-navy);
}

.jvi-ql-pill:hover .jvi-ql-count {
  background: rgba(255,255,255,.2);
  color: #fff;
}

/* County pills: slightly different accent */
.jvi-ql-county {
  color: var(--jvi-body);
}

.jvi-ql-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--jvi-surface);
  color: var(--jvi-muted);
  font-size: 11px;
  font-weight: 700;
  border-radius: 9999px;
  padding: 1px 7px;
  min-width: 22px;
  transition: background .15s, color .15s;
}

@media (max-width: 640px) {
  .jvi-home-hero { padding: 24px 16px 18px; }
  .jvi-home-quicklinks { padding: 0 0 14px; }
  .jvi-home-quicklinks-inner { gap: 6px; }
  .jvi-ql-pill { font-size: 12px; padding: 6px 11px; }
}

/* ══════════════════════════════════════════════════════════════
   ADSENSE AD SLOTS
   ══════════════════════════════════════════════════════════════ */

/* Base wrapper — all slots
   min-height reserves space BEFORE the AdSense script fires,
   preventing layout shift (CLS). Values match the largest
   responsive size each slot renders on mobile. */
.jvi-ad-unit {
  text-align: center;
  overflow: hidden;
  /* Default placeholder colour so empty space looks intentional */
  background: var(--jvi-surface);
  border-radius: var(--jvi-r-sm);
}
/* Suppress AdSense's own label line-height bump */
.jvi-ad-unit ins.adsbygoogle { display: block !important; }

/* Single post — below job description (responsive display, up to 300×250) */
.jvi-ad-below-content {
  min-height: 280px;
  margin: 20px 0;
}

/* Single post — sidebar (300×250) */
.jvi-ad-sidebar {
  min-height: 280px;
}

/* Archive / listing — above pagination (mobile banner 320×50 or 320×100) */
.jvi-ad-above-pagination {
  min-height: 100px;
  margin: 8px 0;
}

/* Category / county archive — below search bar (banner) */
.jvi-ad-archive-hero {
  min-height: 100px;
  margin: 12px 0 16px;
}

/* In-feed slot already has its own padding; reserve fluid height */
.jvi-ad-infeed {
  min-height: 200px;
}

/* On mobile the sidebar slot stacks below content — needs same reserve */
@media (max-width: 960px) {
  .jvi-ad-below-content,
  .jvi-ad-sidebar { min-height: 280px; }
}

/* ── WHATSAPP MOBILE INLINE ──────────────────────────────────
   Hidden on desktop (sidebar widget handles it).
   Shown on mobile/tablet after card 3 on listing pages
   and after job content on single posts.
   ─────────────────────────────────────────────────────────── */
.jvi-wa-mobile-inline { display: none !important; }

@media (max-width: 960px) {
  /* Suppress sidebar widget — replaced by inline placement */
  .jvi-archive-sidebar .jvi-wa-sidebar-widget,
  .jvi-single-sidebar  .jvi-wa-sidebar-widget { display: none !important; }

  /* Show inline widget */
  .jvi-wa-mobile-inline {
    display: block !important;
    margin: 6px 0 10px;
  }
}

/* In-feed: sits inside .jvi-job-grid (flex-direction:column)
   so it naturally stretches full width */
.jvi-ad-infeed {
  width: 100%;
  padding: 6px 0;
  border-top: 1px solid var(--jvi-border);
  border-bottom: 1px solid var(--jvi-border);
  background: var(--jvi-surface);
}

/* Single post: after job description */
.jvi-ad-below-content {
  margin: 28px 0 24px;
  padding-top: 24px;
  border-top: 1px solid var(--jvi-border);
}

/* Single post sidebar */
.jvi-ad-sidebar {
  margin: 0 0 16px;
}

/* Above pagination on listing pages */
.jvi-ad-above-pagination {
  margin: 0 0 20px;
}

/* Category/county: below search bar, above job grid */
.jvi-ad-archive-hero {
  max-width: 900px;
  margin: 0 auto 8px;
  padding: 0 16px;
}

@media (max-width: 960px) {
  .jvi-ad-archive-hero { padding: 0 20px; }
  .jvi-ad-below-content { margin: 20px 0 16px; }
}

@media (max-width: 640px) {
  .jvi-ad-archive-hero { padding: 0 12px; }
  .jvi-ad-below-content { margin: 16px 0 12px; padding-top: 16px; }
}

/* ══════════════════════════════════════════════════════════════
   EMPLOYER TAXONOMY ARCHIVE — single employer page
   ══════════════════════════════════════════════════════════════ */

/* Full-width navy hero */
.jvi-emp-hero {
  background: var(--jvi-navy);
  padding: 40px 20px 36px;
}
.jvi-emp-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 32px;
}

/* Logo card */
.jvi-emp-logo-card {
  flex-shrink: 0;
  width: 110px;
  height: 110px;
  background: #fff;
  border-radius: var(--jvi-r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.22);
}
.jvi-emp-logo-card img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  padding: 10px;
}
.jvi-emp-logo-initials {
  font-size: 30px;
  font-weight: 800;
  color: var(--jvi-navy);
  letter-spacing: -1px;
}

/* Info column */
.jvi-emp-hero-info { flex: 1; min-width: 0; }

.jvi-emp-hero-name {
  font-size: 1.9rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 10px;
  line-height: 1.15;
}

.jvi-emp-hero-desc {
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.65;
  margin: 0 0 16px;
  max-width: 620px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Stats row */
.jvi-emp-stats {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.jvi-emp-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--jvi-r-full);
  padding: 5px 13px;
}
.jvi-emp-stat-muted {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.12);
}
.jvi-emp-stat-num {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}
.jvi-emp-stat-muted .jvi-emp-stat-num { color: rgba(255,255,255,.6); }
.jvi-emp-stat-label {
  font-size: 12px;
  font-weight: 500;
  color: rgba(255,255,255,.72);
}
.jvi-emp-stat-muted .jvi-emp-stat-label { color: rgba(255,255,255,.45); }

/* Website button */
.jvi-emp-website-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  border-radius: var(--jvi-r-full);
  font-size: 12.5px;
  font-weight: 600;
  padding: 5px 14px;
  text-decoration: none;
  transition: background .15s;
  white-space: nowrap;
}
.jvi-emp-website-btn:hover {
  background: rgba(255,255,255,.26);
  color: #fff;
  text-decoration: none;
}

/* Hero breadcrumbs */
.jvi-emp-hero-info .jvi-breadcrumbs              { margin-top: 4px; }
.jvi-emp-hero-info .jvi-breadcrumbs li + li::before { color: rgba(255,255,255,.35); opacity: 1; }
.jvi-emp-hero-info .jvi-breadcrumbs a            { color: rgba(255,255,255,.72); }
.jvi-emp-hero-info .jvi-breadcrumbs a:hover      { color: #fff; }
.jvi-emp-hero-info .jvi-bc-current               { color: rgba(255,255,255,.45); }

/* Section title (live / expired divider) */
.jvi-section-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--jvi-navy);
  margin: 0 0 16px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--jvi-navy-light);
}

/* Expired section */
.jvi-expired-section {
  margin-top: 44px;
  padding-top: 32px;
  border-top: 2px solid var(--jvi-border);
}
.jvi-expired-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--jvi-navy);
  margin: 0 0 6px;
}
.jvi-expired-note {
  font-size: 13px;
  color: var(--jvi-muted);
  margin: 0 0 18px;
}
.jvi-expired-grid { opacity: 0.58; }
.jvi-card-expired .jvi-card-title a { color: var(--jvi-muted); }

/* No-jobs empty state */
.jvi-emp-no-jobs {
  text-align: center;
  padding: 48px 20px 40px;
}
.jvi-emp-no-jobs-icon {
  margin: 0 auto 20px;
  width: 72px; height: 72px;
  border-radius: var(--jvi-r-md);
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: var(--jvi-navy-light);
}
.jvi-emp-no-jobs-icon img {
  max-width: 100%; max-height: 100%;
  object-fit: contain; padding: 8px;
}

/* Responsive — single employer hero */
@media (max-width: 760px) {
  .jvi-emp-hero { padding: 28px 16px 24px; }
  .jvi-emp-hero-inner { gap: 18px; }
  .jvi-emp-logo-card { width: 80px; height: 80px; }
  .jvi-emp-logo-initials { font-size: 22px; }
  .jvi-emp-hero-name { font-size: 1.4rem; }
}
@media (max-width: 480px) {
  .jvi-emp-hero-inner { flex-direction: column; gap: 14px; }
  .jvi-emp-hero-name { font-size: 1.25rem; }
  .jvi-emp-hero-desc { -webkit-line-clamp: 4; }
}

/* ══════════════════════════════════════════════════════════════
   EMPLOYERS DIRECTORY PAGE — page-employers.php
   ══════════════════════════════════════════════════════════════ */

.jvi-emp-dir-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}

/* Each employer card — horizontal row */
.jvi-emp-dir-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-md);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, box-shadow .15s, transform .12s;
}
.jvi-emp-dir-card:hover {
  border-color: var(--jvi-navy-mid);
  box-shadow: var(--jvi-shadow-sm);
  transform: translateY(-1px);
  text-decoration: none;
  color: inherit;
}

/* Logo box inside card */
.jvi-emp-dir-logo {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: var(--jvi-r-sm);
  border: 1px solid var(--jvi-border);
  background: var(--jvi-surface);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.jvi-emp-dir-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  padding: 4px;
}
.jvi-emp-dir-initials {
  font-size: 14px;
  font-weight: 800;
  color: var(--jvi-navy-mid);
  letter-spacing: -.5px;
}

/* Text */
.jvi-emp-dir-body { flex: 1; min-width: 0; }
.jvi-emp-dir-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--jvi-dark);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
  margin-bottom: 3px;
}
.jvi-emp-dir-count {
  font-size: 12px;
  color: var(--jvi-green);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 5px;
}
.jvi-emp-dir-count-none {
  color: var(--jvi-subtle);
  font-weight: 400;
}
.jvi-emp-dir-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}
.jvi-emp-dir-dot-live { background: var(--jvi-green); }

/* Chevron */
.jvi-emp-dir-arrow {
  flex-shrink: 0;
  color: var(--jvi-border-mid);
  transition: color .15s;
}
.jvi-emp-dir-card:hover .jvi-emp-dir-arrow { color: var(--jvi-navy-mid); }

/* Inactive (no jobs) grid — slightly muted */
.jvi-emp-dir-grid-inactive { opacity: 0.65; }
.jvi-emp-dir-card-inactive { background: var(--jvi-surface); }

@media (max-width: 640px) {
  .jvi-emp-dir-grid {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   v2.6.21 — Back to top, progress bar, stats strip,
             A–Z employer directory, search autocomplete
   ============================================================ */

/* ── Back to top ─────────────────────────────────────────────── */
#jvi-back-top {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 42px;
  height: 42px;
  border-radius: var(--jvi-r-full);
  background: var(--jvi-navy);
  color: var(--jvi-white);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--jvi-shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s, visibility .2s, transform .2s, background .15s;
  z-index: 900;
}
#jvi-back-top.jvi-btt-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
#jvi-back-top:hover { background: var(--jvi-navy-mid); }
@media (max-width: 640px) {
  #jvi-back-top { bottom: 72px; right: 16px; }
}

/* ── Reading progress bar ────────────────────────────────────── */
.jvi-progress-bar {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--jvi-navy-mid);
  z-index: 9999;
  transition: width .1s linear;
  border-radius: 0 2px 2px 0;
  pointer-events: none;
}

/* ── Quick stats strip (homepage) ───────────────────────────── */
.jvi-stats-strip {
  background: var(--jvi-white);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg);
  margin: 0 auto 20px;
  max-width: 700px;
  padding: 10px 20px;
}
.jvi-stats-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}
.jvi-stat-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: var(--jvi-muted);
}
.jvi-stat-num {
  font-size: 15px;
  font-weight: 700;
  color: var(--jvi-dark);
}
.jvi-stats-div {
  display: inline-block;
  width: 1px;
  height: 16px;
  background: var(--jvi-border);
  flex-shrink: 0;
}
.jvi-stat-pulse {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--jvi-green);
  flex-shrink: 0;
  animation: jviPulse 2s infinite;
}
@keyframes jviPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%       { opacity: .5; transform: scale(1.3); }
}

/* ── Employer A–Z directory ──────────────────────────────────── */
.jvi-emp-az-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 20px;
  align-items: center;
}
.jvi-emp-az-btn {
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-sm);
  background: var(--jvi-white);
  color: var(--jvi-body);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
  line-height: 1;
}
.jvi-emp-az-btn:hover {
  background: var(--jvi-navy-light);
  border-color: var(--jvi-navy);
  color: var(--jvi-navy);
}
.jvi-emp-az-btn.active {
  background: var(--jvi-navy);
  border-color: var(--jvi-navy);
  color: var(--jvi-white);
}
.jvi-emp-az-search {
  margin-left: auto;
  padding: 6px 12px;
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-sm);
  font-size: 13px;
  width: 200px;
  outline: none;
  transition: border-color .15s;
  background: var(--jvi-white);
  color: var(--jvi-body);
}
.jvi-emp-az-search:focus { border-color: var(--jvi-navy); }
.jvi-emp-az-group { margin-bottom: 32px; }
.jvi-emp-az-letter {
  font-size: 13px;
  font-weight: 700;
  color: var(--jvi-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  border-bottom: 1px solid var(--jvi-border);
  padding-bottom: 6px;
  margin-bottom: 12px;
}
.jvi-emp-az-no-results {
  text-align: center;
  color: var(--jvi-muted);
  font-size: 14px;
  padding: 40px 0;
  display: none;
}
@media (max-width: 640px) {
  .jvi-emp-az-search { width: 100%; margin-left: 0; }
  .jvi-emp-az-controls { gap: 4px; }
  .jvi-emp-az-btn { min-width: 28px; height: 28px; font-size: 11px; padding: 0 6px; }
}

/* ── Search autocomplete dropdown ───────────────────────────── */
.jvi-search-keyword { position: relative; }
.jvi-ac-list {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 260px;
  background: var(--jvi-white);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-md);
  box-shadow: var(--jvi-shadow-md);
  list-style: none;
  margin: 0;
  padding: 4px 0;
  z-index: 1000;
}
.jvi-ac-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  cursor: pointer;
  font-size: 13px;
  color: var(--jvi-body);
  transition: background .1s;
}
.jvi-ac-item:hover,
.jvi-ac-item.jvi-ac-active {
  background: var(--jvi-navy-light);
  color: var(--jvi-navy);
}
.jvi-ac-icon { flex-shrink: 0; color: var(--jvi-muted); }
.jvi-ac-item:hover .jvi-ac-icon,
.jvi-ac-item.jvi-ac-active .jvi-ac-icon { color: var(--jvi-navy); }

/* ============================================================
   v2.8.0 — Social share, print, job type, posted-ago,
             date filter, sticky search, skip link,
             saved-jobs page, no-results suggestions,
             smooth scroll
   ============================================================ */

/* ── Smooth scroll ───────────────────────────────────────────── */
html { scroll-behavior: smooth; }

/* ── Skip-to-content link ────────────────────────────────────── */
.jvi-skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 99999;
  padding: 10px 18px;
  background: var(--jvi-navy);
  color: var(--jvi-white) !important;
  font-size: 13px;
  font-weight: 700;
  border-radius: var(--jvi-r-md);
  text-decoration: none;
  transition: top .15s;
}
.jvi-skip-link:focus { top: 16px; outline: 3px solid var(--jvi-amber); outline-offset: 2px; }

/* ── X (Twitter) share button ────────────────────────────────── */
.jvi-share-x {
  background: var(--jvi-dark);
  color: var(--jvi-white) !important;
  border-color: var(--jvi-dark);
}
.jvi-share-x:hover { background: #1a1a2e; border-color: #1a1a2e; }

/* ── Print button ────────────────────────────────────────────── */
.jvi-print-btn {
  background: var(--jvi-surface-2);
  color: var(--jvi-body) !important;
  border-color: var(--jvi-border);
}
.jvi-print-btn:hover { background: var(--jvi-border); }

/* ── Job type badge ──────────────────────────────────────────── */
.jvi-badge-type {
  background: var(--jvi-surface-2);
  color: var(--jvi-muted);
  border: 1px solid var(--jvi-border-mid);
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: var(--jvi-r-full);
}
.jvi-badge-type-full-time  { background: #EFF6FF; color: #1D4ED8; border-color: #BFDBFE; }
.jvi-badge-type-part-time  { background: #FDF4FF; color: #7E22CE; border-color: #E9D5FF; }
.jvi-badge-type-contract   { background: var(--jvi-amber-bg);   color: var(--jvi-amber);   border-color: var(--jvi-amber-border); }
.jvi-badge-type-permanent  { background: var(--jvi-green-bg);   color: var(--jvi-green);   border-color: var(--jvi-green-border); }
.jvi-badge-type-temporary  { background: var(--jvi-amber-bg);   color: var(--jvi-amber-mid); border-color: var(--jvi-amber-border); }
.jvi-badge-type-internship { background: var(--jvi-navy-light); color: var(--jvi-navy);    border-color: rgba(11,45,89,.20); }

/* ── Posted-ago on cards ─────────────────────────────────────── */
.jvi-card-posted {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--jvi-subtle);
  margin-top: 4px;
}

/* ── Sticky archive search bar ───────────────────────────────── */
.jvi-archive-search {
  position: sticky;
  top: var(--jvi-header-h, 68px);
  z-index: 200;
  background: var(--jvi-surface);
  padding-top: 10px;
  padding-bottom: 10px;
  transition: box-shadow .2s;
}
.jvi-archive-search.jvi-search-stuck {
  box-shadow: var(--jvi-shadow-sm);
}

/* ── No-results suggestions ──────────────────────────────────── */
.jvi-no-results-wrap {
  text-align: center;
  padding: 40px 0 20px;
}
.jvi-no-results-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--jvi-dark);
  margin: 16px 0 8px;
}
.jvi-no-results-sub {
  font-size: 14px;
  color: var(--jvi-muted);
  margin: 0 0 20px;
}
.jvi-no-results-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.jvi-btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 20px;
  background: var(--jvi-navy);
  color: var(--jvi-white) !important;
  border: 2px solid var(--jvi-navy);
  border-radius: var(--jvi-r-md);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.jvi-btn-primary:hover { background: var(--jvi-navy-mid); border-color: var(--jvi-navy-mid); }
.jvi-btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 20px;
  background: transparent;
  color: var(--jvi-navy) !important;
  border: 2px solid var(--jvi-navy);
  border-radius: var(--jvi-r-md);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s;
}
.jvi-btn-outline:hover { background: var(--jvi-navy-light); }
.jvi-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 16px;
  background: transparent;
  color: var(--jvi-muted) !important;
  border: 2px solid var(--jvi-border);
  border-radius: var(--jvi-r-md);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.jvi-btn-ghost:hover { color: var(--jvi-red) !important; border-color: var(--jvi-red); }
.jvi-no-results-suggestions { text-align: left; margin-top: 8px; }
.jvi-nrs-section { margin-bottom: 20px; }
.jvi-nrs-heading {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--jvi-muted);
  margin: 0 0 10px;
}
.jvi-nrs-pills { display: flex; flex-wrap: wrap; gap: 8px; }

/* ── Saved Jobs page ─────────────────────────────────────────── */
.jvi-saved-page-wrap {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 32px;
  max-width: 1200px;
  margin: 32px auto;
  padding: 0 20px;
}
.jvi-saved-container { min-height: 200px; }
.jvi-saved-empty {
  text-align: center;
  padding: 60px 20px;
  color: var(--jvi-muted);
}
.jvi-saved-empty svg { margin-bottom: 16px; display: block; margin-left: auto; margin-right: auto; }
.jvi-saved-empty-title { font-size: 18px; font-weight: 700; color: var(--jvi-dark); margin: 0 0 8px; }
.jvi-saved-empty-sub   { font-size: 14px; margin: 0 0 24px; }
.jvi-saved-list { display: flex; flex-direction: column; gap: 12px; margin-bottom: 24px; }
.jvi-saved-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 18px;
  background: var(--jvi-white);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg);
  transition: box-shadow .15s;
}
.jvi-saved-item:hover { box-shadow: var(--jvi-shadow-sm); }
.jvi-saved-item-title a {
  font-size: 14px;
  font-weight: 600;
  color: var(--jvi-dark);
  text-decoration: none;
}
.jvi-saved-item-title a:hover { color: var(--jvi-navy-mid); }
.jvi-saved-remove {
  flex-shrink: 0;
  padding: 5px 12px;
  font-size: 12px;
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-sm);
  background: var(--jvi-white);
  color: var(--jvi-muted);
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.jvi-saved-remove:hover { color: var(--jvi-red); border-color: var(--jvi-red); }
.jvi-saved-actions { padding: 16px 0 0; border-top: 1px solid var(--jvi-border); }
.jvi-saved-actions-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 0; }
.jvi-saved-email-form {
  background: var(--jvi-surface);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-lg);
  padding: 18px;
  margin-top: 16px;
}
.jvi-saved-email-desc { font-size: 13px; color: var(--jvi-muted); margin: 0 0 12px; }
.jvi-saved-email-row { display: flex; gap: 8px; }
.jvi-saved-email-input {
  flex: 1;
  padding: 9px 12px;
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-sm);
  font-size: 13px;
  outline: none;
  transition: border-color .15s;
}
.jvi-saved-email-input:focus { border-color: var(--jvi-navy); }
.jvi-saved-sidebar { display: flex; flex-direction: column; gap: 20px; }
@media (max-width: 768px) {
  .jvi-saved-page-wrap { grid-template-columns: 1fr; }
  .jvi-saved-sidebar { display: none; }
}

/* ── Print styles ─────────────────────────────────────────────── */
@media print {
  .ct-header, .ct-footer, .site-header, .site-footer,
  footer, header,
  .jvi-single-sidebar, .jvi-archive-sidebar, .jvi-home-sidebar,
  .jvi-sticky-apply, #jvi-back-top, .jvi-progress-bar,
  .jvi-wa-mobile-inline, .jvi-ad-archive-hero, .jvi-ad-below-content,
  .jvi-ad-sidebar, .jvi-ad-above-pagination,
  .jvi-share-bar, .jvi-save-btn, .jvi-breadcrumb,
  .jvi-related-jobs, .jvi-home-hero, .jvi-stats-strip,
  .jvi-home-quicklinks, .jvi-most-viewed,
  nav, .jvi-skip-link { display: none !important; }

  body { background: #fff; color: #000; font-size: 11pt; }
  .jvi-single-wrap, .jvi-single-inner { display: block; max-width: 100%; }
  .jvi-single-main { width: 100%; max-width: 100%; }
  .jvi-single-title { font-size: 18pt; }
  .jvi-single-content { font-size: 11pt; line-height: 1.6; }
  .jvi-apply-now-btn { display: none; }
  a { color: #000; text-decoration: underline; }
  a[href]::after { content: ' (' attr(href) ')'; font-size: 9pt; color: #666; }
}

/* ── v2.9.0 — AdSense CPC improvements ───────────────────────── */

/* In-article ad: breathing room between job description paragraphs */
.jvi-ad-in-article {
  margin: 28px 0;
  clear: both;
}

/* Sticky anchor bar — fixed bottom strip */
.jvi-anchor-ad {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9000;
  background: var(--jvi-white);
  border-top: 1px solid var(--jvi-border);
  box-shadow: 0 -3px 16px rgba(15,23,42,.12);
  padding: 4px 0 0;
}
.jvi-anchor-ad-inner {
  position: relative;
  max-width: 728px;
  margin: 0 auto;
  padding: 0 40px 6px 8px; /* right padding for close button */
}
.jvi-anchor-ad-label {
  display: block;
  font-size: 9px;
  color: var(--jvi-subtle);
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .5px;
  margin-bottom: 2px;
}
.jvi-anchor-ad-close {
  position: absolute;
  top: 0;
  right: 4px;
  background: none;
  border: none;
  cursor: pointer;
  font-size: 20px;
  line-height: 1;
  color: var(--jvi-muted);
  padding: 4px 8px;
  z-index: 1;
  transition: color .15s;
}
.jvi-anchor-ad-close:hover { color: var(--jvi-dark); }

/* Nudge sticky apply bar up so anchor doesn't overlap it on mobile */
@media (max-width: 768px) {
  body.jvi-has-anchor .jvi-sticky-apply { bottom: 72px; }
}

/* ── v2.8.1 — Counties Directory ─────────────────────────────── */
.jvi-county-dir-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 24px;
}
.jvi-county-dir-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  background: var(--jvi-white);
  border: 1px solid var(--jvi-border);
  border-radius: var(--jvi-r-md);
  text-decoration: none;
  color: var(--jvi-dark);
  transition: border-color .15s, box-shadow .15s, transform .15s;
  position: relative;
}
.jvi-county-dir-card:hover {
  border-color: var(--jvi-navy-mid);
  box-shadow: var(--jvi-shadow-md);
  transform: translateY(-2px);
  color: var(--jvi-navy);
}
.jvi-county-dir-card-empty {
  opacity: .65;
}
.jvi-county-dir-card-empty:hover {
  transform: none;
  border-color: var(--jvi-border);
  box-shadow: none;
  cursor: default;
}
.jvi-county-dir-name {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}
.jvi-county-dir-count {
  font-size: 12px;
  color: var(--jvi-green);
  display: flex;
  align-items: center;
  gap: 5px;
}
.jvi-county-dir-count-none {
  color: var(--jvi-subtle);
}
.jvi-county-dir-arrow {
  position: absolute;
  top: 14px;
  right: 14px;
  color: var(--jvi-border-mid);
  transition: color .15s;
}
.jvi-county-dir-card:hover .jvi-county-dir-arrow {
  color: var(--jvi-navy-mid);
}
@media (max-width: 600px) {
  .jvi-county-dir-grid {
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 8px;
  }
}
