/**
 * /travel-nurse-jobs archive (v8 design).
 *
 * Ported from the Advantis-ER-Search-Page-v8 design reference, adapted to:
 * - system fonts (site dev standard; no Google Fonts)
 * - tokens aligned with site-chrome.css / single-job.css
 * - WCAG AA contrast (muted text darkened vs the mock)
 * - media queries instead of the mock's .mobile preview class
 *
 * Everything is scoped under .advantis-jobs-v2 (the page <main>).
 */

/* Astra normally supplies this global reset; the archive is self-contained. */
.advantis-jobs-v2,
.advantis-jobs-v2 *,
.advantis-jobs-v2 *::before,
.advantis-jobs-v2 *::after {
  box-sizing: border-box;
}

.advantis-jobs-v2 {
  /* Tokens — names follow the design mock; values align with site-chrome. */
  --ink: #0f1722;
  --navy: #16263b;
  --slate: #475569;
  --muted: #64748b; /* mock used #7a8898 (3.6:1); darkened for AA */
  --teal: #0ca2d4;
  --teal-d: #0879a2;
  --teal-soft: #e3f6fc;
  --teal-line: #bde8f4;
  --pay: #e0601f; /* warm orange — reserved for pay */
  --pay-d: #c24e14;
  --green: #119a63;
  --green-soft: #e2f5ec;
  --amber: #b76f06; /* mock #d9870c darkened for text-on-white */
  --coral: #e04324;
  --gold1: #c2901e;
  --gold2: #946c0a;
  --panel: #f4f7fa;
  --line: #e5eaf0;
  --line-2: #eef2f6;
  --card: #fff;
  --shadow: 0 1px 2px rgba(15, 23, 34, 0.04), 0 6px 18px rgba(15, 23, 34, 0.06);
  --shadow-lg: 0 16px 48px rgba(15, 23, 34, 0.18);
  --r: 14px;
  --sticky-top: 70px; /* fallback; jobs-archive.js syncs this to the live site-header height */

  background: #fff;
  color: var(--ink);
  font-family: system-ui, "Verdana", sans-serif;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}

.advantis-jobs-v2 .disp {
  font-weight: 700;
  letter-spacing: -0.02em;
}

.advantis-jobs-v2 button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

.advantis-jobs-v2 input,
.advantis-jobs-v2 select {
  font-family: inherit;
}

.advantis-jobs-v2 a {
  text-decoration: none;
}

.advantis-jobs-v2 .wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 26px;
}

/* ===== HERO ===== */
.advantis-jobs-v2 .hero {
  position: relative;
  color: #fff;
  padding: 34px 26px 62px;
  overflow: hidden;
  background:
    radial-gradient(
      120% 85% at 88% -10%,
      rgba(12, 162, 212, 0.4),
      transparent 58%
    ),
    radial-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),
    linear-gradient(135deg, #0b1a2b 0%, #16263b 52%, #0c4d66 100%);
  background-size:
    auto,
    22px 22px,
    auto;
}

.advantis-jobs-v2 .hero .in {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
}

.advantis-jobs-v2 .crumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.72);
  margin-bottom: 11px;
}

.advantis-jobs-v2 .crumb a {
  color: rgba(255, 255, 255, 0.85);
}

.advantis-jobs-v2 .crumb b {
  color: #9fe3f7;
  font-weight: 700;
}

.advantis-jobs-v2 .crumb span {
  opacity: 0.55;
}

.advantis-jobs-v2 .trust {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.advantis-jobs-v2 .trust .tc {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #eaf6fb;
  font-weight: 700;
  font-size: 12px;
  padding: 6px 12px;
  border-radius: 999px;
}

.advantis-jobs-v2 .trust .tc.live .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #4ade80;
  animation: ajp-livep 2s infinite;
}

@keyframes ajp-livep {
  0% {
    box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.5);
  }
  70% {
    box-shadow: 0 0 0 7px rgba(74, 222, 128, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(74, 222, 128, 0);
  }
}

.advantis-jobs-v2 .hero h1 {
  font-size: 38px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  max-width: 840px;
  margin: 0;
  color: #fff;
}

.advantis-jobs-v2 .heroline {
  color: rgba(255, 255, 255, 0.82);
  font-size: 14.5px;
  line-height: 1.55;
  max-width: 760px;
  margin: 7px 0 0;
}

/* ===== STICKY SEARCH + FILTERS ===== */
.advantis-jobs-v2 .sticky {
  position: sticky;
  top: var(--sticky-top);
  z-index: 200;
  transition:
    background 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

.advantis-jobs-v2 .sticky:not(.stuck) {
  background: transparent;
}

.advantis-jobs-v2 .sticky:not(.stuck) .stickin {
  max-width: 1080px;
  margin: -46px auto 0;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: var(--shadow-lg);
  padding: 18px 20px;
}

.advantis-jobs-v2 .sticky.stuck {
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 6px 20px rgba(15, 23, 34, 0.1);
}

.advantis-jobs-v2 .sticky.stuck .stickin {
  max-width: 1280px;
  margin: 0 auto;
  padding: 13px 26px;
}

.advantis-jobs-v2 .stickin {
  display: flex;
  flex-direction: column;
  gap: 11px;
  /* Constant transparent base border: the un-stuck card's 1px line then fades
	   in/out via border-color only, never from the default dark currentColor
	   (which flashed as a black hairline on un-stick). */
  border: 1px solid transparent;
  /* Settle between the floating limited-width card and the full-width stuck
	   bar: width/padding/offset and the card chrome ease in together. One-shot
	   on the .stuck toggle (jobs-archive.js); suppressed on first paint and
	   under reduced motion. background-color is deliberately not transitioned so
	   the card fill stays opaque and never goes see-through over the dark hero
	   mid-settle. */
  transition:
    max-width 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    padding 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    margin 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    border-radius 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.34s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.34s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Don't run the settle on the very first paint (e.g. a page loaded already
   scrolled past the pin point); animate only on a real stuck/un-stuck change. */
.advantis-jobs-v2 .sticky--no-anim,
.advantis-jobs-v2 .sticky--no-anim .stickin {
  transition: none !important;
}

.advantis-jobs-v2 .searchrow {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 0;
}

.advantis-jobs-v2 .sbar {
  position: relative;
  flex: 1;
  display: flex;
  align-items: center;
  gap: 11px;
  background: #fff;
  border: 1.8px solid var(--line);
  border-radius: 13px;
  height: 54px;
  padding: 0 16px;
  transition: 0.2s;
  min-width: 0;
}

.advantis-jobs-v2 .sticky.stuck .sbar {
  height: 46px;
  padding: 0 14px;
}

.advantis-jobs-v2 .sbar:focus-within {
  border-color: var(--teal);
  box-shadow: 0 0 0 4px var(--teal-soft);
}

.advantis-jobs-v2 .sbar > svg {
  width: 20px;
  height: 20px;
  color: var(--teal);
  flex: none;
}

.advantis-jobs-v2 .sbar input {
  border: none;
  outline: none;
  flex: 1;
  font-size: 16px;
  background: transparent;
  min-width: 0;
  font-weight: 500;
  color: var(--ink);
  /* Right room for the clear button (kept reserved so text never slides under it). */
  padding: 0 28px 0 0;
}

.advantis-jobs-v2 .sbar input::placeholder {
  color: var(--muted);
  font-weight: 400;
}

/* Inline clear (×): shown only while the field holds text (placeholder hidden).
   Absolutely placed so toggling it never reflows the field; it fades + scales
   in (transform/opacity only, no layout animation). */
.advantis-jobs-v2 .sclear {
  position: absolute;
  right: 13px;
  top: 50%;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  opacity: 0;
  transform: translateY(-50%) scale(0.7);
  pointer-events: none;
  transition:
    opacity 0.15s ease,
    transform 0.15s cubic-bezier(0.22, 1, 0.36, 1),
    color 0.15s ease,
    background 0.15s ease;
}

.advantis-jobs-v2 .sbar input:not(:placeholder-shown) ~ .sclear {
  opacity: 1;
  transform: translateY(-50%) scale(1);
  pointer-events: auto;
}

.advantis-jobs-v2 .sclear:hover {
  color: var(--slate);
  background: var(--panel);
}

.advantis-jobs-v2 .sclear:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}

.advantis-jobs-v2 .sclear svg {
  width: 14px;
  height: 14px;
}

.advantis-jobs-v2 .gobtn {
  background: var(--ink);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  height: 54px;
  padding: 0 26px;
  border-radius: 13px;
  white-space: nowrap;
  transition: 0.2s;
  flex: none;
}

.advantis-jobs-v2 .sticky.stuck .gobtn {
  height: 46px;
  padding: 0 22px;
  font-size: 14.5px;
}

.advantis-jobs-v2 .gobtn:hover {
  background: var(--teal-d);
  color: #fff;
}

/* Mobile-only search-row controls: the arrow-icon submit and the all-filters
   icon are hidden on desktop (the text "Search" button and the in-row Sort/More
   controls handle it there). Shown in the @media (max-width: 700px) block. */
.advantis-jobs-v2 .gobtn-icon,
.advantis-jobs-v2 .topfbtn {
  display: none;
}

.advantis-jobs-v2 .filtrow {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.advantis-jobs-v2 .fanchor {
  position: relative;
  flex: 0 0 176px;
  min-width: 0;
}

.advantis-jobs-v2 .sortanchor {
  flex: 0 0 156px;
}

.advantis-jobs-v2 .fanchor label {
  position: absolute;
  top: 7px;
  left: 14px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--muted);
  pointer-events: none;
  z-index: 1;
  margin: 0;
}

.advantis-jobs-v2 .fanchor select,
.advantis-jobs-v2 .fanchor .advs-trigger {
  width: 100%;
  /* Astra's base form CSS sets a fixed 40px select height; the floating
	   label needs the taller box. */
  height: 54px;
  min-height: 54px;
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  background-image: none;
  border: 1.8px solid var(--line);
  border-radius: 12px;
  padding: 22px 36px 9px 14px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--slate);
  cursor: pointer;
  transition: 0.15s;
  line-height: 1.3;
}

.advantis-jobs-v2 .fanchor select:hover,
.advantis-jobs-v2 .fanchor .advs-trigger:hover {
  border-color: var(--slate);
}

.advantis-jobs-v2 .fanchor select:focus,
.advantis-jobs-v2 .fanchor .advs-trigger:focus-visible,
.advantis-jobs-v2 .fanchor .advs-trigger.is-open {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-soft);
}

.advantis-jobs-v2 .fanchor .chev {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 15px;
  height: 15px;
  color: var(--slate);
  pointer-events: none;
}

.advantis-jobs-v2 .fanchor.filled select,
.advantis-jobs-v2 .fanchor.filled .advs-trigger {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal-d);
  font-weight: 700;
}

.advantis-jobs-v2 .fanchor.filled label {
  color: var(--teal-d);
}

.advantis-jobs-v2 .fanchor.filled .chev {
  color: var(--teal-d);
}

/* The RN abbreviation is server-rendered so the native select's first paint
   matches the enhanced trigger. The full option label remains available when
   the dropdown opens and when JavaScript is unavailable. */
.advantis-jobs-v2 .fanchor .fservervalue {
  display: none;
  position: absolute;
  z-index: 1;
  top: 22px;
  right: 36px;
  left: 14px;
  overflow: hidden;
  color: var(--teal-d);
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.3;
  pointer-events: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.advantis-jobs-v2
  #fCat:not([data-adv-enhanced]):has(option[data-slug="rn"]:checked) {
  color: transparent;
}

.advantis-jobs-v2
  #fCat:not([data-adv-enhanced]):has(option[data-slug="rn"]:checked)
  ~ .fservervalue {
  display: block;
}

/* Data-driven twin of the #fCat rules above, for the specialty anchor: PHP knows
   which specialty is selected and only renders .fservervalue when it has a short
   label, so the condition lives on the class rather than a per-slug :has(). */
.advantis-jobs-v2 .fanchor.has-servervalue select:not([data-adv-enhanced]) {
  color: transparent;
}

.advantis-jobs-v2
  .fanchor.has-servervalue
  select:not([data-adv-enhanced])
  ~ .fservervalue {
  display: block;
}

.advantis-jobs-v2 .fanchor.recommend select,
.advantis-jobs-v2 .fanchor.recommend .advs-trigger {
  border-color: var(--amber);
  background: #fffbf2;
  color: var(--ink);
  box-shadow: 0 0 0 3px rgba(217, 135, 12, 0.18);
  animation: ajp-nudge 1.8s ease-in-out infinite;
}

@keyframes ajp-nudge {
  0%,
  100% {
    box-shadow: 0 0 0 3px rgba(217, 135, 12, 0.16);
  }
  50% {
    box-shadow: 0 0 0 6px rgba(217, 135, 12, 0.06);
  }
}

.advantis-jobs-v2 .fanchor .nexttag {
  position: absolute;
  top: -10px;
  right: 10px;
  background: var(--amber);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 3px 8px;
  border-radius: 999px;
  display: none;
  z-index: 3;
  box-shadow: 0 3px 8px rgba(217, 135, 12, 0.4);
}

.advantis-jobs-v2 .fanchor.recommend .nexttag {
  display: block;
}

/* Category with no specialties (e.g. LPN): filter is inert, not clickable. */
.advantis-jobs-v2 .fanchor.is-disabled {
  opacity: 0.55;
}

.advantis-jobs-v2 .fanchor.is-disabled select,
.advantis-jobs-v2 .fanchor.is-disabled .advs-trigger {
  cursor: not-allowed;
  background: #f4f6f8;
  border-color: var(--line);
  color: var(--slate);
  pointer-events: none;
}

.advantis-jobs-v2 .fanchor.is-disabled .fclear {
  display: none;
}

.advantis-jobs-v2 .fanchor .fclear {
  position: absolute;
  top: -9px;
  right: -7px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  border: 1.6px solid var(--line);
  color: var(--slate);
  /* The × is drawn with the ::before/::after bars below so it stays optically
     centered regardless of font metrics; hide the literal glyph. */
  font-size: 0;
  line-height: 1;
  display: none;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 4;
  box-shadow: 0 2px 6px rgba(15, 23, 34, 0.14);
  padding: 0;
}

.advantis-jobs-v2 .fanchor .fclear::before,
.advantis-jobs-v2 .fanchor .fclear::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 1px;
  border-radius: 1px;
  background: currentColor;
}

.advantis-jobs-v2 .fanchor .fclear::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.advantis-jobs-v2 .fanchor .fclear::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.advantis-jobs-v2 .fanchor.filled .fclear {
  display: flex;
}

/* A category the specialty implies (ICU -> RN) has nothing to clear: the URL
   cannot express "ICU specialty, no category", so the × would only snap back.
   Must stay after .filled above — same specificity, later wins. */
.advantis-jobs-v2 .fanchor.cat-implied .fclear {
  display: none;
}

.advantis-jobs-v2 .fanchor .fclear:hover {
  border-color: var(--coral);
  color: var(--coral);
}

/* Visually hidden but still available to assistive tech — used by the
   icon-only Sort control's label. */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.advantis-jobs-v2 .locanchor {
  flex: 1 0 176px;
  max-width: 270px;
}

.advantis-jobs-v2 .locanchor input#fLoc {
  width: 100%;
  height: 54px;
  min-height: 54px;
  box-sizing: border-box;
  background: #fff;
  border: 1.8px solid var(--line);
  border-radius: 12px;
  padding: 22px 38px 9px 14px;
  /* 16px, not smaller: iOS Safari auto-zooms on focus of any input under 16px. */
  font-size: 16px;
  font-weight: 600;
  color: var(--slate);
  transition: 0.15s;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
}

.advantis-jobs-v2 .locanchor input#fLoc::placeholder {
  color: var(--muted);
  font-weight: 500;
}

.advantis-jobs-v2 .locanchor input#fLoc:hover {
  border-color: var(--slate);
}

.advantis-jobs-v2 .locanchor input#fLoc:focus {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-soft);
}

.advantis-jobs-v2 .locanchor.filled input#fLoc {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal-d);
  font-weight: 700;
}

.advantis-jobs-v2 .locanchor.filled label {
  color: var(--teal-d);
}

/* City page: field shows the city name for context but is locked (results
   are already scoped server-side to that city). Declared after .filled above
   — same specificity, later wins — since a locked field is also .filled.
   #fLoc is a plain input, not a select, so it needs its own rule alongside
   the generic .fanchor.is-disabled select/.advs-trigger styling above. */
.advantis-jobs-v2 .locanchor.is-disabled input#fLoc {
  cursor: not-allowed;
  background: #f4f6f8;
  color: var(--slate);
}

.advantis-jobs-v2 .locanchor.is-disabled .locpin {
  display: none;
}

/* Same specificity as .fanchor.filled .fclear (line ~633) — a locked field
   is also .filled, so this must come after it in source order to win. */
.advantis-jobs-v2 .locanchor.is-disabled .fclear {
  display: none;
}

/* "Nearest" picked with no location yet: same amber nudge treatment as the
   Category/Specialty/State .recommend state, including the pulse and the
   .nexttag badge (inherited from the generic .fanchor rules). Declared after
   the :focus rule above so it wins — the field is focused programmatically
   the moment this class is added. */
.advantis-jobs-v2 .locanchor.recommend input#fLoc {
  border-color: var(--amber);
  background: #fffbf2;
  color: var(--ink);
  box-shadow: 0 0 0 3px rgba(217, 135, 12, 0.18);
  animation: ajp-nudge 1.8s ease-in-out infinite;
}

.advantis-jobs-v2 .locanchor .locpin {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0;
  color: var(--slate);
  cursor: pointer;
  z-index: 2;
}

.advantis-jobs-v2 .locanchor .locpin svg {
  width: 18px;
  height: 18px;
}

.advantis-jobs-v2 .locanchor .locpin:hover,
.advantis-jobs-v2 .locanchor.filled .locpin {
  color: var(--teal-d);
}

/* Google Places Autocomplete suggestion dropdown (#fLoc). Google appends
   .pac-container to <body> at runtime — a sibling of .advantis-jobs-v2, not
   a descendant — so it can't inherit that scope's CSS custom properties;
   colors below are hardcoded copies of --ink/--line/--muted/--teal-d/
   --teal-soft rather than var() references. Google also injects its own
   stylesheet after ours loads, so these use !important to reliably win
   regardless of that injection order. Matches the look of our own
   .advs-panel/.advs-opt custom-select dropdown.
   The "powered by Google" attribution (.pac-logo:after) is a Google Maps
   Platform ToS requirement — never hidden, only its spacing is touched. */
.pac-container {
  border: 1px solid #e5eaf0 !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 48px rgba(15, 23, 34, 0.18) !important;
  margin-top: 6px !important;
  padding: 6px !important;
  font-family: system-ui, "Verdana", sans-serif !important;
}

.pac-item {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 9px 10px !important;
  border-top: none !important;
  border-radius: 9px !important;
  font-family: system-ui, "Verdana", sans-serif !important;
  font-size: 14px !important;
  color: #0f1722 !important;
  cursor: pointer !important;
}

.pac-item:hover,
.pac-item-selected,
.pac-item-selected:hover {
  background: #e3f6fc !important;
}

.pac-icon {
  display: none !important;
}

.pac-item-query {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #0f1722 !important;
  padding-right: 2px !important;
}

.pac-matched {
  font-weight: 700 !important;
  color: #0879a2 !important;
}

/* The trailing secondary-text span (state/country) is the only unclassed
   child — target it by exclusion. */
.pac-item > span:not(.pac-icon):not(.pac-item-query) {
  font-size: 12.5px !important;
  color: #64748b !important;
}

.pac-logo:after {
  margin: 6px 6px 2px !important;
}

.advantis-jobs-v2 .morebtn {
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1.8px solid var(--line);
  background: #fff;
  border-radius: 12px;
  padding: 0 16px;
  height: 54px;
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  white-space: nowrap;
  transition: 0.15s;
}

.advantis-jobs-v2 .morebtn:hover {
  border-color: var(--slate);
}

.advantis-jobs-v2 .morebtn svg {
  width: 16px;
  height: 16px;
}

.advantis-jobs-v2 .morebtn .badge {
  background: var(--teal-d);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 999px;
}

/* Icon-only Sort (54×54 square, matches .favbtn) — the native select's
   visible presentation is adv-select's .advs-trigger/.advs-value, not the
   select itself (adv-select.css shrinks the native element to 1px). */
.advantis-jobs-v2 .sortanchor.iconOnly {
  flex: 0 0 54px;
}

.advantis-jobs-v2 .sortanchor.iconOnly select,
.advantis-jobs-v2 .sortanchor.iconOnly .advs-trigger {
  padding: 0;
}

/* Hides the native select's own selected-option text (e.g. "Highest pay")
   at the CSS layer so nothing flashes before adv-select.js enhances it on
   load — the .advs-value clip rule below only covers the post-enhancement
   state. */
.advantis-jobs-v2 .sortanchor.iconOnly select {
  color: transparent;
}

.advantis-jobs-v2 .sortanchor.iconOnly .advs-trigger .advs-value {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.advantis-jobs-v2 .sortanchor.iconOnly .sorticon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 19px;
  height: 19px;
  color: var(--ink);
  pointer-events: none;
  z-index: 1;
}

/* Icon-only More filters (54×54 square, matches .favbtn) */
.advantis-jobs-v2 .morebtn.iconOnly {
  position: relative;
  flex: 0 0 54px;
  width: 54px;
  justify-content: center;
}

.advantis-jobs-v2 .morebtn.iconOnly svg {
  width: 18px;
  height: 18px;
}

.advantis-jobs-v2 .morebtn.iconOnly .badge:not([hidden]) {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  display: grid;
  place-items: center;
  line-height: 1;
}

/* Favorites */
.advantis-jobs-v2 .favwrap {
  position: relative;
  display: inline-block;
  margin-left: auto;
}

.advantis-jobs-v2 .favbtn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 54px;
  height: 54px;
  padding: 0; /* Astra's global button padding would squeeze the icon to 0 */
  border: 1.8px solid var(--line);
  border-radius: 12px;
  background: #fff;
  transition: 0.15s;
}

.advantis-jobs-v2 .favbtn:hover {
  border-color: var(--slate);
}

.advantis-jobs-v2 .favbtn svg {
  width: 20px;
  height: 20px;
  flex: none;
  stroke: var(--ink);
  fill: none;
  stroke-width: 2;
}

.advantis-jobs-v2 .favbtn.has svg {
  fill: var(--coral);
  stroke: var(--coral);
}

.advantis-jobs-v2 .favnum {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--coral);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: grid;
  place-items: center;
  line-height: 1;
  /* Trim the font's half-leading so the cap-to-baseline box is what gets
     centered — the numeral (no descenders) sits dead-center instead of high.
     Ignored by browsers without leading-trim support (falls back to the
     ~1px-high default, no breakage). */
  text-box: trim-both cap alphabetic;
}

.advantis-jobs-v2 .favbtn:not(.has) .favnum {
  display: none;
}

.advantis-jobs-v2 .favpanel {
  position: absolute;
  top: 62px;
  right: 0;
  width: 300px;
  max-width: 86vw;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow-lg);
  padding: 14px;
  z-index: 60;
}

.advantis-jobs-v2 .favhd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  margin-bottom: 6px;
}

.advantis-jobs-v2 .favclose {
  font-size: 20px;
  color: var(--muted);
  line-height: 1;
  padding: 0 4px;
}

.advantis-jobs-v2 .favitem {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-top: 1px solid var(--line);
}

.advantis-jobs-v2 .favitem .ft {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
}

.advantis-jobs-v2 .favitem .ft a {
  color: var(--teal-d);
}

.advantis-jobs-v2 .favitem .fl {
  font-size: 12px;
  color: var(--muted);
  margin-top: 1px;
}

.advantis-jobs-v2 .favx {
  font-size: 18px;
  color: var(--muted);
  line-height: 1;
  padding: 0 4px;
}

.advantis-jobs-v2 .favempty {
  font-size: 13px;
  color: var(--slate);
  padding: 8px 0 10px;
  line-height: 1.4;
}

/* ===== MARKET STRIP ===== */
.advantis-jobs-v2 .market {
  background: var(--panel);
  border-bottom: 1px solid var(--line);
}

.advantis-jobs-v2 .marketin {
  max-width: 1280px;
  margin: 0 auto;
  padding: 15px 26px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.advantis-jobs-v2 .market .scope {
  font-weight: 700;
  letter-spacing: -0.01em;
  font-size: 17px;
  margin-right: 4px;
}

.advantis-jobs-v2 .mstat {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 0 16px;
  border-left: 1px solid var(--line);
}

.advantis-jobs-v2 .mstat .v {
  font-weight: 700;
  font-size: 16px;
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 5px;
}

.advantis-jobs-v2 .mstat .v.pay-v {
  color: var(--pay);
}

.advantis-jobs-v2 .mstat .v.up {
  color: var(--green);
}

.advantis-jobs-v2 .mstat .l {
  font-size: 12px;
  color: var(--slate);
  font-weight: 600;
}

/* "Explore this market" landing-section jump. */
.advantis-jobs-v2 .explainmkt {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 700;
  color: var(--teal-d);
  background: #fff;
  border: 1px solid var(--teal-line);
  border-radius: 999px;
  padding: 8px 15px;
  cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
}

.advantis-jobs-v2 .explainmkt:hover {
  background: var(--teal-soft);
}

.advantis-jobs-v2 .explainmkt svg {
  width: 15px;
  height: 15px;
}

/* Offset in-page scroll/anchor targets so the sticky header + filter bar don't
   cover the top of the section. --sticky-stack (header + bar) is kept in sync by
   jobs-archive.js; the fallback covers a no-JS first paint. Honoured by both
   scrollIntoView() and native #fragment jumps. */
.advantis-jobs-v2 #mkt-data,
.advantis-jobs-v2 #mkt-snapshot,
.advantis-jobs-v2 #mkt-city-glance,
.advantis-jobs-v2 #facilities,
.advantis-jobs-v2 #landingSections,
.advantis-jobs-v2 .landing-sections .lsec {
  scroll-margin-top: calc(var(--sticky-stack, 220px) + 14px);
}

.advantis-jobs-v2 .infodot {
  display: inline-grid;
  place-items: center;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #cfd9e3;
  color: #36465a;
  font-size: 9px;
  font-weight: 700;
  font-style: normal;
  cursor: help;
  position: relative;
  vertical-align: middle;
  margin-left: 4px;
}

.advantis-jobs-v2 .infodot .tip {
  position: absolute;
  /* Opens downward: upward would compete with the sticky filter bar. */
  top: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%);
  width: 238px;
  background: var(--ink);
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  padding: 11px 13px;
  border-radius: 11px;
  opacity: 0;
  visibility: hidden;
  transition: 0.15s;
  z-index: 60; /* below the sticky search bar (200): it covers the tip on scroll */
  box-shadow: 0 12px 28px rgba(15, 23, 34, 0.28);
  text-align: left;
  letter-spacing: 0;
}

.advantis-jobs-v2 .infodot .tip::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 6px solid transparent;
  border-bottom-color: var(--ink);
}

/* :focus-visible (not :focus) so a mouse click doesn't pin the tip open;
   keyboard focus still shows it. */
.advantis-jobs-v2 .infodot:hover .tip,
.advantis-jobs-v2 .infodot:focus-visible .tip {
  opacity: 1;
  visibility: visible;
}

/* Categories without specialties (e.g. LPN): hide the browse chips. Class
   set server-side in results.php and toggled in jobs-archive.js for
   client-side category switches. */
.advantis-jobs-v2 .wrap.amed-no-specialty .statebar {
  display: none;
}

/* ===== STATE CHIPS ===== */
.advantis-jobs-v2 .statebar {
  padding: 20px 0 0;
}

.advantis-jobs-v2 .statebar .lab {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 10px;
}

.advantis-jobs-v2 .statechips {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}

.advantis-jobs-v2 .schip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1.5px solid var(--line);
  border-radius: 999px;
  padding: 9px 15px;
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  transition: 0.15s;
  white-space: nowrap;
}

.advantis-jobs-v2 .schip:hover {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal-d);
}

.advantis-jobs-v2 .schip .ct {
  background: var(--panel);
  color: var(--slate);
  font-size: 12px;
  font-weight: 700;
  padding: 1px 8px;
  border-radius: 999px;
}

.advantis-jobs-v2 .schip:hover .ct {
  background: #fff;
  color: var(--teal-d);
}

/* ===== RESULTS BAR ===== */
.advantis-jobs-v2 .resbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 22px 0 4px;
  flex-wrap: wrap;
}

.advantis-jobs-v2 .resbar .ct {
  font-weight: 600;
  font-size: 15px;
}

/* Mobile-only results-line City/ZIP control (specialty pages). Hidden on
   desktop, which keeps its own Location control in the bar. Shown in the
   @media (max-width: 700px) block. */
.advantis-jobs-v2 .resbar-sp,
.advantis-jobs-v2 .resbar .radlbl,
.advantis-jobs-v2 .resbar .cityctl {
  display: none;
}

.advantis-jobs-v2 .resbar .ct b {
  font-weight: 700;
}

.advantis-jobs-v2 .fresh {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--green);
  font-weight: 700;
  font-size: 12px;
  background: var(--green-soft);
  padding: 4px 10px;
  border-radius: 999px;
  margin-left: 6px;
}

.advantis-jobs-v2 .fresh .dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  animation: ajp-pulse 2s infinite;
}

@keyframes ajp-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}

/* ===== SMS JOB ALERT ===== */
.advantis-jobs-v2 .alert {
  background: linear-gradient(110deg, #0c141d, #16263b);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--r);
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 16px 0 4px;
  color: #fff;
  box-shadow: var(--shadow);
  flex-wrap: wrap;
}

.advantis-jobs-v2 .alert .ic {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: rgba(12, 162, 212, 0.22);
  display: grid;
  place-items: center;
  flex: none;
}

.advantis-jobs-v2 .alert .ic svg {
  width: 23px;
  height: 23px;
  color: var(--teal);
}

.advantis-jobs-v2 .alert .tx {
  flex: 1;
  min-width: 220px;
}

.advantis-jobs-v2 .alert .tx b {
  font-size: 17px;
  display: block;
  letter-spacing: -0.01em;
}

.advantis-jobs-v2 .alert .tx p {
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  margin: 2px 0 0;
}

/* The CF7 wrappers become transparent so the inline phone row sits in the
   banner's flex row and the grid expands full-width below it. */
.advantis-jobs-v2 .alertform,
.advantis-jobs-v2 .alertform .wpcf7,
.advantis-jobs-v2 .alertform form {
  display: contents;
}

.advantis-jobs-v2 .alertrow {
  position: relative;
  display: flex;
  gap: 8px;
  flex: none;
  align-items: center;
}

.advantis-jobs-v2 .alertrow .wpcf7-form-control-wrap {
  display: block;
}

.advantis-jobs-v2 .alertrow input[type="tel"] {
  width: 200px;
}

/* Expanding detail panel. The shell animates grid-template-rows 0fr -> 1fr
   while .alertgrid__inner clips overflow; the inner layout is the field grid.
   Collapsed it stays on the phone row (flex-basis:0, zero width) so it forms no
   second flex line and the parent's 16px row-gap is never reserved below it.
   Opening flips it to a full-width line, and that row-gap becomes the spacing
   above the panel. */
.advantis-jobs-v2 .alertgrid {
  flex-basis: 0;
  width: 0;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.34s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.advantis-jobs-v2 .alert.open .alertgrid {
  flex-basis: 100%;
  width: 100%;
  grid-template-rows: 1fr;
}

.advantis-jobs-v2 .alertgrid__inner {
  overflow: hidden;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas:
    "label label"
    "name phone"
    "email spec"
    "states license"
    "consent consent"
    "submit submit";
  gap: 10px;
  opacity: 0;
  transform: translateY(4px);
  transition:
    opacity 0.3s ease,
    transform 0.3s ease;
}

.advantis-jobs-v2 .alert.open .alertgrid__inner {
  opacity: 1;
  transform: none;
}

.advantis-jobs-v2 .alertgrid__inner::before {
  content: "A few quick details so we can text you. 30 seconds.";
  grid-area: label;
  font-size: 11.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.62);
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.advantis-jobs-v2 .alertgrid .wpcf7-form-control-wrap {
  display: block;
}

/* Category is always in the form (required/validated/mailed, see
   inc/jobs-archive.php) so the blog sidebar's alert card can offer it, but this
   page already establishes its own category (URL/combo meta or the #fCat
   filter), so it stays hidden here and keeps its auto-selected value. */
.advantis-jobs-v2 .alertform .advantis-alert-field[data-name="alert-category"] {
  display: none;
}

.advantis-jobs-v2
  .alertgrid__inner
  .wpcf7-form-control-wrap[data-name="alert-name"] {
  grid-area: name;
}

/* Phone + submit start in .alertrow; the alert JS moves both into the grid on
   first interaction, where these areas position them. */
.advantis-jobs-v2
  .alertgrid__inner
  .wpcf7-form-control-wrap[data-name="alert-phone"] {
  grid-area: phone;
}

.advantis-jobs-v2
  .alertgrid__inner
  .wpcf7-form-control-wrap[data-name="alert-email"] {
  grid-area: email;
}

.advantis-jobs-v2
  .alertgrid__inner
  .wpcf7-form-control-wrap[data-name="alert-specialty"] {
  grid-area: spec;
}

.advantis-jobs-v2
  .alertgrid__inner
  .wpcf7-form-control-wrap[data-name="alert-desired-states"] {
  grid-area: states;
}

.advantis-jobs-v2
  .alertgrid__inner
  .wpcf7-form-control-wrap[data-name="alert-state-license"] {
  grid-area: license;
}

/* advSelect anchors its dropdown panel to the nearest positioned ancestor. */
.advantis-jobs-v2 .alertform .advantis-alert-field {
  position: relative;
}

/* Enhanced selects hide the native control and show .advs-trigger; mirror the
   native select skin so the three taxonomy selects match the dark inputs. */
.advantis-jobs-v2 .alertform .advs-trigger {
  width: 100%;
  padding: 11px 34px 11px 13px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background-color: rgba(255, 255, 255, 0.07);
  border-radius: 10px;
  font-size: 13.5px;
  color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  background-size: 16px;
  transition:
    border-color 0.15s,
    box-shadow 0.15s,
    background-color 0.15s;
}

.advantis-jobs-v2 .alertform .advs-trigger.is-placeholder .advs-value {
  color: rgba(255, 255, 255, 0.55);
}

.advantis-jobs-v2 .alertform .advs-trigger.is-open,
.advantis-jobs-v2 .alertform .advs-trigger:focus-visible {
  outline: none;
  border-color: var(--teal);
  background-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 0 0 3px rgba(12, 162, 212, 0.35);
}

/* The advSelect dropdown's search field lives on the white panel, but the dark
   .alertform input skin above bleeds onto it: white-on-white text and a teal
   focus ring. Restore the panel's own field styling (adv-select.css) here only. */
.advantis-jobs-v2 .alertform .advs-search input,
.advantis-jobs-v2 .alertform .advs-search input[type="text"] {
  color: #0f1722;
  background-color: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 2px 0;
}

.advantis-jobs-v2 .alertform .advs-search input:focus,
.advantis-jobs-v2 .alertform .advs-search input[type="text"]:focus {
  outline: none;
  border: none;
  box-shadow: none;
  background-color: transparent;
}

.advantis-jobs-v2 .alertform .advs-search input::placeholder {
  color: #64748b;
}

/* The collapsing grid clips its content (overflow:hidden) so the open/close
   animation works; once fully expanded, let advSelect dropdowns spill out. The
   .alert--ready class is added by jobs-archive.js after the expand transition. */
.advantis-jobs-v2 .alert.open.alert--ready .alertgrid__inner {
  overflow: visible;
}

.advantis-jobs-v2 .alertform p {
  margin: 0;
}

.advantis-jobs-v2 .alertform input[type="text"],
.advantis-jobs-v2 .alertform input[type="tel"],
.advantis-jobs-v2 .alertform input[type="email"],
.advantis-jobs-v2 .alertform select {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background-color: rgba(255, 255, 255, 0.07);
  border-radius: 10px;
  font-size: 13.5px;
  color: #fff;
  transition:
    border-color 0.15s,
    box-shadow 0.15s,
    background-color 0.15s;
}

.advantis-jobs-v2 .alertform input::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

.advantis-jobs-v2 .alertform select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 11px center;
  background-size: 16px;
}

.advantis-jobs-v2 .alertform select option {
  color: var(--ink);
  background: #fff;
}

.advantis-jobs-v2 .alertform input[type="text"]:focus,
.advantis-jobs-v2 .alertform input[type="tel"]:focus,
.advantis-jobs-v2 .alertform input[type="email"]:focus,
.advantis-jobs-v2 .alertform select:focus {
  outline: none;
  border-color: var(--teal);
  background-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 0 0 3px rgba(12, 162, 212, 0.35);
}

.advantis-jobs-v2 .alertform .alertconsent {
  grid-area: consent;
  margin-top: 2px;
}

/* When the panel opens, jobs-archive.js relocates the submit out of the phone
   row to the foot of the grid (after the opt-in), kept at its natural width. */
.advantis-jobs-v2 .alertgrid__inner .wpcf7-submit {
  grid-area: submit;
  justify-self: start;
  margin-top: 4px;
}

.advantis-jobs-v2 .alertform .alertconsent,
.advantis-jobs-v2 .alertform .alertconsent label,
.advantis-jobs-v2 .alertform .alertconsent .wpcf7-list-item-label {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
  font-weight: 400;
  line-height: 1.55;
}

.advantis-jobs-v2 .alertform .alertconsent .wpcf7-list-item {
  margin: 0;
}

.advantis-jobs-v2 .alertform .alertconsent label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.advantis-jobs-v2 .alertform .alertconsent input {
  accent-color: var(--teal);
  margin: 2px 0 0;
  width: 16px;
  height: 16px;
  flex: none;
}

.advantis-jobs-v2 .alertform input[type="submit"] {
  background: #3fb07a;
  color: #fff;
  font-weight: 700;
  font-size: 13.5px;
  letter-spacing: -0.005em;
  padding: 12px 22px;
  border-radius: 10px;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(63, 176, 122, 0.28);
  transition:
    background 0.15s,
    box-shadow 0.15s,
    transform 0.05s;
}

.advantis-jobs-v2 .alertform input[type="submit"]:hover {
  background: #2e9d68;
  box-shadow: 0 7px 20px rgba(63, 176, 122, 0.38);
}

.advantis-jobs-v2 .alertform input[type="submit"]:active {
  transform: translateY(1px);
}

.advantis-jobs-v2 .alertform input[type="submit"]:focus-visible {
  outline: none;
  box-shadow:
    0 0 0 3px rgba(63, 176, 122, 0.25),
    0 0 0 6px #2e9d68;
}

/* CF7's default spinner keeps visibility:hidden while idle but still
   reserves its 24px + 24px-margin box as a flex item in .alertrow (the
   phone/submit row is always visible, not just while the grid is open).
   Take it out of flow so it adds no width until the form actually submits,
   same fix as .qa-modal in quick-apply-modal.css. */
.advantis-jobs-v2 .alertform .wpcf7-spinner {
  position: absolute;
  top: 50%;
  right: 0;
  margin: 0;
  transform: translateY(-50%);
  background-color: rgba(255, 255, 255, 0.6);
}

.advantis-jobs-v2 .alertform .wpcf7-not-valid-tip {
  color: #ffb3a0;
  font-size: 11.5px;
  margin-top: 4px;
}

.advantis-jobs-v2 .alertform .wpcf7-response-output {
  flex-basis: 100%;
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 10px;
  padding: 11px 14px;
  font-size: 13px;
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.92);
}

.advantis-jobs-v2 .alertform .wpcf7-form.sent .wpcf7-response-output {
  border-color: rgba(17, 154, 99, 0.55);
  background: rgba(17, 154, 99, 0.18);
  color: #d7f5e7;
}

.advantis-jobs-v2 .alertform .wpcf7-form.invalid .wpcf7-response-output,
.advantis-jobs-v2 .alertform .wpcf7-form.unaccepted .wpcf7-response-output,
.advantis-jobs-v2 .alertform .wpcf7-form.failed .wpcf7-response-output,
.advantis-jobs-v2 .alertform .wpcf7-form.spam .wpcf7-response-output {
  border-color: rgba(224, 67, 36, 0.5);
  background: rgba(224, 67, 36, 0.16);
  color: #ffd0c5;
}

@media (max-width: 640px) {
  .advantis-jobs-v2 .alertgrid__inner {
    grid-template-columns: 1fr;
    grid-template-areas:
      "label"
      "name"
      "phone"
      "email"
      "spec"
      "states"
      "license"
      "consent"
      "submit";
  }
}

@media (prefers-reduced-motion: reduce) {
  .advantis-jobs-v2 .alertgrid,
  .advantis-jobs-v2 .alertgrid__inner {
    transition: none;
  }

  .advantis-jobs-v2 .alert.open .alertgrid__inner {
    transform: none;
  }
}

/* ===== JOB CARDS (sA) ===== */
.advantis-jobs-v2 .cards {
  display: flex;
  flex-direction: column;
  gap: 13px;
  padding: 14px 0 10px;
}

.advantis-jobs-v2 .jcard {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  transition: 0.18s;
  display: block;
  position: relative;
}

.advantis-jobs-v2 .jcard:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
  border-color: var(--teal-line);
}

.advantis-jobs-v2 .jcard.sA {
  border-left: 6px solid var(--teal-d);
}

.advantis-jobs-v2 .jbody {
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
}

.advantis-jobs-v2 .jcard.sA .jbody {
  width: 100%;
  padding-top: 16px;
}

.advantis-jobs-v2 .jcard.sA .atags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-bottom: 11px;
}

.advantis-jobs-v2 .tag {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.14);
}

.advantis-jobs-v2 .tag.new {
  color: #0c7048;
}

/* Heart (save) + "View job" button, grouped top-right on every card. */
.advantis-jobs-v2 .corner {
  position: absolute;
  top: 14px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 4;
}

.advantis-jobs-v2 .jcard .heart {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #fff;
  border: 1.6px solid var(--line);
  display: grid;
  place-items: center;
  transition: 0.15s;
  padding: 0;
  flex: none;
}

.advantis-jobs-v2 .jcard .heart svg {
  width: 16px;
  height: 16px;
  stroke: var(--ink);
  fill: none;
  stroke-width: 2;
  transition: 0.15s;
}

.advantis-jobs-v2 .jcard .heart.on svg {
  fill: var(--coral);
  stroke: var(--coral);
}

.advantis-jobs-v2 .jcard .heart:hover {
  border-color: var(--slate);
}

.advantis-jobs-v2 .jcard.sA .viewtop {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 15px;
  background: #fff;
  border: 1.6px solid var(--line);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--ink);
  white-space: nowrap;
  transition: 0.15s;
  flex: none;
}

.advantis-jobs-v2 .jcard.sA .viewtop:hover {
  text-decoration: none;
  border-color: var(--slate);
  color: var(--ink);
}

.advantis-jobs-v2 .jcard.sA .viewtop svg {
  width: 13px;
  height: 13px;
}

/* Touch-primary devices get 44px-ish targets regardless of viewport width —
   tablets between the 700px mobile cutoff and desktop are touch, not mouse. */
@media (hover: none) and (pointer: coarse) {
  .advantis-jobs-v2 .jcard .heart {
    width: 42px;
    height: 42px;
  }

  .advantis-jobs-v2 .jcard.sA .viewtop {
    min-height: 42px;
  }
}

/* "Trending" kicker sits on its own line above the title (mockup: unboxed
   icon + text, no chrome). */
.advantis-jobs-v2 .trrow {
  display: flex;
  margin-bottom: 7px;
}

/* Title (left) shares one row with the save heart and the desktop "View job"
   pill (right). On phones "View job" is hidden, leaving just title + heart. */
.advantis-jobs-v2 .trow {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.advantis-jobs-v2 .tleft {
  flex: 1;
  min-width: 0;
}

.advantis-jobs-v2 .jtitle {
  font-weight: 700;
  font-size: 21px;
  letter-spacing: -0.01em;
  line-height: 1.16;
  color: var(--teal-d);
  transition: 0.12s;
}

.advantis-jobs-v2 .jtitle:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  color: var(--teal-d);
}

/* "Trending" badge — shown only when the job's account rank is A. */
.advantis-jobs-v2 .tr {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 3px 9px;
  border-radius: 6px;
  white-space: nowrap;
  text-transform: uppercase;
}

.advantis-jobs-v2 .tr svg {
  width: 12px;
  height: 12px;
  flex: none;
}

.advantis-jobs-v2 .tr.line {
  background: none;
  border: none;
  padding: 0;
  color: var(--navy);
}

.advantis-jobs-v2 .tr.line svg {
  color: var(--navy);
}

/* Facility name + shift + contract length, one line with dividers. */
.advantis-jobs-v2 .facrow {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 13px;
  margin-top: 6px;
}

.advantis-jobs-v2 .facrow .fac2 {
  color: var(--slate);
  font-weight: 600;
  font-size: 12.5px;
}

.advantis-jobs-v2 .facrow .m2i {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--slate);
  white-space: nowrap;
}

.advantis-jobs-v2 .facrow .m2i svg {
  width: 13px;
  height: 13px;
  opacity: 0.75;
  flex: none;
}

.advantis-jobs-v2 .facrow .vsep {
  width: 1px;
  height: 14px;
  background: var(--line);
  flex: none;
}

.advantis-jobs-v2 .jloc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin: 16px 0 4px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.advantis-jobs-v2 .jloc .pinwrap {
  width: 28px;
  height: 28px;
  border-radius: 9px;
  background: var(--teal-soft);
  display: grid;
  place-items: center;
  flex: none;
}

.advantis-jobs-v2 .jloc .pinwrap svg {
  width: 16px;
  height: 16px;
  color: var(--teal-d);
}

/* Distance-from-search-point pill, shown only when the results are sorted
   by "Nearest" (Typesense supplies the miles figure for a geo sort). */
.advantis-jobs-v2 .jloc .dist {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  border-radius: 999px;
  padding: 6px 12px;
  white-space: nowrap;
}

.advantis-jobs-v2 .jloc .dist svg {
  width: 12px;
  height: 12px;
  flex: none;
  color: inherit;
}

.advantis-jobs-v2 .jloc .dist.teal {
  background: var(--teal-soft);
  color: var(--teal-d);
}

.advantis-jobs-v2 .jactswrap {
  margin-top: 15px;
  padding-top: 14px;
  border-top: 1px solid var(--line-2);
}

.advantis-jobs-v2 .jacts {
  display: flex;
  gap: 9px;
  align-items: center;
}

/* pay (left) vertically centred against the Quick Apply button (right) */
.advantis-jobs-v2 .jacts.jbottom {
  align-items: center;
}

.advantis-jobs-v2 .jacts .sp {
  flex: 1;
}

.advantis-jobs-v2 .jacts.jbottom .payblk {
  flex: none;
  text-align: left;
}

.advantis-jobs-v2 .jacts .qa {
  flex: none;
}

.advantis-jobs-v2 .payblk .pay {
  font-weight: 700;
  font-size: 31px;
  letter-spacing: -0.025em;
  color: var(--pay);
  line-height: 1;
  white-space: nowrap;
}

.advantis-jobs-v2 .payblk .pay span {
  font-size: 13px;
  color: var(--slate);
  font-weight: 700;
  letter-spacing: 0;
}

.advantis-jobs-v2 .qa {
  background: linear-gradient(135deg, var(--gold1), var(--gold2));
  color: #fff;
  font-weight: 700;
  font-size: 13.5px;
  padding: 10px 20px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: 0.2s;
  box-shadow: 0 5px 14px rgba(148, 108, 10, 0.32);
}

.advantis-jobs-v2 .qa.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.advantis-jobs-v2 .qa.is-disabled:hover {
  transform: none;
  box-shadow: 0 5px 14px rgba(148, 108, 10, 0.32);
}

.advantis-jobs-v2 .qa:hover {
  transform: translateY(-1px);
  box-shadow: 0 9px 20px rgba(148, 108, 10, 0.45);
  color: #fff;
}

.advantis-jobs-v2 .qa svg {
  width: 14px;
  height: 14px;
}

/* reassurance line, right-aligned under the Quick Apply button */
.advantis-jobs-v2 .applyhint {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  margin-top: 8px;
  font-size: 11.5px;
  font-weight: 700;
  color: var(--green);
  min-width: 0;
}

.advantis-jobs-v2 .applyhint svg {
  width: 13px;
  height: 13px;
  flex: none;
}

/* ===== EMPTY STATE ===== */
.advantis-jobs-v2 .empty {
  text-align: center;
  padding: 46px 22px;
}

.advantis-jobs-v2 .empty .eicon {
  width: 54px;
  height: 54px;
  border-radius: 15px;
  background: var(--teal-soft);
  display: grid;
  place-items: center;
  margin: 0 auto 15px;
}

.advantis-jobs-v2 .empty .eicon svg {
  width: 26px;
  height: 26px;
  color: var(--teal-d);
}

.advantis-jobs-v2 .empty h3 {
  font-size: 21px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 7px;
  color: var(--ink);
}

.advantis-jobs-v2 .empty p {
  color: var(--slate);
  font-size: 14px;
  max-width: 430px;
  margin: 0 auto 17px;
  line-height: 1.5;
}

.advantis-jobs-v2 .erelax {
  margin-top: 8px;
  font-size: 13px;
  color: var(--slate);
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

.advantis-jobs-v2 .ebtn {
  border: 1.5px solid var(--line);
  background: #fff;
  color: var(--teal-d);
  font-weight: 700;
  font-size: 12.5px;
  padding: 7px 13px;
  border-radius: 999px;
}

.advantis-jobs-v2 .ebtn:hover {
  border-color: var(--teal);
  background: var(--teal-soft);
}

/* ===== PAGINATION ===== */
.advantis-jobs-v2 .ajp-pagination {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  padding: 10px 0 44px;
}

.advantis-jobs-v2 .ajp-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding: 0 10px;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  font-weight: 700;
  font-size: 14px;
  transition: 0.15s;
}

.advantis-jobs-v2 .ajp-pagination a.page-numbers:hover {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal-d);
}

.advantis-jobs-v2 .ajp-pagination .page-numbers.current {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
}

.advantis-jobs-v2 .ajp-pagination .page-numbers.dots {
  border: none;
  background: none;
  color: var(--muted);
}

/* ===== MORE FILTERS SHEET ===== */
.advantis-jobs-v2 .ov {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 34, 0.5);
  z-index: 1340;
}

.advantis-jobs-v2 .ov.show {
  display: block;
}

.advantis-jobs-v2 .sheet {
  position: fixed;
  z-index: 1350;
  background: #fff;
  box-shadow: var(--shadow-lg);
  transition: transform 0.32s cubic-bezier(0.2, 0.8, 0.2, 1);
  top: 0;
  right: 0;
  height: 100%;
  width: 380px;
  max-width: 92vw;
  transform: translateX(102%);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.advantis-jobs-v2 .sheet.show {
  transform: none;
}

.advantis-jobs-v2 .sheet .sh {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  background: #fff;
  z-index: 2;
}

.advantis-jobs-v2 .sheet .sh h3 {
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0;
}

.advantis-jobs-v2 .sheet .sh button {
  font-size: 22px;
  color: var(--muted);
  width: 30px;
  padding: 0;
}

.advantis-jobs-v2 .grp {
  padding: 16px 20px;
  border-bottom: 1px solid var(--line-2);
}

/* Sort group: only in the sheet on phones (desktop keeps Sort in the bar). */
.advantis-jobs-v2 .sheet .sortgrp {
  display: none;
}
.advantis-jobs-v2 .sheet .sortgrp select {
  width: 100%;
  height: 48px;
  background: #fff;
  border: 1.8px solid var(--line);
  border-radius: 12px;
  padding: 0 14px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
}

.advantis-jobs-v2 .grp h4 {
  font-size: 12px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--slate);
  font-weight: 700;
  margin: 0 0 11px;
}

.advantis-jobs-v2 .grp .opt {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 0;
  font-size: 14px;
  color: var(--slate);
  cursor: pointer;
  margin: 0;
  font-weight: 500;
}

.advantis-jobs-v2 .grp .opt input {
  accent-color: var(--teal);
  width: 16px;
  height: 16px;
  margin: 0;
  flex: none;
}

.advantis-jobs-v2 .grp .opt input:disabled + *,
.advantis-jobs-v2 .grp .opt:has(input:disabled) {
  opacity: 0.55;
  cursor: default;
}

.advantis-jobs-v2 .grp .opt .n {
  margin-left: auto;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

.advantis-jobs-v2 .grp .opt-hint {
  font-size: 12px;
  color: var(--muted);
  margin: 4px 0 0;
}

.advantis-jobs-v2 .fchip .n {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 600;
}

.advantis-jobs-v2 .fchip.on .n {
  color: var(--teal-d);
}

.advantis-jobs-v2 .rngv {
  font-weight: 700;
  color: var(--teal-d);
  font-size: 13px;
  text-transform: none;
  letter-spacing: 0;
  margin-left: 6px;
}

.advantis-jobs-v2 .chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.advantis-jobs-v2 .fchip {
  border: 1.5px solid var(--line);
  background: #fff;
  color: var(--slate);
  font-weight: 600;
  font-size: 13px;
  padding: 8px 13px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  transition: 0.15s;
}

.advantis-jobs-v2 .fchip:hover {
  border-color: var(--slate);
}

.advantis-jobs-v2 .fchip:focus-visible {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-soft);
}

.advantis-jobs-v2 .fchip.on {
  border-color: var(--teal);
  background: var(--teal-soft);
  color: var(--teal-d);
  font-weight: 700;
}

.advantis-jobs-v2 .sheet .apply {
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid var(--line);
  padding: 14px 20px;
  margin-top: auto;
}

.advantis-jobs-v2 .sheet .apply button {
  width: 100%;
  background: var(--ink);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  padding: 14px;
  border-radius: 11px;
}

/* Dual-handle pay range slider */
.advantis-jobs-v2 .dualrange {
  position: relative;
  height: 30px;
  margin-top: 12px;
}

.advantis-jobs-v2 .dualrange .track {
  position: absolute;
  top: 13px;
  left: 0;
  right: 0;
  height: 4px;
  border-radius: 3px;
  background: var(--line);
}

.advantis-jobs-v2 .dualrange .fill {
  position: absolute;
  top: 13px;
  height: 4px;
  border-radius: 3px;
  background: var(--teal);
}

.advantis-jobs-v2 .dualrange input[type="range"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 30px;
  margin: 0;
  background: none;
  -webkit-appearance: none;
  appearance: none;
  pointer-events: none;
}

.advantis-jobs-v2 .dualrange input[type="range"]:focus {
  outline: none;
}

.advantis-jobs-v2
  .dualrange
  input[type="range"]::-webkit-slider-runnable-track {
  background: none;
  border: none;
  height: 30px;
}

.advantis-jobs-v2 .dualrange input[type="range"]::-moz-range-track {
  background: none;
  border: none;
  height: 30px;
}

.advantis-jobs-v2 .dualrange input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: auto;
  width: 20px;
  height: 20px;
  margin-top: 5px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--teal);
  box-shadow: 0 1px 4px rgba(15, 23, 34, 0.28);
  cursor: pointer;
}

.advantis-jobs-v2 .dualrange input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--teal);
  box-shadow: 0 1px 4px rgba(15, 23, 34, 0.28);
  cursor: pointer;
}

/* ===== TOAST ===== */
.advantis-jobs-v2 .toast {
  width: max-content;
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(160%);
  background: var(--ink);
  color: #fff;
  padding: 13px 22px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  box-shadow: var(--shadow-lg);
  z-index: 1500;
  transition: 0.4s;
}

.advantis-jobs-v2 .toast.show {
  transform: translateX(-50%) translateY(0);
}

/* ===== LOADING STATE ===== */
.advantis-jobs-v2 .cards.loading {
  opacity: 0.45;
  pointer-events: none;
  transition: opacity 0.15s;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 980px) {
  .advantis-jobs-v2 .fanchor {
    flex: 1 1 calc(50% - 10px);
  }

  .advantis-jobs-v2 .sortanchor {
    flex: 1 1 calc(50% - 10px);
  }

  /* Its placeholder ("City or ZIP · sorts by distance") is longer than the
     other pills' labels — give it the full row instead of squeezing into 50%. */
  .advantis-jobs-v2 .locanchor {
    flex: 1 1 100%;
  }
}

@media (max-width: 700px) {
  .advantis-jobs-v2 .hero {
    padding: 20px 16px 48px;
  }

  .advantis-jobs-v2 .hero h1 {
    font-size: 25px;
  }

  /* Mobile hero (Mary's mockup, Jul 2026): drop the eyebrow trust chips,
     keep only the live-jobs count, and float it below the hero line. */
  .advantis-jobs-v2 .hero .in {
    display: flex;
    flex-direction: column;
  }

  .advantis-jobs-v2 .trust .tc:not(.live) {
    display: none;
  }

  .advantis-jobs-v2 .trust {
    order: 3;
    margin: 10px 0 0;
  }

  .advantis-jobs-v2 .heroline {
    font-size: 13px;
    margin-top: 5px;
  }

  /* Mobile section layout (Mary's mockup, Jul 2026): hide the market snapshot
     and move the job alert and state/specialty shortcuts below the listings. */
  .advantis-jobs-v2 .market {
    display: none;
  }

  .advantis-jobs-v2 #resultsWrap {
    display: flex;
    flex-direction: column;
  }

  .advantis-jobs-v2 #resultsWrap .resbar {
    order: 1;
  }

  .advantis-jobs-v2 #resultsWrap .cards {
    order: 2;
  }

  .advantis-jobs-v2 #resultsWrap .ajp-pagination {
    order: 3;
  }

  .advantis-jobs-v2 #resultsWrap .alert {
    order: 4;
  }

  .advantis-jobs-v2 #resultsWrap .statebar {
    order: 5;
  }

  .advantis-jobs-v2 .applyhint .ah-rest {
    display: none;
  }

  .advantis-jobs-v2 .resbar .fresh {
    display: none;
  }

  /* Results line rides with the sticky bar (Job Page – Mobile mockup, where
     .resline is a child of .stick). We can't nest it the same way — .resbar
     lives in #resultsWrap, a later sibling of #sticky — so pin it at the bar's
     bottom instead. --sticky-stack (header + bar) is already maintained by
     jobs-archive.js. The market strip is hidden on phones, so .resbar already
     sits flush under the bar and the two pin as one. */
  .advantis-jobs-v2 .resbar {
    transition:
      background 0.34s cubic-bezier(0.22, 1, 0.36, 1),
      box-shadow 0.34s cubic-bezier(0.22, 1, 0.36, 1);
  }

  /* Pin and paint together, both gated on .stuck. #resultsWrap follows #sticky,
     so the sibling combinator reads "bar is stuck" without any JS.
     position:sticky must be gated too, not just the chrome: it ignores .stuck,
     so an always-sticky .resbar pins at --sticky-stack while the bar is still
     un-stuck and floats there with no background, letting cards scroll under
     the bare text. The negative margin cancels .wrap's 14px inset so the fill
     is full-bleed like the bar above it. */
  .advantis-jobs-v2 .sticky.stuck ~ #resultsWrap .resbar {
    position: sticky;
    top: var(--sticky-stack, 185px);
    z-index: 150; /* under .sticky (200), over the cards */
    margin: 0 -14px;
    padding: 7px 14px 8px;
    background: rgba(255, 255, 255, 0.97);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 6px 20px rgba(15, 23, 34, 0.1);
  }

  /* The stack's bottom edge belongs to the results line now; leaving it on the
     bar as well would draw a hairline through the middle of the pinned group. */
  .advantis-jobs-v2 .sticky.stuck {
    border-bottom: none;
    box-shadow: none;
  }

  /* Land the first card below the pinned stack rather than behind it. */
  .advantis-jobs-v2 #cards {
    scroll-margin-top: calc(
      var(--sticky-stack, 185px) + var(--resbar-h, 0px) + 14px
    );
  }

  /* On phones the results-line location field is only ~96px wide, and Google
     sizes its autocomplete dropdown (.pac-container, appended to <body>) to
     match, crushing city suggestions against the right edge. Override its
     inline width/left so the dropdown spans the viewport gutters instead. */
  .pac-container {
    left: 12px !important;
    right: 12px !important;
    width: auto !important;
    max-width: none !important;
  }

  .advantis-jobs-v2 .wrap {
    padding: 0 14px;
  }

  .advantis-jobs-v2 .sticky:not(.stuck) .stickin {
    margin: -30px auto 0;
    padding: 14px;
    border-radius: 16px;
  }

  .advantis-jobs-v2 .sticky.stuck .stickin {
    padding: 11px 14px;
  }

  /* ===== Mobile search bar — Mary's v16 mockup =====
     Top row: search + arrow-icon submit + all-filters icon. The Category /
     Specialty / State selects become pill chips; Location, Sort and Saved leave
     the bar (they move to the results line, the filters sheet, and the site
     header respectively). Chips wrap rather than horizontally scroll so the
     adv-select dropdown panels aren't clipped by an overflow container. */

  .advantis-jobs-v2 .sbar,
  .advantis-jobs-v2 .sticky.stuck .sbar {
    height: 44px;
  }

  .advantis-jobs-v2 .sbar input {
    font-size: 14px;
  }

  /* "Search" text button -> arrow-icon square. */
  .advantis-jobs-v2 .gobtn {
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    flex: none;
  }
  .advantis-jobs-v2 .gobtn-text {
    display: none;
  }
  .advantis-jobs-v2 .gobtn-icon {
    display: block;
    width: 20px;
    height: 20px;
  }
  .advantis-jobs-v2 .sticky.stuck .gobtn {
    width: 44px;
    height: 44px;
    padding: 0;
  }

  /* All-filters icon on the search row (opens the same sheet as #moreBtn). */
  .advantis-jobs-v2 .topfbtn {
    position: relative;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    flex: none;
    background: #fff;
    border: 1.8px solid var(--line);
    border-radius: 12px;
    color: var(--ink);
  }
  .advantis-jobs-v2 .topfbtn svg {
    width: 19px;
    height: 19px;
  }
  .advantis-jobs-v2 .sticky.stuck .topfbtn {
    height: 44px;
  }
  .advantis-jobs-v2 .topfbtn .badge {
    position: absolute;
    top: -6px;
    right: -6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--teal);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    line-height: 18px;
    text-align: center;
  }
  .advantis-jobs-v2 .topfbtn .badge[hidden] {
    display: none;
  }

  /* Chip strip. Unfilled asks sort first (flex order), selected chips after.
     nowrap so the chips shrink to share one row instead of breaking onto a
     second: with flex-basis auto below, a long value would otherwise wrap the
     strip and push the results down. */
  .advantis-jobs-v2 .filtrow {
    flex-wrap: nowrap;
    gap: 8px;
    align-items: center;
  }

  /* Location and Sort leave the bar on phones (they move to the results line
     and the filters sheet). They're .fanchor elements, so they need a selector
     at least as specific as the chip rule (.filtrow .fanchor) to stay hidden.
     The saved-jobs heart stays in the filter bar. */
  .advantis-jobs-v2 .filtrow .fanchor.locanchor,
  .advantis-jobs-v2 .filtrow .fanchor.sortanchor,
  .advantis-jobs-v2 .filtrow .morebtn {
    display: none;
  }

  /* Saved-jobs heart sits at the end of the chip strip, sized to match chips.
     On phones it stays hidden until the first save (.favbtn gains .has once the
     saved count is > 0), then appears. Desktop always shows it. */
  .advantis-jobs-v2 .favwrap {
    order: 2;
    margin-left: 0;
    flex: 0 0 auto;
  }
  .advantis-jobs-v2 .favwrap:not(:has(.favbtn.has)) {
    display: none;
  }
  .advantis-jobs-v2 .filtrow .favbtn {
    width: 40px;
    height: 40px;
    border-width: 1.5px;
  }
  .advantis-jobs-v2 .sticky.stuck .filtrow .favbtn {
    width: 36px;
    height: 36px;
  }
  .advantis-jobs-v2 .filtrow .favbtn svg {
    width: 18px;
    height: 18px;
  }

  /* Category/Specialty/State fill the row as three equal-width chips
     (basis 0, so content never drives width — long values ellipsis-truncate
     instead, same as the enhanced .advs-value's overflow handling). A
     content-based basis (the old "each chip starts at its content width"
     approach) sized these differently before vs. after adv-select.js swaps
     the raw (but invisible) native select for the short-label trigger,
     producing a visible reflow on load; equal width sidesteps that
     mismatch entirely instead of chasing a pixel-perfect pre/post match.
     Location and Sort are display:none here, so this hits exactly those
     three; the heart opts out via .favwrap's flex: 0 0 auto. */
  .advantis-jobs-v2 .filtrow .fanchor {
    position: relative;
    display: inline-flex;
    align-items: center;
    flex: 1 1 0;
    min-width: 64px;
    height: 40px;
    border: 1.5px solid var(--line);
    border-radius: 999px;
    background: #fff;
    padding: 0 12px;
    order: 0;
  }
  .advantis-jobs-v2 .sticky.stuck .filtrow .fanchor {
    height: 36px;
  }
  /* Room for the inline × comes out of the trigger, not the chip padding, so the
     chip's flex base stays proportional to its text rather than carrying a fixed
     32px handicap into the growth/shrink maths. */
  .advantis-jobs-v2 .filtrow .fanchor.filled {
    order: 1;
    border-color: var(--teal);
  }
  .advantis-jobs-v2 .filtrow .fanchor.filled .advs-trigger,
  .advantis-jobs-v2 .filtrow .fanchor.filled select {
    padding-right: 16px;
  }

  /* The inner control keeps only the value text; the pill chrome lives on the
     .fanchor now. */
  .advantis-jobs-v2 .filtrow .fanchor .advs-trigger,
  .advantis-jobs-v2 .filtrow .fanchor select {
    height: 100%;
    min-height: 0;
    width: 100%;
    min-width: 0;
    border: none;
    background: transparent;
    border-radius: 999px;
    padding: 0;
    box-shadow: none;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--teal-d);
    line-height: 1.5;
  }

  /* Centre the selected value in the chip. Scoped to .filtrow .fanchor so the
     shared advSelect skin (single job, blog/salary alert forms, admin) keeps its
     left-aligned default. */
  .advantis-jobs-v2 .filtrow .fanchor .advs-trigger .advs-value {
    text-align: center;
  }

  /* The native select renders its own text left-aligned (the browser default);
     without this, a filled-but-unabbreviated chip (e.g. State: "New York")
     visibly jumps from left to centre the instant adv-select.js swaps in the
     centred .advs-trigger. */
  .advantis-jobs-v2 .filtrow .fanchor select:not([data-adv-enhanced]) {
    text-align: center;
  }

  .advantis-jobs-v2 .filtrow .fanchor .fservervalue {
    top: 50%;
    right: 32px;
    transform: translateY(-50%);
    font-size: 12.5px;
    line-height: 1;
    /* Twin of the .advs-value centring above: this overlay is the
       pre-enhancement stand-in for that same value text (see the #fCat /
       has-servervalue rules), so without this it renders left-aligned in its
       (14px/32px-inset) box and visibly re-centres the instant JS enhances. */
    text-align: center;
  }

  .advantis-jobs-v2
    #fCat:not([data-adv-enhanced]):has(option[data-slug="rn"]:checked) {
    width: 18px;
  }

  /* Twin of the #fCat rule above, for the specialty anchor: with .fanchor's
     content-based flex-basis (flex: 1 1 auto, unlike desktop's fixed 176px),
     the transparent-but-present native select text ("Occupational Therapy")
     still sizes the chip pre-enhancement, so it visibly snaps narrower the
     instant adv-select.js swaps in the short "OT" trigger. Matching #fCat's
     fix keeps the chip's flex-basis narrow from first paint. */
  .advantis-jobs-v2
    .filtrow
    .fanchor.has-servervalue
    select:not([data-adv-enhanced]) {
    width: 18px;
  }

  /* Unfilled: hide the "All …" placeholder value; the field label shows inline
     and the (empty) trigger overlays the whole chip for taps. */
  .advantis-jobs-v2 .filtrow .fanchor:not(.filled) .advs-value {
    display: none;
  }
  .advantis-jobs-v2 .filtrow .fanchor:not(.filled) .advs-trigger,
  .advantis-jobs-v2 .filtrow .fanchor:not(.filled) select {
    position: absolute;
    inset: 0;
    width: 100%;
  }
  /* Twin of the .advs-value rule above, for the pre-enhancement select: it has
     no equivalent "hide the placeholder" treatment, so the native "All …" text
     paints in --teal-d, left-aligned, right under the centred field label
     until adv-select.js runs. */
  .advantis-jobs-v2
    .filtrow
    .fanchor:not(.filled)
    select:not([data-adv-enhanced]) {
    color: transparent;
  }
  /* The label is the unfilled chip's only in-flow child (trigger and × are
     absolute), so centring it here matches the centred .advs-value on filled
     chips — otherwise picking a value would shunt the text from left to centre. */
  .advantis-jobs-v2 .filtrow .fanchor:not(.filled) {
    justify-content: center;
  }
  .advantis-jobs-v2 .filtrow .fanchor:not(.filled) label {
    position: static;
    transform: none;
    pointer-events: none;
    text-transform: none;
    letter-spacing: 0;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .advantis-jobs-v2 .filtrow .fanchor.filled label {
    display: none;
  }

  /* Chevron is dropped in the chip look. .nexttag stays hidden too: it's a badge
     floating at top:-10px and would clip out of the 40px row / stuck bar. The
     amber chip below carries the nudge on its own — the label still names the
     filter, so nothing is signalled by colour alone. */
  .advantis-jobs-v2 .filtrow .fanchor .chev,
  .advantis-jobs-v2 .filtrow .fanchor .nexttag {
    display: none;
  }

  /* Next filter to pick, mirroring the desktop .recommend select. Label text
     stays --ink: --amber on #fffbf2 is 3.85:1, under AA for 12.5px bold. */
  .advantis-jobs-v2 .filtrow .fanchor.recommend {
    border-color: var(--amber);
    background: #fffbf2;
  }
  /* Same amber glow + ajp-nudge pulse as the desktop .recommend select.
     Background stays transparent so the container's #fffbf2 fill above
     shows through evenly instead of a smaller rectangle inside the chip. */
  .advantis-jobs-v2 .filtrow .fanchor.recommend .advs-trigger,
  .advantis-jobs-v2 .filtrow .fanchor.recommend select {
    background: transparent;
    box-shadow: 0 0 0 3px rgba(217, 135, 12, 0.18);
    animation: ajp-nudge 1.8s ease-in-out infinite;
  }

  /* Inline × on filled chips (replaces the floating corner badge). Held at 20px:
     it's already under the 24px target-size guidance, so it buys text room by
     moving inboard, not by shrinking. */
  .advantis-jobs-v2 .filtrow .fanchor.filled .fclear {
    top: 50%;
    right: 6px;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    border: none;
    background: transparent;
    box-shadow: none;
    color: var(--teal-d);
  }

  /* Dropdown panels sit under their chip. */
  .advantis-jobs-v2 .filtrow .advs-panel {
    width: 240px;
    max-width: 80vw;
  }
  .advantis-jobs-v2 .filtrow .advs-opt {
    align-items: flex-start;
  }

  /* Sort moves into the filters sheet on phones. */
  .advantis-jobs-v2 .sheet .sortgrp {
    display: block;
  }

  /* Results-line City/ZIP radius control (specialty pages only). */
  .advantis-jobs-v2 .resbar-sp {
    display: block;
    flex: 1;
  }
  .advantis-jobs-v2 .resbar .radlbl {
    display: inline;
    font-size: 10.5px;
    font-weight: 700;
    color: var(--muted);
    white-space: nowrap;
  }
  .advantis-jobs-v2 .resbar .cityctl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 11px;
    border: 1.5px solid var(--line);
    border-radius: 999px;
    background: #fff;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ink);
  }
  .advantis-jobs-v2 .resbar .cityctl > svg {
    width: 14px;
    height: 14px;
    color: var(--amber);
    flex: none;
  }
  .advantis-jobs-v2 .resbar .cityctl input {
    border: none;
    outline: none;
    /* The site-chrome focus-zoom guard bumps this field to 16px on phones, so
       size for that, not the 12.5px below. em, not px: at 16px SF Pro (iOS)
       renders the "City or ZIP" placeholder wider than Roboto — a fixed 82px
       clipped it on iPhones (Mary, Jul 2026). 6em = 96px at the guard floor. */
    width: 6em;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
    background: transparent;
    text-overflow: ellipsis;
  }
  .advantis-jobs-v2 .resbar .cityctl input::placeholder {
    color: var(--muted);
    font-weight: 500;
    text-overflow: ellipsis;
  }
  .advantis-jobs-v2 .resbar .cityctl .cxin {
    display: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    place-items: center;
    color: var(--teal-d);
    font-size: 15px;
    line-height: 1;
    padding: 0;
    background: transparent;
    border: none;
    cursor: pointer;
  }
  .advantis-jobs-v2 .resbar .cityctl.set {
    border-color: var(--teal);
  }
  .advantis-jobs-v2 .resbar .cityctl.set > svg,
  .advantis-jobs-v2 .resbar .cityctl.set input {
    color: var(--teal-d);
  }
  .advantis-jobs-v2 .resbar .cityctl.set .cxin {
    display: grid;
  }

  /* Scope on its own line, the two stats side by side below — so the avg
	   weekly pay (the page's core value prop) is never scrolled out of view. */
  .advantis-jobs-v2 .marketin {
    padding: 12px 14px;
    gap: 7px 14px;
    flex-wrap: wrap;
  }

  .advantis-jobs-v2 .market .scope {
    font-size: 14px;
    flex-basis: 100%;
    margin-right: 0;
  }

  .advantis-jobs-v2 .explainmkt {
    margin-left: 10px;
    padding: 7px 12px;
    font-size: 12px;
  }

  .advantis-jobs-v2 .mstat {
    padding: 0;
    border-left: none;
  }

  .advantis-jobs-v2 .mstat + .mstat {
    border-left: 1px solid var(--line);
    padding-left: 14px;
  }

  .advantis-jobs-v2 .mstat .v {
    font-size: 14px;
  }

  .advantis-jobs-v2 .mstat .l {
    font-size: 11px;
  }

  .advantis-jobs-v2 .statechips {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 4px;
  }

  .advantis-jobs-v2 .statechips::-webkit-scrollbar {
    display: none;
  }

  /* ===== Mobile job card: pixel-match the v16 mockup ===== */
  .advantis-jobs-v2 .jcard.sA .jbody {
    padding: 14px 16px 12px;
  }

  .advantis-jobs-v2 .trrow {
    margin-bottom: 4px;
  }

  .advantis-jobs-v2 .tr.line {
    font-size: 9.5px;
    letter-spacing: 0.09em;
    gap: 4px;
  }

  .advantis-jobs-v2 .tr svg {
    width: 11px;
    height: 11px;
  }

  /* Heart matches the mockup's 36px square; it rides inline in the title row so
     the title no longer needs to clear an absolute corner cluster. */
  .advantis-jobs-v2 .jcard .heart {
    width: 36px;
    height: 36px;
  }

  .advantis-jobs-v2 .trow {
    padding-right: 0;
  }

  .advantis-jobs-v2 .tleft {
    padding-top: 6px;
  }

  .advantis-jobs-v2 .jtitle {
    font-size: 17px;
    line-height: 1.18;
  }

  /* Facility, contract length and the "View job" pill are dropped on phones;
     shift stays. The vsep dividers go too (only shift remains). */
  .advantis-jobs-v2 .jcard .fac2,
  .advantis-jobs-v2 .jcard .facrow .dur2,
  .advantis-jobs-v2 .jcard.sA .viewtop,
  .advantis-jobs-v2 .facrow .vsep {
    display: none;
  }

  .advantis-jobs-v2 .facrow {
    column-gap: 12px;
    row-gap: 5px;
  }

  .advantis-jobs-v2 .facrow .m2i {
    font-size: 12px;
  }

  .advantis-jobs-v2 .facrow .m2i svg {
    color: var(--muted);
    opacity: 1;
  }

  /* Location: mockup uses a plain teal pin (no tinted box) with 16px/800 text. */
  .advantis-jobs-v2 .jloc {
    margin-top: 11px;
    column-gap: 8px;
    row-gap: 6px;
    font-size: 16px;
    font-weight: 700;
  }

  .advantis-jobs-v2 .jloc .pinwrap {
    width: auto;
    height: auto;
    background: none;
    border-radius: 0;
  }

  /* Distance: outlined white pill (no tinted fill), per the mockup. */
  .advantis-jobs-v2 .jloc .dist {
    font-size: 11.5px;
    padding: 4px 10px;
    gap: 6px;
  }

  .advantis-jobs-v2 .jloc .dist svg {
    width: 11px;
    height: 11px;
  }

  .advantis-jobs-v2 .jloc .dist.teal {
    background: #fff;
    border: 1.5px solid var(--line);
    color: var(--teal-d);
  }

  /* Footer: pay (left) + Quick Apply (right); reassurance hint below. */
  .advantis-jobs-v2 .jactswrap {
    margin-top: 11px;
    padding-top: 11px;
    border-top-color: var(--line);
  }

  .advantis-jobs-v2 .jacts.jbottom {
    gap: 12px;
  }

  .advantis-jobs-v2 .payblk .pay {
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -0.02em;
  }

  .advantis-jobs-v2 .payblk .pay span {
    font-size: 11.5px;
    color: var(--muted);
  }

  .advantis-jobs-v2 .qa {
    padding: 10px 22px;
    min-height: 44px;
  }

  .advantis-jobs-v2 .applyhint {
    font-size: 10.5px;
    margin-top: 7px;
    padding-right: 20px;
  }

  .advantis-jobs-v2 .applyhint svg {
    width: 11px;
    height: 11px;
  }

  /* SMS alert: the inline [phone][button] row is flex:none and ~630px wide,
	   which set a horizontal-scroll floor on every phone. Stack it full-width
	   so the banner fits the viewport. */
  /* Flat, simpler job-alert band on mobile (Mary's mockup): drop the card
     gradient/border/shadow for a solid tinted band under the listings. */
  .advantis-jobs-v2 .alert {
    padding: 16px;
    background: #16263b;
    border: none;
    box-shadow: none;
    border-radius: 10px;
  }

  .advantis-jobs-v2 .alertrow {
    flex: 1 1 100%;
    width: 100%;
    flex-wrap: wrap;
  }

  .advantis-jobs-v2 .alertrow .wpcf7-form-control-wrap {
    flex: 1 1 100%;
  }

  .advantis-jobs-v2 .alertrow input[type="tel"] {
    width: 100%;
  }

  .advantis-jobs-v2 .alertrow input[type="submit"] {
    flex: 1 1 100%;
    width: 100%;
  }

  .advantis-jobs-v2 .infodot .tip {
    left: auto;
    right: -8px;
    transform: none;
  }

  .advantis-jobs-v2 .infodot .tip::after {
    left: auto;
    right: 14px;
  }
}

/* Pay (left) + Quick Apply (right) share one row on phones (mockup). Only the
   narrowest devices, where they'd clip, fall back to a stack. */
@media (max-width: 339px) {
  .advantis-jobs-v2 .jacts.jbottom {
    flex-wrap: wrap;
  }

  .advantis-jobs-v2 .jacts.jbottom .payblk {
    flex: 1 1 100%;
  }

  .advantis-jobs-v2 .jacts.jbottom .sp {
    display: none;
  }

  .advantis-jobs-v2 .jacts.jbottom .qa {
    flex: 1 1 100%;
    justify-content: center;
  }

  .advantis-jobs-v2 .applyhint {
    justify-content: center;
  }
}

/* ===== REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
  .advantis-jobs-v2 *,
  .advantis-jobs-v2 *::before,
  .advantis-jobs-v2 *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ===== Search suggestions =====
   Inventory-backed Typesense rows with an immediate local fallback. */

.advantis-jobs-v2 .searchrow {
  position: relative;
}

.advantis-jobs-v2 .qsuggest[hidden] {
  /* The display rule below would otherwise defeat the hidden attribute. */
  display: none;
}

.advantis-jobs-v2 .qsuggest {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 60;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(11, 37, 51, 0.16);
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  max-height: 330px;
  overflow-y: auto;
}

.advantis-jobs-v2 .qsuggest__row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
  background: none;
  cursor: pointer;
  font: inherit;
  font-size: 14.5px;
  color: var(--ink);
  text-align: left;
}

.advantis-jobs-v2 .qsuggest__row:hover,
.advantis-jobs-v2 .qsuggest__row.is-active {
  background: var(--teal-50, #eef7f7);
}

.advantis-jobs-v2 .qsuggest__t {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.advantis-jobs-v2 .qsuggest__t b {
  font-weight: 700;
  color: var(--adv-teal-d, #0b6e6e);
}

.advantis-jobs-v2 .qsuggest__ct {
  min-width: 64px;
  text-align: right;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--adv-teal-d, #0b6e6e);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ============================================================
   Landing content sections (after the jobs)
   Rendered by template-parts/landing/section-*.php on the root
   /travel-nurse-jobs/ page and advantis_landing singles.
   ============================================================ */

/* Below-listings SEO content. Full-bleed tinted panel with a hairline rule
   that only appears when sections exist (the wrapper is rendered conditionally),
   mirroring the reference .seo. */
.advantis-jobs-v2 .landing-sections {
  margin-top: 10px;
  border-top: 1px solid var(--line);
  background: var(--panel);
}

/* Centered, width-limited, padded content column (mirrors the reference .seoin). */
.advantis-jobs-v2 .landing-sections .wrap {
  max-width: 1000px;
  padding: 40px 26px 50px;
}

/* Each section is a centered reading column; the wrap padding owns the top gap. */
.advantis-jobs-v2 .lsec {
  margin: 36px auto 0;
}

.advantis-jobs-v2 .landing-sections .lsec:first-child {
  margin-top: 0;
}

.advantis-jobs-v2 .lsec-title {
  margin: 0 0 14px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.advantis-jobs-v2 .lsec-body {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--slate);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}

.advantis-jobs-v2 .lsec-body p:last-child {
  margin-bottom: 0;
}

.advantis-jobs-v2 .lsec-body h3 {
  margin: 22px 0 6px;
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
}

.advantis-jobs-v2 .lsec-body p {
  margin: 0 0 14px;
}

.advantis-jobs-v2 .lsec-body a {
  color: var(--teal-d);
}

/* Authority section: prose + two-box stat rail (matches the v9 reference). */
.advantis-jobs-v2 .lsec-authority-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}

.advantis-jobs-v2 .lsec-authority .railwrap {
  display: flex;
  gap: 26px;
  align-items: stretch;
}

.advantis-jobs-v2 .lsec-authority .railprose {
  flex: 1;
  min-width: 0;
}

.advantis-jobs-v2 .lsec-authority .railprose p {
  margin: 0 0 14px;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--slate);
}

.advantis-jobs-v2 .lsec-authority .railprose p:last-child {
  margin-bottom: 0;
}

.advantis-jobs-v2 .lsec-authority .railprose a {
  color: var(--teal-d);
  font-weight: 600;
}

.advantis-jobs-v2 .lsec-authority .statrail {
  flex: 0 0 200px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  padding-left: 24px;
  border-left: 1px solid var(--line);
}

.advantis-jobs-v2 .lsec-authority .bigstat .n {
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--ink);
}

.advantis-jobs-v2 .lsec-authority .bigstat .l {
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--slate);
}

.advantis-jobs-v2 .lsec-authority .bigstat .s {
  display: inline-block;
  margin-top: 4px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--teal-d);
}

.advantis-jobs-v2 .lsec-authority .statdiv {
  height: 1px;
  background: var(--line);
}

.advantis-jobs-v2 .lsec-authority .note {
  margin-top: 14px;
  font-size: 11.5px;
  line-height: 1.55;
  color: var(--muted);
}

/* Salary Insights (market) section: editable copy + live pay histogram. */
.advantis-jobs-v2 .lsec-market-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}

.advantis-jobs-v2 .lsec-market .livehead {
  display: flex;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.advantis-jobs-v2 .lsec-market .livedata {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  padding: 5px 11px;
  border-radius: 999px;
}

.advantis-jobs-v2 .lsec-market .livedata svg {
  width: 13px;
  height: 13px;
}

/* Mobile: the eyebrow pill and "Updated today" share the top row, heading drops
   below. Desktop (>=721px): the heading and "Updated today" sit inline on their
   own row (grid below). */
.advantis-jobs-v2 .lsec-market .livehead .livedata {
  order: 1;
}

.advantis-jobs-v2 .lsec-market .livehead .fresh {
  order: 2;
  margin-left: auto;
}

.advantis-jobs-v2 .lsec-market .livehead .lsec-title {
  order: 3;
  flex-basis: 100%;
  margin: 0;
}

@media (min-width: 721px) {
  .advantis-jobs-v2 .lsec-market .livehead:has(.lsec-title) {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
  }

  .advantis-jobs-v2 .lsec-market .livehead:has(.lsec-title) .livedata {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .advantis-jobs-v2 .lsec-market .livehead:has(.lsec-title) .lsec-title {
    order: 2;
    grid-column: 1;
  }

  .advantis-jobs-v2 .lsec-market .livehead:has(.lsec-title) .fresh {
    order: 3;
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
}

.advantis-jobs-v2 .lsec-market-desc {
  margin: 0 0 16px;
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--slate);
}

.advantis-jobs-v2 .lsec-market-desc p {
  margin: 0 0 12px;
}

.advantis-jobs-v2 .lsec-market-desc p:last-child {
  margin-bottom: 0;
}

.advantis-jobs-v2 .lsec-market .hist {
  display: flex;
  align-items: flex-end;
  gap: 7px;
  height: 118px;
  margin: 4px 0;
}

.advantis-jobs-v2 .lsec-market .hist .hb {
  flex: 1;
  background: #f8d8c3;
  border-radius: 6px 6px 0 0;
}

.advantis-jobs-v2 .lsec-market .hist .hb.mid {
  background: linear-gradient(180deg, var(--pay), var(--pay-d));
}

.advantis-jobs-v2 .lsec-market .histx {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--muted);
}

.advantis-jobs-v2 .lsec-market .histx .mid {
  color: var(--pay-d);
  font-weight: 700;
}

.advantis-jobs-v2 .lsec-market .paystats {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 16px;
}

.advantis-jobs-v2 .lsec-market .paystat .pn {
  font-weight: 800;
  font-size: 19px;
  letter-spacing: -0.01em;
  color: var(--pay);
}

.advantis-jobs-v2 .lsec-market .paystat .pl {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--slate);
}

.advantis-jobs-v2 .lsec-market .bjnote,
.advantis-jobs-v2 .lsec-market-snapshot .bjnote {
  margin-top: 12px;
  font-size: 11.5px;
  color: var(--muted);
}

/* Eyebrow tag pills: authority .tag2 and FAQ .bjeye (matches the v8 reference). */
.advantis-jobs-v2 .lsec-authority .tag2,
.advantis-jobs-v2 .lsec-faq .bjeye {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 14px;
  padding: 5px 11px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  border-radius: 999px;
}

.advantis-jobs-v2 .lsec-authority .tag2 svg,
.advantis-jobs-v2 .lsec-faq .bjeye svg {
  width: 13px;
  height: 13px;
}

/* FAQ accordion: same component as the single job listing (.amed-faq__*). */
/* Card surface, same as the reference .bjcard. Vertical padding is trimmed
   because the accordion rows already pad themselves (6 + 15 ≈ the card's 22px). */
.advantis-jobs-v2 .lsec-faq-list {
  margin-top: 4px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 4px 24px;
}

/* Heading row: title left, Expand all inline on the right (Brian's design). */
.advantis-jobs-v2 .lsec-faq .amed-faq__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__head .lsec-title {
  margin: 0;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__expand-all {
  appearance: none;
  -webkit-appearance: none;
  flex: none;
  white-space: nowrap;
  background: none;
  border: 0;
  padding: 8px 4px;
  font-family: inherit;
  font-weight: 700;
  font-size: 12.5px;
  color: var(--teal-d);
  cursor: pointer;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__expand-all:hover {
  text-decoration: underline;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__expand-all:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
  border-radius: 6px;
}

/* Keep it flat on hover/focus (Astra themes all <button>s). */
.advantis-jobs-v2 .lsec-faq .amed-faq__expand-all:hover,
.advantis-jobs-v2 .lsec-faq .amed-faq__expand-all:focus {
  background: none;
  color: var(--teal-d);
  box-shadow: none;
  text-decoration: underline;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__item {
  border-top: 1px solid var(--line);
}

/* The card border owns the top/bottom edge; items only divide each other. */
.advantis-jobs-v2 .lsec-faq .amed-faq__item:first-child {
  border-top: 0;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  padding: 15px 2px;
  font-weight: 700;
  font-size: 15.5px;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.advantis-jobs-v2 .lsec-faq .amed-faq__question::-webkit-details-marker {
  display: none;
}

/* Toggle box: bordered rounded square; plus fills teal and rotates to × on open. */
.advantis-jobs-v2 .lsec-faq .amed-faq__question::after {
  content: "";
  flex: none;
  box-sizing: border-box;
  width: 21px;
  height: 21px;
  border: 1.5px solid var(--line);
  border-radius: 6px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.6'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")
    center / 12px 12px no-repeat;
  transition:
    transform 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.advantis-jobs-v2 .lsec-faq details[open] .amed-faq__question::after {
  border-color: var(--teal);
  background: var(--teal)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.6'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E")
    center / 12px 12px no-repeat;
  transform: rotate(45deg);
}

.advantis-jobs-v2 .lsec-faq .amed-faq__answer {
  padding: 0 2px 16px;
  font-size: 14px;
  line-height: 1.6;
  color: #36424f;
}

@media (max-width: 720px) {
  .advantis-jobs-v2 .landing-sections .wrap {
    padding: 32px 16px 22px;
  }

  .advantis-jobs-v2 .lsec-title {
    font-size: 21px;
  }

  .advantis-jobs-v2 .lsec-authority .railwrap {
    flex-direction: column;
    gap: 14px;
  }

  .advantis-jobs-v2 .lsec-authority .statrail {
    flex-basis: auto;
    flex-direction: row;
    gap: 26px;
    padding-top: 14px;
    padding-left: 0;
    border-top: 1px solid var(--line);
    border-left: none;
  }

  .advantis-jobs-v2 .lsec-authority .statdiv {
    display: none;
  }
}

/* ===== Landing section: Live market data · by state (market-table) ===== */
/* Card chrome + live badge — these classes are styled only under .lsec-market
   elsewhere, so re-declare them for this section (white card, sized icon). */
.lsec-market-table .bjcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}
/* Mirrors the Salary Insights header (.lsec-market): on mobile the eyebrow pill
   and "Updated today" share the top row, heading drops below; on desktop the pill
   sits alone and the heading + badge share the row beneath. The by-state eyebrow
   text is wider, so on mobile the pill shrinks (text may wrap) to keep the badge
   alongside it rather than pushing it onto a third row. */
.lsec-market-table .livehead {
  display: flex;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.lsec-market-table .livehead .livedata {
  order: 1;
  flex: 1 1 0;
  min-width: 0;
  max-width: max-content;
}
.lsec-market-table .livehead .fresh {
  order: 2;
  flex: 0 0 auto;
  margin-left: auto;
}
.lsec-market-table .livehead .lsec-title {
  order: 3;
  flex-basis: 100%;
  margin: 0;
}
@media (min-width: 721px) {
  .lsec-market-table .livehead:has(.lsec-title) {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
  }
  .lsec-market-table .livehead:has(.lsec-title) .livedata {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .lsec-market-table .livehead:has(.lsec-title) .lsec-title {
    order: 2;
    grid-column: 1;
  }
  .lsec-market-table .livehead:has(.lsec-title) .fresh {
    order: 3;
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
}
.lsec-market-table .livedata {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  padding: 5px 11px;
  border-radius: 999px;
}
.lsec-market-table .livedata svg {
  width: 13px;
  height: 13px;
  flex: 0 0 auto;
}
.lsec-market-table .bjnote {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 12px;
}
.lsec-market-table .bjnote a {
  font-weight: 700;
}
.lsec-market-table .tblintro {
  font-size: 14px;
  color: var(--slate);
  line-height: 1.65;
  margin: 0 0 16px;
}
.lsec-market-table .tblintro strong {
  color: var(--ink);
}
.lsec-market-table .taphint {
  font-size: 12px;
  color: var(--muted);
  margin: 0 0 14px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.lsec-market-table .taphint svg {
  width: 14px;
  height: 14px;
  color: var(--teal-d);
  flex: 0 0 auto;
}

.lsec-market-table .mkchips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 0 0 14px;
}
.lsec-market-table .mkchips .lbl {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.lsec-market-table .mkchip {
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--slate);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 7px 13px 7px 11px;
  cursor: pointer;
  transition: all 0.12s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.lsec-market-table .mkchip svg {
  width: 13px;
  height: 13px;
  opacity: 0.55;
}
.lsec-market-table .mkchip:hover {
  border-color: var(--teal-line);
}
.lsec-market-table .mkchip:focus-visible {
  outline: 2px solid var(--teal-d);
  outline-offset: 2px;
}
.lsec-market-table .mkchip.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
}
.lsec-market-table .mkchip.active svg {
  opacity: 1;
}
.lsec-market-table .mkchip.clear {
  color: var(--muted);
  border-style: dashed;
  padding-left: 13px;
}
.lsec-market-table .chipcount {
  font-size: 12.5px;
  color: var(--muted);
  font-weight: 600;
  margin-left: 2px;
}

.lsec-market-table .sortbar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 14px;
}
.lsec-market-table .sortbar .sl {
  font-size: 12px;
  font-weight: 700;
  color: var(--slate);
}
.lsec-market-table .sortbar select {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 7px 11px;
  background: #fff;
  cursor: pointer;
}
.lsec-market-table .sortbar select:focus-visible {
  outline: 2px solid var(--teal-d);
  outline-offset: 2px;
}

.lsec-market-table .scwrap {
  overflow-x: auto;
}
.lsec-market-table .sctable {
  width: 100%;
  border-collapse: collapse;
  font-size: 12.5px;
  min-width: 540px;
}
.lsec-market-table .sctable th {
  text-align: left;
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  font-weight: 800;
  padding: 8px 10px;
  border-bottom: 2px solid var(--line);
}
.lsec-market-table .sctable td {
  padding: 9px 10px;
  border-bottom: 1px solid var(--line-2);
}
.lsec-market-table .sctable.sortable th,
.lsec-market-table .sctable.sortable td {
  text-align: center;
}
.lsec-market-table .sctable.sortable th:first-child,
.lsec-market-table .sctable.sortable td:first-child {
  text-align: left;
}
.lsec-market-table .sctable.sortable td.outlook {
  text-align: left;
}
.lsec-market-table .sctable td.nm a {
  font-weight: 700;
  text-decoration: none;
  color: var(--teal-d);
}
.lsec-market-table .sctable td.nm a:hover {
  text-decoration: underline;
}
.lsec-market-table .sctable td.big b {
  font-family: system-ui, sans-serif;
  font-size: 15px;
}
.lsec-market-table .sctable .yes {
  color: var(--green);
  font-weight: 700;
}
.lsec-market-table .sctable .no {
  color: var(--muted);
}
.lsec-market-table .sctable td.pay {
  font-size: 13px;
}
.lsec-market-table .sctable td.rent,
.lsec-market-table .sctable td.tax {
  font-size: 13px;
  color: var(--ink);
  font-weight: 600;
}

/* Columns with a definition behave as the tooltip trigger themselves: the
   heading label gets a dotted underline (the "what does this mean" convention)
   so no bordered icon has to squeeze into the narrow, often two-line cell. */
.lsec-market-table .sctable th .thinfo {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  text-decoration: underline dotted var(--teal-d);
  text-underline-offset: 3px;
  text-decoration-thickness: 1.2px;
  transition: color 0.15s ease;
}
.lsec-market-table .sctable th .thinfo:hover {
  color: var(--teal-d);
}
.lsec-market-table .sctable th .thinfo:focus-visible {
  outline: 2px solid var(--teal-d);
  outline-offset: 2px;
  border-radius: 2px;
}
.lsec-market-table .pv {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  color: var(--green);
  font-size: 14px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0 0 1px;
  border-bottom: 1px dotted var(--green);
  line-height: 1.2;
}
.lsec-market-table .pv:hover {
  color: #0e7e52;
}
.lsec-market-table .pv:focus-visible {
  outline: 2px solid var(--teal-d);
  outline-offset: 3px;
  border-radius: 3px;
}

.lsec-market-table .outlook {
  max-width: 230px;
}
.lsec-market-table .ol-stat {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
}
.lsec-market-table .ol-src {
  display: block;
  font-size: 10px;
  font-weight: 700;
  color: var(--teal-d);
  margin-top: 2px;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.lsec-market-table .verified {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
  margin-top: 10px;
}

/* Tighten numeric columns, give Market outlook room. */
.lsec-market-table .sctable.sortable {
  table-layout: fixed;
}
.lsec-market-table .sctable.sortable td:not(.outlook) {
  white-space: nowrap;
}
.lsec-market-table .sctable.sortable td.outlook,
.lsec-market-table .sctable.sortable th:nth-child(8) {
  border-left: 1px solid var(--line);
}
.lsec-market-table .sctable.sortable th:nth-child(4),
.lsec-market-table .sctable.sortable td:nth-child(4),
.lsec-market-table .sctable.sortable th:nth-child(5),
.lsec-market-table .sctable.sortable td:nth-child(5),
.lsec-market-table .sctable.sortable th:nth-child(6),
.lsec-market-table .sctable.sortable td:nth-child(6),
.lsec-market-table .sctable.sortable th:nth-child(7),
.lsec-market-table .sctable.sortable td:nth-child(7) {
  text-align: right;
}
.lsec-market-table .sctable.sortable th:nth-child(8) {
  text-align: left;
}

/* Mobile cards (hidden on desktop). */
.lsec-market-table .scards {
  display: none;
  flex-direction: column;
  gap: 10px;
}
.lsec-market-table .scard {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 13px 15px;
  background: #fff;
}
.lsec-market-table .scard .top {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 9px;
}
.lsec-market-table .scard .top .nm {
  font-family: system-ui, sans-serif;
  font-weight: 700;
  font-size: 16px;
}
.lsec-market-table .scard .top .nm a {
  text-decoration: none;
  color: var(--ink);
}
.lsec-market-table .scard .top .pv {
  font-size: 15px;
}
.lsec-market-table .scard .grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  font-size: 12.5px;
  color: var(--slate);
}
.lsec-market-table .scard .grid b {
  color: var(--ink);
}
.lsec-market-table .scard .grid .g {
  color: var(--green);
  font-weight: 700;
}
.lsec-market-table .cardol {
  font-size: 12px;
  color: var(--slate);
  line-height: 1.4;
  margin-top: 9px;
  padding-top: 9px;
  border-top: 1px dashed var(--line);
}
.lsec-market-table .cardol b {
  color: var(--ink);
}
.lsec-market-table .cardol .ol-src {
  display: inline;
  margin-left: 4px;
}

.lsec-market-table .emptyrow {
  display: none;
  text-align: center;
  color: var(--muted);
  font-size: 13.5px;
  padding: 24px 0;
}
.lsec-market-table .is-extra {
  display: none;
}

/* Pay / info popover. position:absolute + moved to <body> by market-table.js so
   it scrolls with the page (not pinned) and isn't clipped by the section. */
/* Popover is reparented to <body> by market-table.js, so it sits outside the
   .advantis-jobs-v2 scope where the design tokens live — use literal values here
   (navy #16263b background / teal-line head) or var() resolves to transparent. */
.amed-mkpop {
  position: absolute;
  z-index: 400;
  width: 300px;
  max-width: 88vw;
  background: #16263b;
  color: #fff;
  border-radius: 13px;
  padding: 15px 17px;
  box-shadow: 0 14px 38px rgba(15, 23, 34, 0.3);
  font-family: system-ui, sans-serif;
  font-size: 12.5px;
  line-height: 1.55;
  display: none;
}
.amed-mkpop.show {
  display: block;
}
.amed-mkpop .ph {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #bde8f4;
  margin-bottom: 9px;
}
.amed-mkpop .calc .row2 {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 3px 0;
  font-family: system-ui, sans-serif;
}
.amed-mkpop .calc .tot {
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  margin-top: 6px;
  padding-top: 7px;
  font-weight: 700;
}
.amed-mkpop .calc .tot span:last-child {
  color: #7fe3b6;
}
.amed-mkpop .src {
  color: #9fb3c8;
  font-size: 11px;
  margin-top: 9px;
}

@media (max-width: 760px) {
  .lsec-market-table .scwrap {
    display: none;
  }
  .lsec-market-table .scards {
    display: flex;
  }
  .lsec-market-table .outlook {
    max-width: none;
  }
}

/* Income tax labels can be longer than the narrow column — let them wrap
   instead of overflowing into the adjacent "Pay after rent" cell. */
.lsec-market-table .sctable.sortable td.tax {
  white-space: normal;
}

/* ----------------------------------------------------------
 * Landing section: Facilities (by state) — facility cards.
 * Ported from the design mockup; seal/shadow-h tokens get fallbacks since
 * they are not part of the live jobs-archive token set.
 * ---------------------------------------------------------- */
.fi-panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 28px 30px 30px;
  box-shadow: var(--shadow);
}
.fi-panel .fi-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 9px;
  color: var(--ink);
}
.fi-panel .fi-intro {
  font-size: 14.5px;
  color: var(--slate);
  margin: 0 0 4px;
  line-height: 1.62;
}
.fi-panel .fi-intro p {
  margin: 0 0 0.6em;
}
.fi-panel .fi-intro p:last-child {
  margin-bottom: 0;
}
.fi-panel .fi-intro a {
  color: var(--teal-d);
  text-decoration: underline;
}
.fi-panel .fi-intro .num {
  font-weight: 700;
  color: var(--ink);
  font-feature-settings: "tnum";
  letter-spacing: -0.01em;
}
.fi-panel .fi-intro strong {
  font-family: system-ui, sans-serif;
  font-weight: 700;
  color: var(--ink);
  font-feature-settings: "tnum";
  letter-spacing: -0.01em;
}
.fi-panel .metro {
  margin-top: 22px;
}
.fi-panel .fgrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.fi-panel .fcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  padding: 18px 19px 17px;
  display: flex;
  flex-direction: column;
  transition:
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    transform 0.18s ease;
}
.fi-panel .fcard:hover {
  box-shadow: var(--shadow-h, 0 8px 24px rgba(16, 24, 40, 0.1));
  border-color: var(--teal-line);
  transform: translateY(-1px);
}
.fi-panel .fc-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.fi-panel .fc-name {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--ink);
  line-height: 1.25;
  display: block;
}
.fi-panel .fc-cred {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 3px 9px 3px 7px;
  border-radius: 7px;
  background: var(--seal-fill, var(--teal-soft));
  color: var(--seal-ink, var(--teal-d));
  border: 1px solid var(--seal-line, var(--teal-line));
  white-space: nowrap;
}
.fi-panel .fc-cred .seal {
  color: var(--teal-d);
  font-size: 9px;
  line-height: 1;
}
.fi-panel .fc-set {
  font-size: 13px;
  color: var(--ink);
  font-weight: 600;
  margin: 9px 0 2px;
  line-height: 1.4;
}
.fi-panel .fc-hiring {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 8px;
  padding-top: 12px;
  border-top: 1px solid var(--line-2);
  margin-bottom: 12px;
}
.fi-panel .fc-hlabel {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--slate);
}
.fi-panel .fc-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-soft);
  flex-shrink: 0;
}
.fi-panel .hpill {
  font-size: 12px;
  font-weight: 600;
  color: var(--slate);
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 7px;
  padding: 2px 8px;
  line-height: 1.5;
}
.fi-panel .hpill.lead {
  color: var(--teal-d);
  background: var(--teal-soft);
  border-color: var(--teal-line);
  font-weight: 700;
}
.fi-panel .fc-fit {
  font-size: 13px;
  color: var(--slate);
  line-height: 1.55;
  margin: auto 0 0;
}
@media (max-width: 640px) {
  .fi-panel {
    padding: 22px 17px 24px;
    border-radius: 16px;
  }
  .fi-panel .fi-title {
    font-size: 21px;
  }
  .fi-panel .fgrid {
    grid-template-columns: 1fr;
  }
}

/* =====================================================================
   "At a glance" snapshot section (state pages). Ported from the v6 .s1
   reference; KPI grid + salary CTA/popover + top-cities strip + licensing.
   ===================================================================== */
/* Header: eyebrow + heading + "Updated today" badge. Mirrors .lsec-market —
   mobile: eyebrow and badge share the top row, heading drops below; desktop
   (>=721px): eyebrow on its own row, heading left with the badge inline right. */
.advantis-jobs-v2 .lsec-at-a-glance .livehead,
.advantis-jobs-v2 .lsec-market-snapshot .livehead {
  display: flex;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.advantis-jobs-v2 .lsec-at-a-glance .livehead .tag2,
.advantis-jobs-v2 .lsec-market-snapshot .livehead .tag2 {
  order: 1;
  flex: 1 1 0;
  min-width: 0;
}

.advantis-jobs-v2 .lsec-at-a-glance .livehead .fresh,
.advantis-jobs-v2 .lsec-market-snapshot .livehead .fresh {
  order: 2;
  flex: 0 0 auto;
  margin-left: auto;
}

.advantis-jobs-v2 .lsec-at-a-glance .livehead .lsec-title,
.advantis-jobs-v2 .lsec-market-snapshot .livehead .lsec-title {
  order: 3;
  flex-basis: 100%;
  margin: 0;
}

@media (min-width: 721px) {
  .advantis-jobs-v2 .lsec-at-a-glance .livehead,
  .advantis-jobs-v2 .lsec-market-snapshot .livehead {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
  }

  .advantis-jobs-v2 .lsec-at-a-glance .livehead .tag2,
  .advantis-jobs-v2 .lsec-market-snapshot .livehead .tag2 {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .advantis-jobs-v2 .lsec-at-a-glance .livehead .lsec-title,
  .advantis-jobs-v2 .lsec-market-snapshot .livehead .lsec-title {
    order: 2;
    grid-column: 1;
  }

  .advantis-jobs-v2 .lsec-at-a-glance .livehead .fresh,
  .advantis-jobs-v2 .lsec-market-snapshot .livehead .fresh {
    order: 3;
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
}

.advantis-jobs-v2 .lsec-at-a-glance .tag2,
.advantis-jobs-v2 .lsec-market-snapshot .tag2 {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 11px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  border-radius: 999px;
}

.advantis-jobs-v2 .lsec-at-a-glance .bjcard,
.advantis-jobs-v2 .lsec-market-snapshot .bjcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}

.advantis-jobs-v2 .lsec-at-a-glance .kgrid,
.advantis-jobs-v2 .lsec-market-snapshot .kgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi,
.advantis-jobs-v2 .lsec-market-snapshot .kpi {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 13px 14px;
  background: var(--card);
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi .v,
.advantis-jobs-v2 .lsec-market-snapshot .kpi .v {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: 22px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi .v.pay,
.advantis-jobs-v2 .lsec-market-snapshot .kpi .v.pay {
  color: var(--pay);
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi .v.good,
.advantis-jobs-v2 .lsec-market-snapshot .kpi .v.good {
  color: var(--green);
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi .k,
.advantis-jobs-v2 .lsec-market-snapshot .kpi .k {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  margin-top: 6px;
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi .k.demand-note {
  font-size: 13px;
  line-height: 1.35;
}

.advantis-jobs-v2 .lsec-at-a-glance .kpi .s,
.advantis-jobs-v2 .lsec-market-snapshot .kpi .s {
  font-size: 10.5px;
  color: var(--slate);
  margin-top: 2px;
  line-height: 1.34;
}

/* Salary deep-link CTA + hover preview + licensing callout (national snapshot;
   mirrors the at-a-glance component, scoped to .lsec-market-snapshot). */
.advantis-jobs-v2 .lsec-market-snapshot .salwrap,
.advantis-jobs-v2 .lsec-market .salwrap,
.advantis-jobs-v2 .lsec-pay-by-state .salwrap {
  position: relative;
  margin-top: 14px;
}
.advantis-jobs-v2 .lsec-market-snapshot .salcta,
.advantis-jobs-v2 .lsec-market .salcta,
.advantis-jobs-v2 .lsec-pay-by-state .salcta {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  text-decoration: none;
  background: linear-gradient(180deg, var(--teal-soft), #fff);
  border: 1px solid var(--teal-line);
  border-radius: 12px;
  padding: 11px 14px;
  transition:
    box-shadow 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
.advantis-jobs-v2 .lsec-market-snapshot .salcta:hover,
.advantis-jobs-v2 .lsec-market .salcta:hover,
.advantis-jobs-v2 .lsec-pay-by-state .salcta:hover {
  box-shadow: 0 8px 24px rgba(15, 23, 34, 0.12);
  border-color: var(--teal);
}
.advantis-jobs-v2 .lsec-market-snapshot .salcta:focus-visible,
.advantis-jobs-v2 .lsec-market .salcta:focus-visible,
.advantis-jobs-v2 .lsec-pay-by-state .salcta:focus-visible {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-soft);
}
.advantis-jobs-v2 .lsec-market-snapshot .salic,
.advantis-jobs-v2 .lsec-market .salic,
.advantis-jobs-v2 .lsec-pay-by-state .salic {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #fff;
  border: 1px solid var(--teal-line);
  display: grid;
  place-items: center;
  color: var(--teal-d);
}
.advantis-jobs-v2 .lsec-market-snapshot .salic svg,
.advantis-jobs-v2 .lsec-market .salic svg,
.advantis-jobs-v2 .lsec-pay-by-state .salic svg {
  width: 18px;
  height: 18px;
}
.advantis-jobs-v2 .lsec-market-snapshot .saltxt,
.advantis-jobs-v2 .lsec-market .saltxt,
.advantis-jobs-v2 .lsec-pay-by-state .saltxt {
  flex: 1;
  line-height: 1.3;
}
.advantis-jobs-v2 .lsec-market-snapshot .saltxt b,
.advantis-jobs-v2 .lsec-market .saltxt b,
.advantis-jobs-v2 .lsec-pay-by-state .saltxt b {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
}
.advantis-jobs-v2 .lsec-market-snapshot .saltxt > span,
.advantis-jobs-v2 .lsec-market .saltxt > span,
.advantis-jobs-v2 .lsec-pay-by-state .saltxt > span {
  display: block;
  font-size: 11.5px;
  color: var(--slate);
  font-weight: 600;
  margin-top: 1px;
}
.advantis-jobs-v2 .lsec-market-snapshot .salnew,
.advantis-jobs-v2 .lsec-market .salnew,
.advantis-jobs-v2 .lsec-pay-by-state .salnew {
  display: inline-block;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  border: 1px solid var(--teal-line);
  border-radius: 5px;
  padding: 1px 6px;
  margin-left: 7px;
  vertical-align: middle;
}
.advantis-jobs-v2 .lsec-market-snapshot .salar,
.advantis-jobs-v2 .lsec-market .salar,
.advantis-jobs-v2 .lsec-pay-by-state .salar {
  flex: none;
  color: var(--teal-d);
}
.advantis-jobs-v2 .lsec-market-snapshot .salar svg,
.advantis-jobs-v2 .lsec-market .salar svg,
.advantis-jobs-v2 .lsec-pay-by-state .salar svg {
  width: 18px;
  height: 18px;
  display: block;
}
.advantis-jobs-v2 .lsec-market-snapshot .salpop,
.advantis-jobs-v2 .lsec-market .salpop,
.advantis-jobs-v2 .lsec-pay-by-state .salpop {
  position: absolute;
  bottom: calc(100% + 13px);
  left: 0;
  width: 300px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition:
    opacity 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.22s;
  z-index: 250;
  overflow: hidden;
  cursor: default;
}
.advantis-jobs-v2 .lsec-market-snapshot .salpop::before,
.advantis-jobs-v2 .lsec-market .salpop::before,
.advantis-jobs-v2 .lsec-pay-by-state .salpop::before {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 0;
  right: 0;
  height: 15px;
}
.advantis-jobs-v2 .lsec-market-snapshot .salpop::after,
.advantis-jobs-v2 .lsec-market .salpop::after,
.advantis-jobs-v2 .lsec-pay-by-state .salpop::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 30px;
  border: 8px solid transparent;
  border-top-color: #fff;
}
.advantis-jobs-v2 .lsec-market-snapshot .salwrap:hover .salpop,
.advantis-jobs-v2 .lsec-market-snapshot .salwrap:focus-within .salpop,
.advantis-jobs-v2 .lsec-market .salwrap:hover .salpop,
.advantis-jobs-v2 .lsec-market .salwrap:focus-within .salpop,
.advantis-jobs-v2 .lsec-pay-by-state .salwrap:hover .salpop,
.advantis-jobs-v2 .lsec-pay-by-state .salwrap:focus-within .salpop {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-head,
.advantis-jobs-v2 .lsec-market .sp-head,
.advantis-jobs-v2 .lsec-pay-by-state .sp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 13px;
  background: linear-gradient(90deg, #0879a2, #0ca2d4);
  color: #fff;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-head .t,
.advantis-jobs-v2 .lsec-market .sp-head .t,
.advantis-jobs-v2 .lsec-pay-by-state .sp-head .t {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-head .u,
.advantis-jobs-v2 .lsec-market .sp-head .u,
.advantis-jobs-v2 .lsec-pay-by-state .sp-head .u {
  font-size: 9px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.18);
  padding: 2px 7px;
  border-radius: 999px;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-body,
.advantis-jobs-v2 .lsec-market .sp-body,
.advantis-jobs-v2 .lsec-pay-by-state .sp-body {
  padding: 12px 13px 13px;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-hero,
.advantis-jobs-v2 .lsec-market .sp-hero,
.advantis-jobs-v2 .lsec-pay-by-state .sp-hero {
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-hero .big,
.advantis-jobs-v2 .lsec-market .sp-hero .big,
.advantis-jobs-v2 .lsec-pay-by-state .sp-hero .big {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: 23px;
  color: var(--pay);
  line-height: 1;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-hero .rng,
.advantis-jobs-v2 .lsec-market .sp-hero .rng,
.advantis-jobs-v2 .lsec-pay-by-state .sp-hero .rng {
  font-size: 10.5px;
  color: var(--slate);
  font-weight: 600;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-bar,
.advantis-jobs-v2 .lsec-market .sp-bar,
.advantis-jobs-v2 .lsec-pay-by-state .sp-bar {
  height: 6px;
  border-radius: 999px;
  background: var(--line);
  margin: 9px 0 11px;
  position: relative;
  overflow: hidden;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-bar i,
.advantis-jobs-v2 .lsec-market .sp-bar i,
.advantis-jobs-v2 .lsec-pay-by-state .sp-bar i {
  position: absolute;
  left: 14%;
  right: 18%;
  top: 0;
  bottom: 0;
  background: linear-gradient(90deg, var(--pay), #f0a070);
  border-radius: 999px;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-row,
.advantis-jobs-v2 .lsec-market .sp-row,
.advantis-jobs-v2 .lsec-pay-by-state .sp-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  padding: 5px 0;
  border-top: 1px solid var(--line-2);
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-row .nm,
.advantis-jobs-v2 .lsec-market .sp-row .nm,
.advantis-jobs-v2 .lsec-pay-by-state .sp-row .nm {
  color: var(--ink);
  font-weight: 700;
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-row .pv,
.advantis-jobs-v2 .lsec-market .sp-row .pv,
.advantis-jobs-v2 .lsec-pay-by-state .sp-row .pv {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  color: var(--pay);
}
.advantis-jobs-v2 .lsec-market-snapshot .sp-foot,
.advantis-jobs-v2 .lsec-market .sp-foot,
.advantis-jobs-v2 .lsec-pay-by-state .sp-foot {
  font-size: 9.5px;
  color: var(--muted);
  margin-top: 10px;
  line-height: 1.42;
}
.advantis-jobs-v2 .lsec-market-snapshot .liccallout {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--teal-d);
  text-decoration: none;
}
.advantis-jobs-v2 .lsec-market-snapshot .liccallout:hover {
  text-decoration: underline;
}
.advantis-jobs-v2 .lsec-market-snapshot .liccallout .ar {
  display: inline-flex;
  color: var(--teal-d);
}

/* Salary deep-link CTA + hover preview. */
.advantis-jobs-v2 .lsec-at-a-glance .salwrap,
.advantis-jobs-v2 .lsec-market .salwrap,
.advantis-jobs-v2 .lsec-pay-by-state .salwrap {
  position: relative;
  margin-top: 12px;
}

.advantis-jobs-v2 .lsec-at-a-glance .salcta,
.advantis-jobs-v2 .lsec-market .salcta,
.advantis-jobs-v2 .lsec-pay-by-state .salcta {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  text-decoration: none;
  background: linear-gradient(180deg, var(--teal-soft), #fff);
  border: 1px solid var(--teal-line);
  border-radius: 12px;
  padding: 11px 14px;
  transition:
    box-shadow 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

.advantis-jobs-v2 .lsec-at-a-glance .salcta:hover,
.advantis-jobs-v2 .lsec-market .salcta:hover,
.advantis-jobs-v2 .lsec-pay-by-state .salcta:hover {
  box-shadow: 0 8px 24px rgba(15, 23, 34, 0.12);
  border-color: var(--teal);
}

.advantis-jobs-v2 .lsec-at-a-glance .salcta:focus-visible,
.advantis-jobs-v2 .lsec-market .salcta:focus-visible,
.advantis-jobs-v2 .lsec-pay-by-state .salcta:focus-visible {
  outline: none;
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-soft);
}

.advantis-jobs-v2 .lsec-at-a-glance .salic,
.advantis-jobs-v2 .lsec-market .salic,
.advantis-jobs-v2 .lsec-pay-by-state .salic {
  flex: none;
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #fff;
  border: 1px solid var(--teal-line);
  display: grid;
  place-items: center;
  color: var(--teal-d);
}

.advantis-jobs-v2 .lsec-at-a-glance .salic svg,
.advantis-jobs-v2 .lsec-market .salic svg,
.advantis-jobs-v2 .lsec-pay-by-state .salic svg {
  width: 18px;
  height: 18px;
}

.advantis-jobs-v2 .lsec-at-a-glance .saltxt,
.advantis-jobs-v2 .lsec-market .saltxt,
.advantis-jobs-v2 .lsec-pay-by-state .saltxt {
  flex: 1;
  line-height: 1.3;
}

.advantis-jobs-v2 .lsec-at-a-glance .saltxt b,
.advantis-jobs-v2 .lsec-market .saltxt b,
.advantis-jobs-v2 .lsec-pay-by-state .saltxt b {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ink);
}

.advantis-jobs-v2 .lsec-at-a-glance .saltxt > span,
.advantis-jobs-v2 .lsec-market .saltxt > span,
.advantis-jobs-v2 .lsec-pay-by-state .saltxt > span {
  display: block;
  font-size: 11.5px;
  color: var(--slate);
  font-weight: 600;
  margin-top: 1px;
}

.advantis-jobs-v2 .lsec-at-a-glance .salnew,
.advantis-jobs-v2 .lsec-market .salnew,
.advantis-jobs-v2 .lsec-pay-by-state .salnew {
  display: inline-block;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  border: 1px solid var(--teal-line);
  border-radius: 5px;
  padding: 1px 6px;
  margin-left: 7px;
  vertical-align: middle;
}

.advantis-jobs-v2 .lsec-at-a-glance .salar,
.advantis-jobs-v2 .lsec-market .salar,
.advantis-jobs-v2 .lsec-pay-by-state .salar {
  flex: none;
  color: var(--teal-d);
}

.advantis-jobs-v2 .lsec-at-a-glance .salar svg,
.advantis-jobs-v2 .lsec-market .salar svg,
.advantis-jobs-v2 .lsec-pay-by-state .salar svg {
  width: 18px;
  height: 18px;
  display: block;
}

.advantis-jobs-v2 .lsec-at-a-glance .salpop,
.advantis-jobs-v2 .lsec-market .salpop,
.advantis-jobs-v2 .lsec-pay-by-state .salpop {
  position: absolute;
  bottom: calc(100% + 13px);
  left: 0;
  width: 300px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--shadow-lg);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition:
    opacity 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.22s;
  z-index: 250;
  overflow: hidden;
  cursor: default;
}

.advantis-jobs-v2 .lsec-at-a-glance .salpop::before,
.advantis-jobs-v2 .lsec-market .salpop::before,
.advantis-jobs-v2 .lsec-pay-by-state .salpop::before {
  content: "";
  position: absolute;
  bottom: -15px;
  left: 0;
  right: 0;
  height: 15px;
}

.advantis-jobs-v2 .lsec-at-a-glance .salpop::after,
.advantis-jobs-v2 .lsec-market .salpop::after,
.advantis-jobs-v2 .lsec-pay-by-state .salpop::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 30px;
  border: 8px solid transparent;
  border-top-color: #fff;
}

.advantis-jobs-v2 .lsec-at-a-glance .salwrap:hover .salpop,
.advantis-jobs-v2 .lsec-at-a-glance .salwrap:focus-within .salpop,
.advantis-jobs-v2 .lsec-market .salwrap:hover .salpop,
.advantis-jobs-v2 .lsec-market .salwrap:focus-within .salpop,
.advantis-jobs-v2 .lsec-pay-by-state .salwrap:hover .salpop,
.advantis-jobs-v2 .lsec-pay-by-state .salwrap:focus-within .salpop {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-head,
.advantis-jobs-v2 .lsec-market .sp-head,
.advantis-jobs-v2 .lsec-pay-by-state .sp-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 11px 13px;
  background: linear-gradient(90deg, #0879a2, #0ca2d4);
  color: #fff;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-head .t,
.advantis-jobs-v2 .lsec-market .sp-head .t,
.advantis-jobs-v2 .lsec-pay-by-state .sp-head .t {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-head .u,
.advantis-jobs-v2 .lsec-market .sp-head .u,
.advantis-jobs-v2 .lsec-pay-by-state .sp-head .u {
  font-size: 9px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.18);
  padding: 2px 7px;
  border-radius: 999px;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-body,
.advantis-jobs-v2 .lsec-market .sp-body,
.advantis-jobs-v2 .lsec-pay-by-state .sp-body {
  padding: 12px 13px 13px;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-hero,
.advantis-jobs-v2 .lsec-market .sp-hero,
.advantis-jobs-v2 .lsec-pay-by-state .sp-hero {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-hero .big,
.advantis-jobs-v2 .lsec-market .sp-hero .big,
.advantis-jobs-v2 .lsec-pay-by-state .sp-hero .big {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: 23px;
  color: var(--pay);
  line-height: 1;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-hero .rng,
.advantis-jobs-v2 .lsec-market .sp-hero .rng,
.advantis-jobs-v2 .lsec-pay-by-state .sp-hero .rng {
  font-size: 10.5px;
  color: var(--slate);
  font-weight: 600;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-bar,
.advantis-jobs-v2 .lsec-market .sp-bar,
.advantis-jobs-v2 .lsec-pay-by-state .sp-bar {
  height: 6px;
  border-radius: 999px;
  background: var(--line);
  margin: 9px 0 11px;
  position: relative;
  overflow: hidden;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-bar i,
.advantis-jobs-v2 .lsec-market .sp-bar i,
.advantis-jobs-v2 .lsec-pay-by-state .sp-bar i {
  position: absolute;
  left: 14%;
  right: 18%;
  top: 0;
  bottom: 0;
  background: linear-gradient(90deg, var(--pay), #f0a070);
  border-radius: 999px;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-row,
.advantis-jobs-v2 .lsec-market .sp-row,
.advantis-jobs-v2 .lsec-pay-by-state .sp-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  padding: 5px 0;
  border-top: 1px solid var(--line-2);
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-row .nm,
.advantis-jobs-v2 .lsec-market .sp-row .nm,
.advantis-jobs-v2 .lsec-pay-by-state .sp-row .nm {
  color: var(--ink);
  font-weight: 700;
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-row .pv,
.advantis-jobs-v2 .lsec-market .sp-row .pv,
.advantis-jobs-v2 .lsec-pay-by-state .sp-row .pv {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  color: var(--pay);
}

.advantis-jobs-v2 .lsec-at-a-glance .sp-foot,
.advantis-jobs-v2 .lsec-market .sp-foot,
.advantis-jobs-v2 .lsec-pay-by-state .sp-foot {
  font-size: 9.5px;
  color: var(--muted);
  margin-top: 10px;
  line-height: 1.42;
}

/* Top-cities strip (shared by the live state snapshot and the manual grid). */
.advantis-jobs-v2 .lsec-at-a-glance .fstrip,
.advantis-jobs-v2 .lsec-market-snapshot .fstrip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line-2);
}

.advantis-jobs-v2 .lsec-at-a-glance .fstrip .fl,
.advantis-jobs-v2 .lsec-market-snapshot .fstrip .fl {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--muted);
}

.advantis-jobs-v2 .lsec-at-a-glance .citylink,
.advantis-jobs-v2 .lsec-market-snapshot .citylink {
  font-size: 13px;
  font-weight: 700;
  color: var(--teal-d);
  background: var(--card);
  border: 1px solid var(--teal-line);
  border-radius: 999px;
  padding: 5px 13px;
  text-decoration: none;
  transition: background 0.16s cubic-bezier(0.22, 1, 0.36, 1);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.advantis-jobs-v2 .lsec-at-a-glance .citylink:hover,
.advantis-jobs-v2 .lsec-market-snapshot .citylink:hover {
  background: var(--teal-soft);
}

.advantis-jobs-v2 .lsec-at-a-glance .citylink:focus-visible,
.advantis-jobs-v2 .lsec-market-snapshot .citylink:focus-visible {
  outline: none;
  background: var(--teal-soft);
  box-shadow: 0 0 0 3px var(--teal-soft);
  border-color: var(--teal);
}

.advantis-jobs-v2 .lsec-at-a-glance .citylink .ar,
.advantis-jobs-v2 .lsec-market-snapshot .citylink .ar {
  color: var(--muted);
  font-weight: 700;
  font-size: 11px;
}

.advantis-jobs-v2 .lsec-at-a-glance .citylink:hover .ar,
.advantis-jobs-v2 .lsec-market-snapshot .citylink:hover .ar {
  color: var(--teal-d);
}

/* Licensing callout line. */
.advantis-jobs-v2 .lsec-at-a-glance .liccallout {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--teal-d);
  text-decoration: none;
}

.advantis-jobs-v2 .lsec-at-a-glance .liccallout:hover,
.advantis-jobs-v2 .lsec-at-a-glance .liccallout:focus-visible {
  text-decoration: underline;
}

.advantis-jobs-v2 .lsec-at-a-glance .liccallout .ar {
  display: inline-flex;
  color: var(--teal-d);
}

.advantis-jobs-v2 .lsec-at-a-glance .liccallout .ar svg {
  width: 14px;
  height: 14px;
}

.advantis-jobs-v2 .lsec-at-a-glance .bjnote {
  margin-top: 14px;
  font-size: 11.5px;
  color: var(--muted);
  line-height: 1.5;
}

.advantis-jobs-v2 .lsec-at-a-glance .bjnote a {
  font-weight: 700;
  color: var(--teal-d);
}

/* Mobile keeps the grid two-up (matches the v6 reference); the hover preview
   is hidden since there's no hover affordance on touch. */
@media (max-width: 640px) {
  .advantis-jobs-v2 .lsec-at-a-glance .bjcard,
  .advantis-jobs-v2 .lsec-market-snapshot .bjcard {
    padding: 17px;
  }
  .advantis-jobs-v2 .lsec-at-a-glance .kgrid,
  .advantis-jobs-v2 .lsec-market-snapshot .kgrid {
    grid-template-columns: 1fr 1fr;
  }
  .advantis-jobs-v2 .lsec-at-a-glance .salpop,
  .advantis-jobs-v2 .lsec-market .salpop,
  .advantis-jobs-v2 .lsec-pay-by-state .salpop {
    display: none !important;
  }
}

@media (hover: none) {
  .advantis-jobs-v2 .lsec-at-a-glance .salpop,
  .advantis-jobs-v2 .lsec-market .salpop,
  .advantis-jobs-v2 .lsec-pay-by-state .salpop {
    display: none !important;
  }
}

/* ===== Combo live modules: Market Velocity + Pay by City (ported from the
   v10 combo reference, scoped under .cm so base section type doesn't bleed). ===== */
.advantis-jobs-v2 .cm {
  --pay-soft: #fcede3;
}
.advantis-jobs-v2 .cm .eyrow {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.advantis-jobs-v2 .cm .cmeye {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  padding: 5px 11px;
  border-radius: 999px;
}
.advantis-jobs-v2 .cm .cmeye svg {
  width: 13px;
  height: 13px;
}
.advantis-jobs-v2 .cm .cmhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 12px;
  margin-bottom: 14px;
}
.advantis-jobs-v2 .cm .cmhead .lsec-title {
  margin: 0;
}
.advantis-jobs-v2 .cm .fresh {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--green);
  background: var(--green-soft);
  padding: 4px 10px;
  border-radius: 999px;
}
.advantis-jobs-v2 .cm .fresh .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 3px rgba(17, 154, 99, 0.18);
}
.advantis-jobs-v2 .cm .bjcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}
.advantis-jobs-v2 .cm .lead {
  font-size: 14.5px;
  line-height: 1.62;
  color: var(--slate);
  margin: 0 0 14px;
}
.advantis-jobs-v2 .cm .verdict {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ink);
  margin: 2px 0 14px;
}
.advantis-jobs-v2 .cm .kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.advantis-jobs-v2 .cm .kpi {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 15px;
}
.advantis-jobs-v2 .cm .kpi .v {
  font-family: system-ui, sans-serif;
  font-weight: 800;
  font-size: 25px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.advantis-jobs-v2 .cm .kpi .v.up {
  color: var(--green);
}
.advantis-jobs-v2 .cm .kpi .v.pay {
  color: var(--pay);
}
.advantis-jobs-v2 .cm .kpi .v small {
  font-size: 14px;
  font-weight: 700;
  color: var(--muted);
}
.advantis-jobs-v2 .cm .kpi .l {
  font-size: 11.5px;
  color: var(--slate);
  margin-top: 7px;
  font-weight: 600;
  line-height: 1.35;
}
.advantis-jobs-v2 .cm .kpi .src {
  font-size: 10px;
  color: var(--muted);
  margin-top: 6px;
  line-height: 1.3;
}
.advantis-jobs-v2 .cm .whyhot {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 18px 0 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--muted);
}
.advantis-jobs-v2 .cm .whyhot::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--line);
}
.advantis-jobs-v2 .cm .demandrow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.advantis-jobs-v2 .cm .pbhead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 2px 2px 8px;
}
.advantis-jobs-v2 .cm .pbhead .l {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--muted);
}
.advantis-jobs-v2 .cm .pbrow {
  display: grid;
  grid-template-columns: 132px 1fr 88px;
  align-items: center;
  gap: 14px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line-2);
}
.advantis-jobs-v2 .cm .pbrow:last-of-type {
  border-bottom: none;
}
.advantis-jobs-v2 .cm .pbcity {
  font-weight: 700;
  font-size: 14.5px;
  letter-spacing: -0.01em;
}
.advantis-jobs-v2 .cm a.pbcity {
  color: var(--teal-d);
  text-decoration: none;
  display: inline-block;
  padding: 5px 0;
}
.advantis-jobs-v2 .cm a.pbcity:hover {
  text-decoration: underline;
}
.advantis-jobs-v2 .cm span.pbcity {
  color: var(--ink);
}
.advantis-jobs-v2 .cm .pbtrack {
  height: 24px;
  border-radius: 8px;
  background: var(--teal-soft);
  position: relative;
  overflow: hidden;
}
.advantis-jobs-v2 .cm .pbfill {
  position: absolute;
  inset: 0;
  width: var(--w);
  background: linear-gradient(90deg, var(--teal), var(--teal-d));
  border-radius: 8px;
}
.advantis-jobs-v2 .cm .pbright {
  text-align: right;
  white-space: nowrap;
}
.advantis-jobs-v2 .cm .pbpay {
  font-family: system-ui, sans-serif;
  font-weight: 700;
  font-size: 15.5px;
  color: var(--pay);
  line-height: 1;
}
.advantis-jobs-v2 .cm .pboutro {
  margin: 14px 0 0;
  padding-top: 14px;
  border-top: 1px solid var(--line-2);
  color: var(--slate);
}
.advantis-jobs-v2 .cm .cmnote {
  font-size: 11.5px;
  color: var(--muted);
  margin: 13px 2px 2px;
  line-height: 1.55;
}

@media (max-width: 640px) {
  .advantis-jobs-v2 .cm .kpis {
    grid-template-columns: 1fr 1fr;
  }
  .advantis-jobs-v2 .cm .demandrow {
    grid-template-columns: 1fr 1fr;
  }
  .advantis-jobs-v2 .cm .pbrow {
    grid-template-columns: 1fr auto;
    gap: 6px 12px;
  }
  .advantis-jobs-v2 .cm .pbtrack {
    grid-column: 1 / -1;
    order: 3;
    height: 20px;
    margin-top: 2px;
  }
  .advantis-jobs-v2 .cm .pbright {
    order: 2;
  }
}

/* ===== State page: Top-Paying Specialties chart (ported from the v8 reference,
   scoped under .lsec-specialty-pay). ===== */
.advantis-jobs-v2 .lsec-specialty-pay .s1head {
  display: flex;
  align-items: center;
  gap: 8px 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.advantis-jobs-v2 .lsec-specialty-pay .s1head .tag2 {
  order: 1;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  padding: 5px 11px;
  border-radius: 999px;
  margin: 0;
}
.advantis-jobs-v2 .lsec-specialty-pay .s1head .fresh {
  order: 2;
  margin-left: auto;
}
.advantis-jobs-v2 .lsec-specialty-pay .s1head .lsec-title {
  order: 3;
  flex-basis: 100%;
  margin: 0;
}
.advantis-jobs-v2 .lsec-specialty-pay .fresh {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--green);
  font-weight: 700;
  font-size: 12px;
  background: var(--green-soft);
  padding: 4px 10px;
  border-radius: 999px;
}
.advantis-jobs-v2 .lsec-specialty-pay .fresh .fdot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  display: inline-block;
  box-shadow: 0 0 0 3px rgba(17, 154, 99, 0.18);
}
.advantis-jobs-v2 .lsec-specialty-pay .lsec-title {
  margin: 0 0 14px;
}
@media (min-width: 721px) {
  .advantis-jobs-v2 .lsec-specialty-pay .s1head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
  }
  .advantis-jobs-v2 .lsec-specialty-pay .s1head .tag2 {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .advantis-jobs-v2 .lsec-specialty-pay .s1head .lsec-title {
    order: 2;
    grid-column: 1;
  }
  .advantis-jobs-v2 .lsec-specialty-pay .s1head .fresh {
    order: 3;
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
}
.advantis-jobs-v2 .lsec-specialty-pay .bjcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-sub {
  font-size: 13.5px;
  color: var(--slate);
  margin: 0 0 16px;
  line-height: 1.5;
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-axis {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  align-items: center;
  font-size: 11px;
  color: var(--muted);
  margin: 2px 0 10px;
  font-weight: 600;
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-axis .ln {
  width: 48px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--pay));
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-prow {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-prow:last-of-type {
  border-bottom: 0;
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-pnm {
  font-weight: 700;
  color: var(--navy, var(--ink));
  font-size: 13.5px;
  text-decoration: none;
}
.advantis-jobs-v2 .lsec-specialty-pay a.ns-pnm:hover {
  color: var(--pay-d);
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-ptrk {
  position: relative;
  height: 12px;
  background: var(--panel);
  border-radius: 7px;
  overflow: hidden;
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-pseg {
  position: absolute;
  left: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--pay), var(--pay-d));
  border-radius: 7px;
}
.advantis-jobs-v2 .lsec-specialty-pay .ns-pmax {
  font-weight: 800;
  color: var(--ink);
  font-size: 13px;
  white-space: nowrap;
  text-align: right;
  min-width: 54px;
}
.advantis-jobs-v2 .lsec-specialty-pay .liccallout {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 13px;
  font-weight: 700;
  color: var(--link, var(--teal-d));
  text-decoration: none;
}
.advantis-jobs-v2 .lsec-specialty-pay .liccallout:hover {
  text-decoration: underline;
}
.advantis-jobs-v2 .lsec-specialty-pay .liccallout .ar {
  display: inline-flex;
  color: var(--teal-d);
}
.advantis-jobs-v2 .lsec-specialty-pay .bjnote {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 12px;
}

@media (max-width: 640px) {
  .advantis-jobs-v2 .lsec-specialty-pay .ns-prow {
    grid-template-columns: 108px 1fr auto;
    gap: 6px 10px;
  }
}

/* ===== National page: "Where travel nurses are needed most" demand table
   (ported from the v10 reference, scoped under .lsec-needed-most). ===== */
.advantis-jobs-v2 .lsec-needed-most .s1head {
  display: flex;
  align-items: center;
  gap: 8px 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.advantis-jobs-v2 .lsec-needed-most .s1head .tag2 {
  order: 1;
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  padding: 5px 11px;
  border-radius: 999px;
  margin: 0;
}
.advantis-jobs-v2 .lsec-needed-most .s1head .fresh {
  order: 2;
  margin-left: auto;
}
.advantis-jobs-v2 .lsec-needed-most .s1head .lsec-title {
  order: 3;
  flex-basis: 100%;
  margin: 0;
}
.advantis-jobs-v2 .lsec-needed-most .fresh {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--green);
  font-weight: 700;
  font-size: 12px;
  background: var(--green-soft);
  padding: 4px 10px;
  border-radius: 999px;
}
.advantis-jobs-v2 .lsec-needed-most .fresh .fdot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  display: inline-block;
  box-shadow: 0 0 0 3px rgba(17, 154, 99, 0.18);
}
.advantis-jobs-v2 .lsec-needed-most .lsec-title {
  margin: 0 0 14px;
}
@media (min-width: 721px) {
  .advantis-jobs-v2 .lsec-needed-most .s1head {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
  }
  .advantis-jobs-v2 .lsec-needed-most .s1head .tag2 {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .advantis-jobs-v2 .lsec-needed-most .s1head .lsec-title {
    order: 2;
    grid-column: 1;
  }
  .advantis-jobs-v2 .lsec-needed-most .s1head .fresh {
    order: 3;
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
}
.advantis-jobs-v2 .lsec-needed-most .bjcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 22px 24px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-sub {
  font-size: 13.5px;
  color: var(--slate);
  margin: 0 0 16px;
  line-height: 1.5;
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl th {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-align: left;
  padding: 0 8px 10px;
  border-bottom: 1px solid var(--line);
  vertical-align: bottom;
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl th.nw {
  white-space: nowrap;
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl td {
  padding: 11px 8px;
  border-bottom: 1px solid var(--line);
  font-size: 13.5px;
  vertical-align: middle;
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl tr:last-child td {
  border-bottom: 0;
}
.advantis-jobs-v2 .lsec-needed-most .ns-rk {
  color: var(--muted);
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl td.ns-stname {
  padding-right: 14px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-stname a {
  font-weight: 700;
  color: var(--navy, var(--ink));
  text-decoration: none;
}
.advantis-jobs-v2 .lsec-needed-most .ns-stname a:hover {
  color: var(--teal-d);
}
.advantis-jobs-v2 .lsec-needed-most .ns-tbl td.ns-spark {
  vertical-align: middle;
  padding-left: 18px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-trk {
  width: 100%;
  height: 9px;
  background: var(--panel);
  border-radius: 6px;
  overflow: hidden;
}
.advantis-jobs-v2 .lsec-needed-most .ns-fl {
  height: 100%;
  background: linear-gradient(90deg, var(--teal), var(--teal-d));
  border-radius: 6px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-jobs {
  text-align: right;
  font-weight: 700;
  color: var(--navy, var(--ink));
  white-space: nowrap;
  font-size: 13.5px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-rns {
  text-align: right;
  color: var(--slate);
}
.advantis-jobs-v2 .lsec-needed-most .ns-cs {
  white-space: nowrap;
  font-weight: 600;
  font-size: 12.5px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-cs.y {
  color: var(--green);
}
.advantis-jobs-v2 .lsec-needed-most .ns-cs.p {
  color: var(--amber);
}
.advantis-jobs-v2 .lsec-needed-most .ns-cs.n {
  color: var(--muted);
}
.advantis-jobs-v2 .lsec-needed-most .ns-cs svg {
  vertical-align: -2px;
  margin-right: 4px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-vj {
  color: var(--teal-d);
  text-decoration: none;
  font-weight: 600;
  font-size: 12.5px;
  white-space: nowrap;
}
.advantis-jobs-v2 .lsec-needed-most .ns-vj:hover {
  text-decoration: underline;
}
.advantis-jobs-v2 .lsec-needed-most .ns-call {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  background: var(--teal-soft);
  border: 1px solid var(--teal-line);
  border-radius: 12px;
  padding: 11px 15px;
  margin-top: 16px;
}
.advantis-jobs-v2 .lsec-needed-most .ns-call svg {
  flex: none;
  margin-top: 1px;
  color: var(--teal-d);
}
.advantis-jobs-v2 .lsec-needed-most .ns-call p {
  margin: 0;
  font-size: 13px;
  color: var(--teal-d);
  line-height: 1.5;
}
.advantis-jobs-v2 .lsec-needed-most .bjnote {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 12px;
}

@media (max-width: 640px) {
  .advantis-jobs-v2 .lsec-needed-most .ns-tbl th.hide,
  .advantis-jobs-v2 .lsec-needed-most .ns-tbl td.hide,
  .advantis-jobs-v2 .lsec-needed-most .ns-tbl th.cmp,
  .advantis-jobs-v2 .lsec-needed-most .ns-tbl td.cmp,
  .advantis-jobs-v2 .lsec-needed-most .ns-tbl th.ns-spark,
  .advantis-jobs-v2 .lsec-needed-most .ns-tbl td.ns-spark {
    display: none;
  }
}

/* ===== "Pay by State" section: top-N ranked bars (simple, non-salary
   counterpart to the salary pages' state ranking). ===== */
.advantis-jobs-v2 .lsec-pay-by-state .livehead {
  display: flex;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.advantis-jobs-v2 .lsec-pay-by-state .livehead .tag2 {
  order: 1;
  flex: 1 1 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 11px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--teal-d);
  background: var(--teal-soft);
  border-radius: 999px;
}
.advantis-jobs-v2 .lsec-pay-by-state .livehead .fresh {
  order: 2;
  flex: 0 0 auto;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--green);
  font-weight: 700;
  font-size: 12px;
  background: var(--green-soft);
  padding: 4px 10px;
  border-radius: 999px;
}
.advantis-jobs-v2 .lsec-pay-by-state .livehead .fresh .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  display: inline-block;
  box-shadow: 0 0 0 3px rgba(17, 154, 99, 0.18);
}
.advantis-jobs-v2 .lsec-pay-by-state .livehead .lsec-title {
  order: 3;
  flex-basis: 100%;
  margin: 0;
}
@media (min-width: 721px) {
  .advantis-jobs-v2 .lsec-pay-by-state .livehead {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 12px;
    row-gap: 8px;
  }
  .advantis-jobs-v2 .lsec-pay-by-state .livehead .tag2 {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .advantis-jobs-v2 .lsec-pay-by-state .livehead .lsec-title {
    order: 2;
    grid-column: 1;
  }
  .advantis-jobs-v2 .lsec-pay-by-state .livehead .fresh {
    order: 3;
    grid-column: 2;
    justify-self: end;
    margin-left: 0;
  }
}
.advantis-jobs-v2 .lsec-pay-by-state .bjcard {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r);
  box-shadow: var(--shadow);
  padding: 20px 22px;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-intro {
  font-size: 13.5px;
  color: var(--slate);
  line-height: 1.6;
  margin: 0 0 16px;
  max-width: 780px;
}
.advantis-jobs-v2 .lsec-pay-by-state .paychart {
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-row {
  display: grid;
  grid-template-columns: 128px 1fr auto;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: inherit;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-row .pc-name {
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
.advantis-jobs-v2 .lsec-pay-by-state a.pc-row .pc-name {
  color: var(--teal-d);
}
.advantis-jobs-v2 .lsec-pay-by-state a.pc-row:hover .pc-name {
  text-decoration: underline;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-track {
  height: 22px;
  background: var(--teal-soft);
  border-radius: 7px;
  overflow: hidden;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--teal), var(--teal-d));
  border-radius: 7px;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-val {
  font-weight: 800;
  font-size: 14.5px;
  color: var(--pay);
  text-align: right;
  min-width: 64px;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-note {
  font-size: 13px;
  color: var(--slate);
  line-height: 1.65;
  margin: 18px 0 0;
  border-top: 1px solid var(--line-2);
  padding-top: 16px;
}
.advantis-jobs-v2 .lsec-pay-by-state .pc-disc {
  font-size: 11.5px;
  color: var(--muted);
  line-height: 1.5;
  margin: 10px 0 0;
}
@media (max-width: 640px) {
  .advantis-jobs-v2 .lsec-pay-by-state .pc-row {
    grid-template-columns: 92px 1fr auto;
    gap: 10px;
  }
  .advantis-jobs-v2 .lsec-pay-by-state .pc-val {
    min-width: 54px;
  }
}
