/* ============================================================
   CAREERSTACK — DESIGN TOKENS
   Colour is semantic. Green = verified. Red = reported risk.
   Gold = a deadline. None of the three is ever decoration.
   ============================================================ */
:root{
  /* Primary text: pure ink black. Secondary tokens darkened so body copy,
     dropdown items and captions stay legible on white backgrounds. */
  --ink:#0A0A0F;
  --ink-2:#141821;
  --ink-3:#2A2F3B;
  --muted:#3F4756;
  --faint:#5C6473;

  --paper:#FFFFFF;
  --wash:#F4F6FA;
  --wash-2:#EAEFF6;
  --rule:#D9E1EC;
  --rule-soft:#E8EDF4;

  --cobalt:#1B4F9C;
  --cobalt-dk:#143C78;
  --cobalt-lt:#E7EEF9;

  --verify:#16775E;
  --verify-bg:#E4F2ED;
  --gold:#A9720A;
  --gold-bg:#FBF0DC;
  --alert:#A62D1B;
  --alert-bg:#FBE9E5;

  --shell:1400px;
  --gut:20px;

  --r-sm:6px;
  --r-md:10px;
  --r-lg:14px;

  --f-display:'Plus Jakarta Sans','Segoe UI',system-ui,sans-serif;
  --f-ui:'Plus Jakarta Sans','Segoe UI',system-ui,-apple-system,sans-serif;

  --sec-y:56px;
  --sec-y-sm:36px;

  --hdr-util:34px;
  --hdr-main:68px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:110px;overflow-x:clip}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--f-ui);font-size:15px;line-height:1.45;
  font-weight:500;letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
  padding-top:env(safe-area-inset-top,0px);
  overflow-x:clip;
}
img{max-width:100%;display:block}
svg{width:16px;height:16px;flex:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--f-display);margin:0;letter-spacing:-.025em;line-height:1.1;font-weight:700}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

/* ---------- Rich-content list markers ----------
   The global `ul{list-style:none}` reset above is intentional so nav /
   menu / card lists render clean. For body-content wrappers that
   render admin-authored HTML (CV articles, training descriptions,
   example CVs, etc.) we need real bullets back. One source of truth
   for every rich-content container across the portal. */
.ca-body ul, .ca-body ol,
.cvx-doc ul, .cvx-doc ol,
.cvx-doc .entry ul, .cvx-doc .entry ol,
.cvx-highlights ul, .cvx-highlights ol,
.cvx-tips ul, .cvx-tips ol,
.ct-body ul, .ct-body ol,
.tx-rich ul, .tx-rich ol,
.prose ul, .prose ol {
  list-style: disc outside;
  padding-left: 1.3em;
  margin: 0 0 14px;
}
.ca-body ol, .cvx-doc ol, .cvx-doc .entry ol, .cvx-highlights ol, .cvx-tips ol,
.ct-body ol, .tx-rich ol, .prose ol {
  list-style-type: decimal;
}
.ca-body li, .cvx-doc li, .cvx-highlights li, .cvx-tips li,
.ct-body li, .tx-rich li, .prose li {
  margin-bottom: 4px;
}

:focus-visible{outline:2.5px solid var(--cobalt);outline-offset:2px;border-radius:3px}

.shell{max-width:var(--shell);margin:0 auto;padding:0 var(--gut)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.skip{position:absolute;left:8px;top:-60px;z-index:200;background:var(--ink);color:#fff;
  padding:9px 14px;border-radius:var(--r-sm);font-weight:600;font-size:14px;transition:top .15s}
.skip:focus{top:8px}

/* ============================ TYPE SCALE ============================ */
/* Self-hosted Plus Jakarta Sans. Variable WOFF2 covers weights 200-800
   in a single ~27KB file per subset, so these two @font-face declarations
   replace the 5 individual Google Fonts weight requests. font-display:swap
   so the FOIT period is zero. */
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url('/fonts/plus-jakarta-sans/jakarta-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url('/fonts/plus-jakarta-sans/jakarta-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
.h-xl{font-size:clamp(28px,4.6vw,54px);line-height:1.03;letter-spacing:-.035em;font-weight:800}
.h-lg{font-size:clamp(21px,2.5vw,31px);line-height:1.1;letter-spacing:-.03em}
.h-md{font-size:clamp(17px,1.6vw,20px);line-height:1.2;letter-spacing:-.02em}
.h-sm{font-size:15px;line-height:1.25;letter-spacing:-.015em;font-weight:600}
.lede{font-size:clamp(15px,1.25vw,17px);line-height:1.5;color:var(--ink-3);max-width:60ch}
.small{font-size:13px;line-height:1.4}
.tiny{font-size:12px;line-height:1.35}
.num{font-variant-numeric:tabular-nums}

/* ============================ SECTION FRAME ============================ */
.sec{padding:var(--sec-y) 0;border-top:1px solid var(--rule-soft)}
.sec--tight{padding:34px 0}
.sec--wash{background:var(--wash);border-top-color:var(--rule)}
.sec--ink{background:var(--ink);color:#fff;border-top:0}
.sec--flush{border-top:0}

.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px;flex-wrap:wrap}
.sec-head .lede{margin-top:7px}
.sec-head__t{min-width:0;flex:1 1 320px}
.sec-link{font-size:14px;font-weight:600;color:var(--cobalt);border-bottom:1.5px solid transparent;padding-bottom:1px;white-space:nowrap}
.sec-link:hover{border-bottom-color:var(--cobalt)}

/* ============================ BUTTONS ============================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-weight:600;font-size:14px;border-radius:var(--r-sm);padding:10px 16px;
  border:1.5px solid transparent;transition:background .14s,border-color .14s,color .14s;white-space:nowrap}
.btn--pri{background:var(--cobalt);color:#fff}
.btn--pri:hover{background:var(--cobalt-dk)}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:var(--ink-2)}
.btn--out{border-color:var(--rule);color:var(--ink);background:#fff}
.btn--out:hover{border-color:var(--ink-3);background:var(--wash)}
.btn--ghost{color:var(--ink-3);padding:9px 11px}
.btn--ghost:hover{color:var(--ink);background:var(--wash)}
.btn--onink{border-color:rgba(255,255,255,.34);color:#fff}
.btn--onink:hover{background:rgba(255,255,255,.1);border-color:#fff}
.btn--lg{padding:13px 22px;font-size:15px}
.btn--blk{width:100%}

/* ============================ STATE MARKS ============================ */
.mark{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;
  padding:3px 7px;border-radius:4px;line-height:1.3;white-space:nowrap}
.mark svg{width:12px;height:12px;flex:none}
.mark--verified{background:var(--verify-bg);color:var(--verify)}
.mark--unverified{background:var(--wash-2);color:var(--muted)}
.mark--deadline{background:var(--gold-bg);color:var(--gold)}
.mark--risk{background:var(--alert-bg);color:var(--alert)}
.mark--new{background:var(--cobalt-lt);color:var(--cobalt)}

/* ============================================================
   HEADER
   ============================================================ */
.hdr{position:sticky;top:0;z-index:100}
.util{background:var(--ink);color:#C7D2E2;height:var(--hdr-util);display:flex;align-items:center;font-size:12.5px}
.util .shell{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%}
.util a{color:#C7D2E2;padding:2px 0}
.util a:hover{color:#fff}
.util__l,.util__r{display:flex;align-items:center;gap:16px;min-width:0}
.util__l{overflow:hidden}
.util__pill{display:inline-flex;align-items:center;gap:6px;color:#fff;font-weight:500;white-space:nowrap}
.util__dot{width:6px;height:6px;border-radius:50%;background:#3FBF8F;flex:none}
.util__sep{width:1px;height:13px;background:rgba(255,255,255,.18);flex:none}

.bar{background:#fff;border-bottom:1px solid var(--rule);transition:box-shadow .18s}
.bar .shell{display:flex;align-items:center;gap:22px;height:var(--hdr-main);transition:height .18s}
.hdr.is-stuck .bar{box-shadow:0 1px 14px rgba(16,27,46,.09)}
.hdr.is-stuck .bar .shell{height:58px}

.logo{display:flex;align-items:center;gap:9px;flex:none}
.logo__m{width:30px;height:30px;flex:none}
.logo__t{font-family:var(--f-display);font-weight:800;font-size:19px;letter-spacing:-.04em;color:var(--ink)}
.logo__t span{color:var(--cobalt)}

.nav{display:flex;align-items:center;gap:2px;flex:0 0 auto;margin-left:auto;min-width:0}
.nav__i{position:relative}
.nav__b{display:flex;align-items:center;gap:5px;padding:9px 11px;border-radius:var(--r-sm);
  font-size:14.5px;font-weight:500;color:var(--ink-2);transition:background .14s,color .14s}
.nav__b:hover,.nav__i.open .nav__b{background:var(--wash);color:var(--ink)}
.nav__b svg{width:10px;height:10px;opacity:.55;transition:transform .18s}
.nav__i.open .nav__b svg{transform:rotate(180deg)}

.nav__a{display:flex;align-items:center;gap:8px;flex:none}

/* Mega panel */
.mega{position:absolute;top:calc(100% + 9px);right:-14px;left:auto;z-index:60;
  background:#fff;border:1px solid var(--rule);border-radius:var(--r-lg);
  box-shadow:0 20px 48px -14px rgba(16,27,46,.26);
  padding:20px;opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s,transform .16s,visibility .16s}
.nav__i.open .mega{opacity:1;visibility:visible;transform:translateY(0)}
.mega--w3{width:min(760px,calc(100vw - 40px));display:grid;grid-template-columns:repeat(3,1fr);gap:8px 26px}
.mega--w2{width:min(560px,calc(100vw - 40px));display:grid;grid-template-columns:repeat(2,1fr);gap:8px 26px}
.mega__col{min-width:0}
.mega__h{font-family:var(--f-display);font-size:12.5px;font-weight:700;color:var(--muted);
  letter-spacing:-.01em;padding:0 8px 7px;border-bottom:1px solid var(--rule-soft);margin-bottom:5px}
.mega__l{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:6px 8px;border-radius:var(--r-sm);font-size:14px;color:var(--ink-2);transition:background .12s,color .12s}
.mega__l:hover{background:var(--cobalt-lt);color:var(--cobalt-dk)}
.mega__l b{font-weight:500}
.mega__l i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}
.mega__l:hover i{color:var(--cobalt)}
.mega__foot{grid-column:1/-1;margin-top:10px;padding-top:12px;border-top:1px solid var(--rule-soft);
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.mega__note{font-size:12.5px;color:var(--muted);max-width:46ch}

.burger{display:none;flex:none;width:40px;height:40px;border-radius:var(--r-sm);
  align-items:center;justify-content:center;border:1.5px solid var(--rule)}
.burger:hover{background:var(--wash)}
.burger span{display:block;width:17px;height:1.8px;background:var(--ink);position:relative;transition:transform .2s,background .2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:17px;height:1.8px;background:var(--ink);transition:transform .2s,top .2s}
.burger span::before{top:-5.5px}
.burger span::after{top:5.5px}
body.menu-open .burger span{background:transparent}
body.menu-open .burger span::before{top:0;transform:rotate(45deg)}
body.menu-open .burger span::after{top:0;transform:rotate(-45deg)}

/* Mobile drawer - full-screen so logo + close X inside the drawer
   are always visible, regardless of page scroll state. Replaces the
   old "starts below header" model which left the drawer feeling
   like a page section rather than a modal menu. */
.drawer{position:fixed;inset:0;z-index:110;background:#fff;
  display:flex;flex-direction:column;
  transform:translateX(-100%);transition:transform .22s ease;visibility:hidden}
body.menu-open .drawer{transform:translateX(0);visibility:visible}
.drawer__top{display:flex;align-items:center;justify-content:space-between;
  padding:12px var(--gut);border-bottom:1px solid var(--rule);
  background:#fff;flex:none;padding-top:calc(12px + env(safe-area-inset-top,0px))}
.drawer__top .logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink)}
.drawer__x{appearance:none;background:var(--wash);border:1px solid var(--rule);
  width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;
  cursor:pointer;color:var(--ink);transition:background .15s,border-color .15s}
.drawer__x:hover{background:#fff;border-color:var(--ink-3)}
.drawer__x svg{width:18px;height:18px}
.drawer__in{padding:16px var(--gut) calc(40px + env(safe-area-inset-bottom,0px));
  overflow-y:auto;overscroll-behavior:contain;flex:1;min-height:0}
.drawer__cta{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:16px}
.acc{border-bottom:1px solid var(--rule-soft)}
.acc__b{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:13px 2px;font-size:16px;font-weight:600;font-family:var(--f-display);letter-spacing:-.02em}
.acc__b svg{width:13px;height:13px;opacity:.5;transition:transform .2s;flex:none}
.acc.open .acc__b svg{transform:rotate(180deg)}
.acc__p{display:none;padding:0 2px 12px}
.acc.open .acc__p{display:block}
.acc__grp{margin-bottom:12px}
.acc__grp:last-child{margin-bottom:0}
.acc__h{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:5px}
.acc__l{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:7px 0;font-size:14.5px;color:var(--ink-2);border-bottom:1px solid var(--rule-soft)}
.acc__l:last-child{border-bottom:0}
.acc__l i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.drawer__flat{display:block;padding:13px 2px;font-size:16px;font-weight:600;
  font-family:var(--f-display);letter-spacing:-.02em;border-bottom:1px solid var(--rule-soft)}
.drawer__meta{margin-top:18px;padding-top:16px;border-top:1px solid var(--rule);
  display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13.5px;color:var(--muted)}

/* ============================================================
   HERO
   ============================================================ */
.hero{background:linear-gradient(180deg,#FFFFFF 0%,var(--wash) 100%);border-bottom:1px solid var(--rule);
  padding:44px 0 0}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);gap:44px;align-items:start}
.hero__p{margin-top:15px}

/* Search */
/* overflow:visible so the typeahead dropdown overlays instead of being
   clipped. The button + inner edges keep the rounded look via their own
   border-radius inheritance below. */
.seek{margin-top:26px;background:#fff;border:1.5px solid var(--ink);border-radius:var(--r-md);
  box-shadow:0 10px 26px -14px rgba(16,27,46,.3);overflow:visible;position:relative}
.seek__row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) auto;align-items:stretch;border-radius:inherit}
.seek__row:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}
.seek__f{display:flex;align-items:center;gap:9px;padding:0 13px;min-width:0;border-right:1px solid var(--rule)}
.seek__f svg{width:16px;height:16px;color:var(--muted);flex:none}
.seek__f input{width:100%;min-width:0;border:0;outline:0;padding:15px 0;font-size:15px;background:transparent}
.seek__f input::placeholder{color:var(--faint)}
.seek__go{padding:0 22px;background:var(--cobalt);color:#fff;font-weight:600;font-size:15px;
  border-top-right-radius:calc(var(--r-md) - 1.5px);border-bottom-right-radius:calc(var(--r-md) - 1.5px);
  display:flex;align-items:center;justify-content:center;transition:background .14s}
.seek__go:hover{background:var(--cobalt-dk)}

.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px;align-items:center}
.chips__lb{font-size:13px;color:var(--muted);margin-right:2px}
.chip{font-size:13px;padding:5px 10px;border:1px solid var(--rule);border-radius:100px;
  background:#fff;color:var(--ink-2);transition:border-color .14s,color .14s}
.chip:hover{border-color:var(--cobalt);color:var(--cobalt)}

/* Source ledger — the page's one bold element */
.ledger{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:18px;
  box-shadow:0 22px 50px -20px rgba(16,27,46,.55)}
.ledger__top{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.14)}
.ledger__ttl{font-family:var(--f-display);font-size:14.5px;font-weight:700;letter-spacing:-.02em}
.ledger__live{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:#9FE3C6}
.ledger__live::before{content:"";width:6px;height:6px;border-radius:50%;background:#3FBF8F;
  box-shadow:0 0 0 0 rgba(63,191,143,.7);animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(63,191,143,.6)}70%{box-shadow:0 0 0 7px rgba(63,191,143,0)}100%{box-shadow:0 0 0 0 rgba(63,191,143,0)}}

.ledger__rows{padding:4px 0}
.lrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;
  padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.lrow:last-child{border-bottom:0}
.lrow__n{font-size:13.5px;color:#C7D2E2;min-width:0}
.lrow__v{font-family:var(--f-display);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff}
.lrow--sum{border-top:1px solid rgba(255,255,255,.2);border-bottom:0;margin-top:5px;padding-top:12px}
.lrow--sum .lrow__n{color:#fff;font-weight:600;font-size:14px}
.lrow--sum .lrow__v{font-size:26px;letter-spacing:-.03em}
.lrow--cut .lrow__n{color:#F0B9AE}
.lrow--cut .lrow__v{color:#F0B9AE}
.ledger__ft{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.14);
  font-size:12.5px;color:#9BA9BE;line-height:1.45}

/* Proof strip */
.proof{border-top:1px solid var(--rule);margin-top:40px;background:rgba(255,255,255,.55)}
.proof__g{display:grid;grid-template-columns:repeat(4,1fr)}
.proof__i{padding:18px 20px 18px 0;border-right:1px solid var(--rule)}
.proof__i:last-child{border-right:0;padding-right:0}
.proof__i:not(:first-child){padding-left:20px}
.proof__v{font-family:var(--f-display);font-size:clamp(20px,2.2vw,27px);font-weight:800;
  letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.proof__l{font-size:13px;color:var(--muted);margin-top:3px;line-height:1.35}

/* ============================================================
   PILLARS
   ============================================================ */
.pill__g{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);
  border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden}
.pill{background:#fff;padding:20px 18px}
.pill__ic{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.pill__ic svg{width:17px;height:17px}
.pill__ic--v{background:var(--verify-bg);color:var(--verify)}
.pill__ic--c{background:var(--cobalt-lt);color:var(--cobalt)}
.pill__ic--g{background:var(--gold-bg);color:var(--gold)}
.pill__ic--a{background:var(--alert-bg);color:var(--alert)}
.pill h3{font-size:15.5px;margin-bottom:6px}
.pill p{font-size:13.5px;color:var(--ink-3);line-height:1.45}

/* ============================================================
   REGISTER (job rows)
   ============================================================ */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--rule);margin-bottom:0;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs::-webkit-scrollbar{display:none}
.tab{padding:9px 13px;font-size:14px;font-weight:500;color:var(--muted);
  border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .14s,border-color .14s}
.tab:hover{color:var(--ink)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--cobalt);font-weight:600}
.tab i{font-style:normal;font-size:12px;color:var(--faint);margin-left:5px;font-variant-numeric:tabular-nums}

.reg{border:1px solid var(--rule);border-top:0;border-radius:0 0 var(--r-md) var(--r-md);overflow:hidden;background:#fff}
.job{display:grid;grid-template-columns:3px minmax(0,1fr) 190px 150px 128px;
  align-items:center;gap:0;border-bottom:1px solid var(--rule-soft);transition:background .12s}
.job:last-child{border-bottom:0}
.job:hover{background:var(--wash)}
.job__edge{align-self:stretch;background:var(--verify)}
.job--unv .job__edge{background:var(--rule)}
.job--risk .job__edge{background:var(--alert)}

.job__main{padding:14px 16px;min-width:0}
.job__t{font-family:var(--f-display);font-size:15.5px;font-weight:600;letter-spacing:-.02em;
  color:var(--ink);display:block;margin-bottom:4px}
.job:hover .job__t{color:var(--cobalt-dk)}
.job__meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;font-size:13px;color:var(--muted)}
.job__co{color:var(--ink-3);font-weight:500}
.job__marks{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}

.job__pay{padding:14px 12px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.job__pay small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}
.job__pay.is-hidden{color:var(--muted);font-weight:400;font-size:13.5px}
.job__paym{display:none;margin-top:6px;font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.job__paym span{font-weight:400;color:var(--muted)}
.job__paym.is-hidden{font-weight:400;color:var(--muted)}

.job__src{padding:14px 12px}
.srcbar{display:flex;gap:2.5px;margin-bottom:5px}
.srcbar i{display:block;height:4px;flex:1;border-radius:2px;background:var(--cobalt);opacity:.85}
.srcbar i.off{background:var(--rule)}
.job__src small{font-size:12px;color:var(--muted);line-height:1.3;display:block}

.job__act{padding:14px 16px 14px 8px;display:flex;justify-content:flex-end}
.job__act .btn{padding:8px 14px}

.reg__more{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 16px;background:var(--wash);border-top:1px solid var(--rule);flex-wrap:wrap}
.reg__more p{font-size:13px;color:var(--muted)}

/* ============================================================
   DEDUP EXPLAINER
   ============================================================ */
.dedup{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:44px;align-items:center}
.dedup__vis{background:#fff;border:1px solid var(--rule);border-radius:var(--r-md);padding:18px}
.dd__hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.dd__hd h4{font-size:14.5px}
.dd__list{border:1px solid var(--rule-soft);border-radius:var(--r-sm);overflow:hidden}
.dd__i{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:10px 12px;border-bottom:1px solid var(--rule-soft);font-size:13.5px}
.dd__i:last-child{border-bottom:0}
.dd__i.dup{background:var(--wash);color:var(--muted)}
.dd__tag{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:700;flex:none;background:var(--wash-2);color:var(--muted)}
.dd__i.keep .dd__tag{background:var(--verify-bg);color:var(--verify)}
.dd__src{font-size:12px;color:var(--faint);white-space:nowrap}
.dd__out{margin-top:12px;padding:12px;background:var(--cobalt-lt);border-radius:var(--r-sm);
  display:flex;align-items:center;gap:10px}
.dd__out svg{width:18px;height:18px;color:var(--cobalt);flex:none}
.dd__out p{font-size:13.5px;color:var(--cobalt-dk);font-weight:500}
.dedup ul.ticks{margin-top:18px;display:grid;gap:9px}
.ticks li{display:grid;grid-template-columns:auto 1fr;gap:9px;font-size:14.5px;color:var(--ink-2);align-items:start}
.ticks svg{width:16px;height:16px;color:var(--verify);margin-top:2px;flex:none}

/* ============================================================
   VERTICAL TILES
   ============================================================ */
.vgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.vt{border:1px solid var(--rule);border-radius:var(--r-md);padding:16px;background:#fff;
  display:flex;flex-direction:column;gap:8px;transition:border-color .14s,transform .14s}
.vt:hover{border-color:var(--ink-3)}
.vt__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.vt__ic{width:30px;height:30px;border-radius:var(--r-sm);background:var(--wash);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2)}
.vt__ic svg{width:16px;height:16px}
.vt__n{font-family:var(--f-display);font-size:14.5px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--cobalt)}
.vt h3{font-size:15px}
.vt p{font-size:13px;color:var(--muted);line-height:1.4}

/* ============================================================
   SALARY BLOCKS
   ============================================================ */
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.sal{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;padding:16px;display:flex;flex-direction:column}
.sal__r{font-size:13.5px;font-weight:600;color:var(--ink-2)}
.sal__l{font-size:12.5px;color:var(--muted);margin-top:1px}
.sal__v{font-family:var(--f-display);font-size:clamp(20px,2vw,25px);font-weight:800;letter-spacing:-.035em;
  font-variant-numeric:tabular-nums;margin-top:12px}
.sal__v small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}
.sal__range{margin-top:10px}
.sal__track{height:5px;border-radius:3px;background:var(--wash-2);position:relative;overflow:hidden}
.sal__fill{position:absolute;top:0;bottom:0;background:var(--cobalt);border-radius:3px;opacity:.75}
.sal__ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);
  margin-top:5px;font-variant-numeric:tabular-nums}
.sal__ft{margin-top:12px;padding-top:10px;border-top:1px solid var(--rule-soft);font-size:12px;color:var(--faint)}
.sal--thin{background:var(--wash);border-style:dashed}
.sal--thin .sal__v{font-size:15px;font-weight:600;color:var(--muted);letter-spacing:-.01em;line-height:1.35}

/* ============================================================
   COMPANIES
   ============================================================ */
.cogrid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.co{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;padding:14px;
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;transition:border-color .14s}
.co:hover{border-color:var(--ink-3)}
.co__logo{width:36px;height:36px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:800;font-size:14px;color:#fff;letter-spacing:-.03em}
.co__n{font-size:13.5px;font-weight:600;line-height:1.25}
.co__c{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}

/* ============================================================
   LOOP (genuine sequence — numbering earns its place)
   ============================================================ */
.loop{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(255,255,255,.16);
  border-radius:var(--r-md);overflow:hidden}
.lp{padding:20px 18px;border-right:1px solid rgba(255,255,255,.14);position:relative}
.lp:last-child{border-right:0}
.lp__n{font-family:var(--f-display);font-size:12px;font-weight:700;color:#7FA8E6;
  display:flex;align-items:center;gap:7px;margin-bottom:11px}
.lp__n::after{content:"";height:1px;flex:1;background:rgba(255,255,255,.16)}
.lp h3{font-size:16px;color:#fff;margin-bottom:6px}
.lp p{font-size:13.5px;color:#AFBED3;line-height:1.45}
.loop__ft{margin-top:16px;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.loop__note{font-size:13.5px;color:#AFBED3;max-width:62ch}

/* ============================================================
   TRAINING + COURSES
   ============================================================ */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tr{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;padding:16px;display:flex;flex-direction:column}
.tr__hd{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}
.tr h3{font-size:15.5px;line-height:1.2}
.tr__pr{font-size:14px;font-weight:700;font-family:var(--f-display);font-variant-numeric:tabular-nums;white-space:nowrap}
.tr__pr.free{color:var(--verify)}
.tr__by{font-size:13px;color:var(--muted);margin-bottom:10px}
.tr__sk{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.sk{font-size:12px;padding:3px 7px;border-radius:4px;background:var(--wash);color:var(--ink-3);border:1px solid var(--rule-soft)}
.tr__mt{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12.5px;color:var(--muted);
  margin-top:auto;padding-top:11px;border-top:1px solid var(--rule-soft)}
.tr__mt span{display:inline-flex;align-items:center;gap:5px}
.tr__mt svg{width:13px;height:13px;opacity:.65}

/* ============================================================
   SEO BROWSE GRIDS
   ============================================================ */
.browse{display:grid;grid-template-columns:repeat(2,1fr);gap:34px}
.bcol h3{font-size:16px;margin-bottom:11px;padding-bottom:9px;border-bottom:1px solid var(--rule)}
.blist{display:grid;grid-template-columns:repeat(2,1fr);gap:1px 22px}
.bl{display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  padding:6px 0;font-size:13.5px;color:var(--ink-2);border-bottom:1px solid var(--rule-soft)}
.bl:hover{color:var(--cobalt)}
.bl i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums;flex:none}

/* ============================================================
   TRUST BAND
   ============================================================ */
.trust{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;
  border:1.5px solid var(--alert);border-left-width:5px;border-radius:var(--r-md);
  background:var(--alert-bg);padding:20px}
.trust__ic{width:40px;height:40px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.trust__ic svg{width:21px;height:21px;color:var(--alert)}
.trust h2{font-size:19px;color:#7A2112;margin-bottom:5px}
.trust p{font-size:14px;color:#7A2112;max-width:74ch;line-height:1.45}

/* ============================================================
   SPLIT CTA
   ============================================================ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sp{border:1px solid var(--rule);border-radius:var(--r-md);padding:22px;background:#fff;
  display:flex;flex-direction:column}
.sp--dark{background:var(--ink);border-color:var(--ink);color:#fff}
.sp h2{font-size:21px;margin-bottom:8px}
.sp p{font-size:14px;color:var(--ink-3);line-height:1.5;max-width:52ch}
.sp--dark p{color:#AFBED3}
.sp__pts{margin:14px 0 18px;display:grid;gap:7px}
.sp__pts li{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:13.5px;color:var(--ink-2);align-items:start}
.sp--dark .sp__pts li{color:#C7D2E2}
.sp__pts svg{width:14px;height:14px;color:var(--cobalt);margin-top:3px;flex:none}
.sp--dark .sp__pts svg{color:#7FA8E6}
.sp__act{margin-top:auto;display:flex;gap:9px;flex-wrap:wrap}

/* ============================================================
   ALERT SIGNUP
   ============================================================ */
.alertbox{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);gap:36px;align-items:center}
.af{display:grid;gap:9px}
.af__row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.af input,.af select{width:100%;padding:11px 12px;border:1.5px solid var(--rule);border-radius:var(--r-sm);
  background:#fff;font-size:14.5px;min-width:0}
.af input:focus,.af select:focus{border-color:var(--cobalt);outline:none}
.af__fine{font-size:12px;color:var(--muted);line-height:1.45}

/* ============================================================
   FOOTER
   ============================================================ */
.ft{background:var(--ink);color:#AFBED3;padding-top:44px}
.ft a{color:#AFBED3}
.ft a:hover{color:#fff}

.ft__top{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:30px;
  padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12)}
.ft__brand .logo__t{color:#fff}
.ft__brand .logo__t span{color:#7FA8E6}
.ft__blurb{font-size:13.5px;line-height:1.5;margin-top:12px;max-width:40ch}
.ft__badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.fbadge{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:5px 9px;
  border:1px solid rgba(255,255,255,.18);border-radius:100px;color:#C7D2E2}
.fbadge svg{width:12px;height:12px}
.ft__app{margin-top:16px}
.ft__app p{font-size:12.5px;margin-bottom:8px}
.ft__socials{display:flex;gap:7px;margin-top:16px}
.fsoc{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;transition:background .14s,border-color .14s}
.fsoc:hover{background:rgba(255,255,255,.1);border-color:#fff}
.fsoc svg{width:15px;height:15px}

.fcol h3{font-family:var(--f-display);font-size:13.5px;font-weight:700;color:#fff;margin-bottom:12px}
.fcol li{margin-bottom:8px}
.fcol a{font-size:13.5px;line-height:1.35}

.ft__seo{padding:28px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.seo__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.seo__c h4{font-family:var(--f-display);font-size:12.5px;font-weight:700;color:#8FA2BC;margin-bottom:9px}
.seo__l{display:flex;flex-wrap:wrap;gap:4px 10px}
.seo__l a{font-size:12.5px;color:#93A3BA;line-height:1.5}
.seo__l a:hover{color:#fff}

.ft__bar{padding:18px 0 calc(26px + env(safe-area-inset-bottom,0px));
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ft__legal{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px}
.ft__copy{font-size:12.5px;color:#7E8EA6}
.ft__sel{display:flex;gap:8px;flex-wrap:wrap}
.ft__sel select{background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:var(--r-sm);
  color:#C7D2E2;padding:6px 9px;font-size:12.5px}
.ft__sel select option{color:#111}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  /* minmax(0, ...) is CRITICAL on mobile: without it, the single grid
     cell gets its min-content width from children (the 7-tab scrollable
     row is ~840px wide intrinsically), which pushes the whole grid past
     the viewport. minmax(0, 1fr) lets the cell shrink below content so
     overflow-x:auto on .seek-tabs can actually scroll. */
  .hero__grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .ledger{max-width:520px}
  .job{grid-template-columns:3px minmax(0,1fr) 165px 128px}
  .job__act{display:none}
  .cogrid{grid-template-columns:repeat(4,1fr)}
  .ft__top{grid-template-columns:repeat(3,1fr);gap:26px}
  .ft__brand{grid-column:1/-1}
  .seo__grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1020px){
  .nav{display:none}
  .nav__a .btn--out{display:none}
  .burger{display:flex}
  .bar .shell{gap:14px;justify-content:space-between}
  .vgrid,.sgrid{grid-template-columns:repeat(2,1fr)}
  .loop{grid-template-columns:repeat(2,1fr)}
  .lp:nth-child(2){border-right:0}
  .lp:nth-child(1),.lp:nth-child(2){border-bottom:1px solid rgba(255,255,255,.14)}
  .tgrid{grid-template-columns:repeat(2,1fr)}
  .tgrid .tr:last-child{display:none}
  .dedup{grid-template-columns:1fr;gap:26px}
  .alertbox{grid-template-columns:1fr;gap:22px}
  .browse{gap:26px}
}
@media (max-width:860px){
  :root{--sec-y:40px;--gut:16px}
  .pill__g{grid-template-columns:repeat(2,1fr)}
  .proof__g{grid-template-columns:repeat(2,1fr)}
  .proof__i{border-bottom:1px solid var(--rule);padding:14px 16px 14px 0}
  .proof__i:nth-child(2n){border-right:0;padding-right:0}
  .proof__i:nth-child(2n+1){padding-left:0}
  .proof__i:nth-child(n+3){border-bottom:0}
  .split{grid-template-columns:1fr}
  .browse{grid-template-columns:1fr}
  .trust{grid-template-columns:auto minmax(0,1fr);gap:14px}
  .trust .btn{grid-column:1/-1;width:100%}
  .job{grid-template-columns:3px minmax(0,1fr) 138px}
  .job__src{display:none}
}
@media (max-width:680px){
  .util__l a,.util__l .util__sep{display:none}
  .util__l .util__pill{display:inline-flex}
  .util__r a:not(:last-child),.util__r .util__sep{display:none}
  .nav__a .btn--ghost{display:none}
  .seek__row{grid-template-columns:1fr}
  .seek__f{border-right:0;border-bottom:1px solid var(--rule)}
  .seek__go{padding:14px;width:100%}
  .job{grid-template-columns:3px minmax(0,1fr)}
  .job__pay{display:none}
  .job__main{padding:13px 14px}
  .job__paym{display:block}
  .cogrid{grid-template-columns:repeat(3,1fr)}
  .tgrid{grid-template-columns:1fr}
  .tgrid .tr:nth-child(n+3){display:none}
  .blist{grid-template-columns:1fr}
  .af__row{grid-template-columns:1fr}
  .ft__top{grid-template-columns:repeat(2,1fr)}
  .drawer__cta{grid-template-columns:1fr}
}
@media (max-width:520px){
  .nav__a .btn--pri{display:none}
  .util__pill{font-size:12px}
}
@media (max-width:460px){
  :root{--sec-y:32px;--gut:14px;--hdr-main:60px}
  body{font-size:14.5px}
  .vgrid,.sgrid,.pill__g{grid-template-columns:1fr}
  .pill__g .pill:nth-child(n+5){display:none}
  .loop{grid-template-columns:1fr}
  .lp{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}
  .lp:last-child{border-bottom:0}
  .cogrid{grid-template-columns:repeat(2,1fr)}
  .seo__grid{grid-template-columns:1fr;gap:18px}
  .ft__top{grid-template-columns:1fr;gap:22px}
  .ft__bar{flex-direction:column;align-items:flex-start;gap:12px}
  .chips__lb{width:100%;margin-bottom:2px}
}
@media (max-width:340px){
  :root{--gut:11px;--sec-y:26px}
  body{font-size:14px}
  .logo__t{font-size:17px}
  .logo__m{width:26px;height:26px}
  .proof__g{grid-template-columns:1fr}
  .proof__i{border-right:0;padding:12px 0!important;border-bottom:1px solid var(--rule)}
  .proof__i:last-child{border-bottom:0}
  .cogrid{grid-template-columns:1fr}
  .cogrid .co:nth-child(n+5){display:none}
  .drawer__cta{grid-template-columns:1fr}
  .job__marks .mark:nth-child(n+3){display:none}
  .h-xl{font-size:26px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}
@media print{.hdr,.drawer,.ft__seo{display:none}}
/* ============================================================
   /JOBS — SEARCH RESULTS
   Built on the shared token system. Nothing here redefines a token.
   ============================================================ */

/* ---------- Search band ---------- */
.sband{background:var(--wash);border-bottom:1px solid var(--rule);padding:14px 0}
.sband__in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:12.5px;color:var(--muted);margin-bottom:9px}
.crumb a:hover{color:var(--cobalt)}
.crumb span{color:var(--faint)}
.crumb b{font-weight:500;color:var(--ink-3)}

.seek--slim{margin-top:0;box-shadow:none;border-width:1.5px}
.seek--slim .seek__f input{padding:11px 0;font-size:14.5px}
.seek--slim .seek__go{padding:0 18px;font-size:14.5px}

/* ---------- Page head ---------- */
.jhead{padding:20px 0 0}
.jhead__t{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.jhead h1{font-size:clamp(21px,2.4vw,30px);letter-spacing:-.032em;line-height:1.1}
.jhead__c{font-size:14px;color:var(--muted);margin-top:6px}
.jhead__c b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}

/* ---------- Layout ---------- */
.jwrap{display:grid;grid-template-columns:286px minmax(0,1fr);gap:26px;align-items:start;padding:18px 0 0}
.jwrap>*{min-width:0}

/* ---------- Facet rail ---------- */
.rail{position:sticky;top:112px;max-height:calc(100vh - 128px);overflow-y:auto;overscroll-behavior:contain;
  border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;scrollbar-width:thin}
.rail::-webkit-scrollbar{width:7px}
.rail::-webkit-scrollbar-thumb{background:var(--rule);border-radius:4px}
.rail__hd{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border-bottom:1px solid var(--rule);position:sticky;top:0;background:#fff;z-index:2}
.rail__hd h2{font-size:14.5px}
.rail__clr{font-size:12.5px;font-weight:600;color:var(--cobalt)}
.rail__clr:hover{text-decoration:underline}

.fg{border-bottom:1px solid var(--rule-soft)}
.fg:last-child{border-bottom:0}
.fg__b{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:11px 14px;font-size:13.5px;font-weight:600;color:var(--ink);text-align:left}
.fg__b svg{width:11px;height:11px;opacity:.5;transition:transform .18s;flex:none}
.fg.open .fg__b svg{transform:rotate(180deg)}
.fg__p{display:none;padding:0 14px 12px}
.fg.open .fg__p{display:block}
.fg__find{width:100%;padding:7px 9px;border:1px solid var(--rule);border-radius:var(--r-sm);
  font-size:13px;margin-bottom:8px;background:var(--wash)}
.fg__find:focus{outline:none;border-color:var(--cobalt);background:#fff}
.fg__scroll{max-height:186px;overflow-y:auto;margin:0 -4px;padding:0 4px}

.cb{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;
  padding:5px 0;cursor:pointer;font-size:13.5px;color:var(--ink-2)}
.cb:hover{color:var(--ink)}
.cb input{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:1.5px solid var(--rule);
  border-radius:3px;background:#fff;flex:none;position:relative;cursor:pointer;margin:0}
.cb input:checked{background:var(--cobalt);border-color:var(--cobalt)}
.cb input:checked::after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(42deg)}
.cb input:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}
.cb i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.cb--dis{opacity:.45;cursor:not-allowed}

.flist a{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  padding:5px 0;font-size:13.5px;color:var(--ink-2)}
.flist a:hover{color:var(--cobalt)}
.flist i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.fg__more{margin-top:7px;font-size:12.5px;font-weight:600;color:var(--cobalt)}

.rail__note{padding:12px 14px;background:var(--wash);border-top:1px solid var(--rule);
  font-size:12px;color:var(--muted);line-height:1.45}

/* ---------- Toolbar ---------- */
.tbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-bottom:11px;border-bottom:1px solid var(--rule)}
.tbar__l{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.tbar__r{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tbar__n{font-size:14px;color:var(--muted)}
.tbar__n b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.sortsel{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--muted)}
.sortsel select{border:1.5px solid var(--rule);border-radius:var(--r-sm);padding:7px 9px;
  font-size:13.5px;background:#fff;font-weight:500;color:var(--ink)}
.sortsel select:focus{outline:none;border-color:var(--cobalt)}

.applied{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:11px 0}
.applied__lb{font-size:12.5px;color:var(--muted);margin-right:2px}
.fchip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;
  padding:5px 8px 5px 10px;border-radius:100px;background:var(--cobalt-lt);color:var(--cobalt-dk)}
.fchip button{display:flex;width:14px;height:14px;border-radius:50%;align-items:center;justify-content:center;
  background:rgba(27,79,156,.18);color:var(--cobalt-dk);font-size:11px;line-height:1;flex:none}
.fchip button:hover{background:var(--cobalt);color:#fff}
.applied__clr{font-size:12.5px;font-weight:600;color:var(--muted);margin-left:4px}
.applied__clr:hover{color:var(--alert)}

/* Quick chips (mobile-first refinement) */
.qbar{display:flex;gap:6px;overflow-x:auto;padding:11px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.qbar::-webkit-scrollbar{display:none}
.qchip{font-size:13px;font-weight:500;padding:6px 11px;border:1px solid var(--rule);border-radius:100px;
  background:#fff;color:var(--ink-2);white-space:nowrap;transition:border-color .14s,background .14s,color .14s}
.qchip:hover{border-color:var(--ink-3)}
.qchip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}

/* ---------- Results ---------- */
.res{border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden;background:#fff}
.res .job{grid-template-columns:3px minmax(0,1fr) 176px 148px 118px}
.res .job__t{font-size:16px}
.res .job__desc{font-size:13.5px;color:var(--ink-3);line-height:1.45;margin-top:7px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.job__save{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:var(--r-sm);
  display:flex;align-items:center;justify-content:center;color:var(--faint);border:1px solid transparent}
.job__save:hover{color:var(--cobalt);background:var(--cobalt-lt)}
.job__save[aria-pressed="true"]{color:var(--cobalt)}
.job__save svg{width:16px;height:16px}
.res .job{position:relative}

.match{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;
  padding:3px 7px;border-radius:4px;background:var(--cobalt-lt);color:var(--cobalt-dk)}
.match b{font-variant-numeric:tabular-nums}

.sponsor{background:var(--gold-bg);border-bottom:1px solid var(--rule)}
.sponsor .job__edge{background:var(--gold)}
.sponsor:hover{background:#F8E9CF}
.sponsor__tag{font-size:11px;font-weight:700;color:var(--gold);letter-spacing:.02em;
  display:inline-block;margin-bottom:5px}

/* Inline alert card inside the register */
.resalert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;
  padding:16px;background:var(--ink);color:#fff;border-bottom:1px solid var(--rule)}
.resalert__ic{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.12);
  display:flex;align-items:center;justify-content:center;flex:none}
.resalert__ic svg{width:18px;height:18px}
.resalert h3{font-size:16px;margin-bottom:4px;color:#fff}
.resalert p{font-size:13.5px;color:#AFBED3;max-width:64ch}

/* Empty state */
.empty{display:none;border:1px dashed var(--rule);border-radius:var(--r-md);background:var(--wash);
  padding:26px;text-align:left}
.empty.show{display:block}
.res.hide{display:none}
.empty__ic{width:40px;height:40px;border-radius:var(--r-sm);background:#fff;border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center;margin-bottom:13px}
.empty__ic svg{width:19px;height:19px;color:var(--muted)}
.empty h2{font-size:19px;margin-bottom:7px}
.empty p{font-size:14px;color:var(--ink-3);max-width:60ch;line-height:1.5}
.empty__act{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.empty__sug{margin-top:18px;padding-top:16px;border-top:1px solid var(--rule)}
.empty__sug h3{font-size:14px;margin-bottom:9px}
.empty__sug .chips{margin-top:0}

/* ---------- Pagination ---------- */
.pager{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:16px 0 0}
.pager__n{display:flex;gap:4px;flex-wrap:wrap}
.pg{min-width:34px;height:34px;padding:0 9px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--rule);border-radius:var(--r-sm);font-size:13.5px;font-weight:500;
  background:#fff;color:var(--ink-2);font-variant-numeric:tabular-nums}
.pg:hover{border-color:var(--ink-3)}
.pg[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:600}
.pg--gap{border:0;background:none;color:var(--faint)}
.pg--off{opacity:.4;pointer-events:none}
.pager__note{font-size:12.5px;color:var(--muted);max-width:52ch}

/* ---------- Context modules ---------- */
.mod{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;padding:18px;margin-top:18px}
.mod__hd{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
  margin-bottom:13px;flex-wrap:wrap}
.mod__hd h2{font-size:17px}
.mod__hd p{font-size:13px;color:var(--muted);margin-top:4px;max-width:62ch}

.payrow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule-soft);
  border-radius:var(--r-sm);overflow:hidden}
.payrow__i{padding:13px 14px;border-right:1px solid var(--rule-soft)}
.payrow__i:last-child{border-right:0}
.payrow__l{font-size:12.5px;color:var(--muted)}
.payrow__v{font-family:var(--f-display);font-size:21px;font-weight:800;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;margin-top:3px}
.payrow__s{font-size:12px;color:var(--faint);margin-top:3px}
.mod__ft{margin-top:12px;font-size:12.5px;color:var(--muted)}

.cohrow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.coh{border:1px solid var(--rule-soft);border-radius:var(--r-sm);padding:11px;display:flex;
  flex-direction:column;gap:6px;transition:border-color .14s}
.coh:hover{border-color:var(--ink-3)}
.coh__lg{width:30px;height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:800;font-size:12px;color:#fff}
.coh__n{font-size:12.5px;font-weight:600;line-height:1.25}
.coh__c{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

.gaprow{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.gap{border:1px solid var(--rule-soft);border-radius:var(--r-sm);padding:12px}
.gap__sk{font-size:13.5px;font-weight:600;margin-bottom:4px}
.gap__m{font-size:12.5px;color:var(--muted)}
.gap__bar{height:4px;border-radius:2px;background:var(--wash-2);margin:8px 0 6px;overflow:hidden}
.gap__bar i{display:block;height:100%;background:var(--cobalt);border-radius:2px}
.gap__l{font-size:12.5px;color:var(--cobalt);font-weight:600}

/* ---------- Refine links ---------- */
.refine{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:18px}
.refine h3{font-size:14.5px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.refine a{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;
  font-size:13.5px;color:var(--ink-2);border-bottom:1px solid var(--rule-soft)}
.refine a:last-child{border-bottom:0}
.refine a:hover{color:var(--cobalt)}
.refine i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}

/* ---------- Prose + FAQ ---------- */
.prose{max-width:74ch}
.prose h2{font-size:19px;margin-bottom:10px}
.prose h3{font-size:15px;margin:16px 0 6px}
.prose p{font-size:14px;color:var(--ink-3);line-height:1.6;margin-bottom:10px}
.prose p:last-child{margin-bottom:0}

.faq{border-top:1px solid var(--rule)}
.faq__i{border-bottom:1px solid var(--rule-soft)}
.faq__b{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  padding:13px 0;font-size:14.5px;font-weight:600;text-align:left;color:var(--ink)}
.faq__b svg{width:12px;height:12px;opacity:.5;transition:transform .18s;flex:none}
.faq__i.open .faq__b svg{transform:rotate(180deg)}
.faq__p{display:none;padding:0 0 14px;font-size:13.5px;color:var(--ink-3);line-height:1.55}
.faq__i.open .faq__p{display:block}

/* ---------- Mobile filter controls ---------- */
.mfbar{display:none;position:sticky;bottom:0;z-index:70;background:#fff;
  border-top:1px solid var(--rule);padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -4px 16px rgba(16,27,46,.08)}
.mfbar__in{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:var(--shell);margin:0 auto}
.mfbar .btn{width:100%}
.mfbar__n{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;
  padding:0 5px;border-radius:9px;background:var(--cobalt);color:#fff;font-size:11px;font-weight:700;
  font-variant-numeric:tabular-nums}

.sheet{position:fixed;inset:0;z-index:120;visibility:hidden}
.sheet__bg{position:absolute;inset:0;background:rgba(16,27,46,.45);opacity:0;transition:opacity .2s}
.sheet__p{position:absolute;left:0;right:0;bottom:0;max-height:88vh;background:#fff;
  border-radius:16px 16px 0 0;display:flex;flex-direction:column;
  transform:translateY(100%);transition:transform .24s ease}
body.sheet-open .sheet{visibility:visible}
body.sheet-open .sheet__bg{opacity:1}
body.sheet-open .sheet__p{transform:translateY(0)}
.sheet__hd{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 16px;border-bottom:1px solid var(--rule);flex:none}
.sheet__hd h2{font-size:16px}
.sheet__x{width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;
  justify-content:center;border:1px solid var(--rule)}
.sheet__x svg{width:14px;height:14px}
.sheet__body{overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto}
.sheet__ft{padding:12px 16px calc(14px + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--rule);display:grid;grid-template-columns:auto 1fr;gap:9px;flex:none}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .jwrap{grid-template-columns:250px minmax(0,1fr);gap:20px}
  .res .job{grid-template-columns:3px minmax(0,1fr) 160px 128px}
  .res .job__act{display:none}
  .cohrow{grid-template-columns:repeat(4,1fr)}
  .coh:nth-child(5){display:none}
  .refine{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1020px){
  .jwrap{grid-template-columns:minmax(0,1fr);gap:0;padding-top:0}
  .rail{display:none}
  .mfbar{display:block}
  .sband__in{grid-template-columns:1fr}
  .gaprow{grid-template-columns:1fr}
  .payrow{grid-template-columns:1fr}
  .payrow__i{border-right:0;border-bottom:1px solid var(--rule-soft)}
  .payrow__i:last-child{border-bottom:0}
}
@media (max-width:860px){
  .res .job{grid-template-columns:3px minmax(0,1fr) 138px}
  .res .job__src{display:none}
  .cohrow{grid-template-columns:repeat(3,1fr)}
  .coh:nth-child(n+4){display:none}
  .refine{grid-template-columns:1fr;gap:16px}
  .resalert{grid-template-columns:auto minmax(0,1fr)}
  .resalert .btn{grid-column:1/-1;width:100%}
}
@media (max-width:680px){
  .res .job{grid-template-columns:3px minmax(0,1fr)}
  .res .job__pay{display:none}
  .res .job__desc{-webkit-line-clamp:3}
  .job__save{top:10px;right:10px}
  .res .job__main{padding-right:46px}
  .tbar{align-items:flex-start}
  .tbar__r{width:100%;justify-content:space-between}
}
@media (max-width:460px){
  .cohrow{grid-template-columns:repeat(2,1fr)}
  .coh:nth-child(n+3){display:none}
  .pager__n .pg--h{display:none}
  .pager{gap:10px}
}
@media (max-width:340px){
  .cohrow{grid-template-columns:1fr}
  .coh:nth-child(n+2){display:none}
  .mfbar__in{grid-template-columns:1fr}
  .sheet__ft{grid-template-columns:1fr}
  .sortsel span{display:none}
}

/* ============================================================
   JOB DETAIL PAGE — appended from careerstack-job-detail.html
   ============================================================ */
/* ============================================================
   /JOBS/{slug}-{id} — JOB DETAIL
   Shares the homepage token system. Nothing here redefines a token.
   ============================================================ */

/* ---------- Breadcrumb band ---------- */
.dband{background:var(--wash);border-bottom:1px solid var(--rule);padding:11px 0}
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:12.5px;color:var(--muted)}
.crumb a:hover{color:var(--cobalt)}
.crumb span{color:var(--faint)}
.crumb b{font-weight:500;color:var(--ink-3)}

/* ---------- Layout ---------- */
.jd{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:26px;align-items:start;padding:20px 0 0}
.jd>*{min-width:0}
.jd__side{position:sticky;top:112px;display:grid;gap:12px}

/* ---------- Head ---------- */
.jdhead{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;overflow:visible}
.jdhead__edge{height:3px;background:var(--verify)}
.jdhead--unv .jdhead__edge{background:var(--rule)}
.jdhead__in{padding:18px}
.jdhead__top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start}
.jdlogo{width:52px;height:52px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:800;font-size:19px;color:#fff;letter-spacing:-.03em;flex:none}
.jdhead h1{font-size:clamp(20px,2.4vw,29px);letter-spacing:-.032em;line-height:1.12}
.jdhead__co{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:7px;font-size:14px;color:var(--ink-3)}
.jdhead__co a{font-weight:600;color:var(--ink);border-bottom:1.5px solid var(--rule)}
.jdhead__co a:hover{border-bottom-color:var(--cobalt);color:var(--cobalt)}
.jdhead__marks{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.jdhead__util{display:flex;gap:7px;margin-top:14px;flex-wrap:wrap}
.iconbtn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;
  padding:5px 9px;border:1px solid var(--rule);border-radius:var(--r-sm);background:#fff;color:var(--ink-2)}
.iconbtn:hover{border-color:var(--ink-3);background:var(--wash)}
.iconbtn svg{width:12px;height:12px;flex:none}
.iconbtn[aria-pressed="true"]{border-color:var(--cobalt);color:var(--cobalt);background:var(--cobalt-lt)}
.iconbtn--risk:hover{border-color:var(--alert);color:var(--alert);background:var(--alert-bg)}

/* ---------- Facts ---------- */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-soft);
  border-top:1px solid var(--rule-soft)}
.fact{background:#fff;padding:12px 14px}
.fact__l{font-size:12px;color:var(--muted)}
.fact__v{font-size:14px;font-weight:600;margin-top:2px;line-height:1.3}
.fact__v small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:1px}

/* Compact fact strip — used on job/company detail pages where the fact set
   auto-hides empty rows, so we don't want the roomy 4-col grid taking a slab
   of hero space. Auto-fitted, tighter padding, no forced 4-col floor. */
.facts--compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.facts--compact .fact{padding:8px 12px}
.facts--compact .fact__l{font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.facts--compact .fact__v{font-size:13.5px}
.facts--compact .fact__v small{font-size:11.5px;margin-top:0}

/* ---------- Generic panel ---------- */
.pan{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;padding:18px;margin-top:14px}
.pan__hd{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.pan__hd h2{font-size:17px}
.pan__hd p{font-size:13px;color:var(--muted);margin-top:4px;max-width:64ch}
.pan__ft{margin-top:12px;padding-top:11px;border-top:1px solid var(--rule-soft);font-size:12.5px;color:var(--muted);line-height:1.45}

/* ---------- Pay ---------- */
.paybig{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}
.paybig__v{font-family:var(--f-display);font-size:clamp(23px,3vw,31px);font-weight:800;
  letter-spacing:-.035em;font-variant-numeric:tabular-nums;line-height:1.05}
.paybig__l{font-size:13px;color:var(--muted);margin-top:4px}
.paycmp{text-align:right;font-size:12.5px;color:var(--muted);line-height:1.4}
.paycmp b{display:block;font-family:var(--f-display);font-size:15px;color:var(--verify);font-variant-numeric:tabular-nums}
.paycmp b.under{color:var(--alert)}
.payscale{margin-top:14px}
.payscale__t{position:relative;height:7px;border-radius:4px;background:var(--wash-2);overflow:hidden}
.payscale__mkt{position:absolute;top:0;bottom:0;background:#BFCDDD;border-radius:4px}
.payscale__job{position:absolute;top:0;bottom:0;background:var(--cobalt);border-radius:4px}
.payscale__e{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:6px;
  font-variant-numeric:tabular-nums}
.payscale__k{display:flex;flex-wrap:wrap;gap:12px;margin-top:9px;font-size:12px;color:var(--muted)}
.payscale__k span{display:inline-flex;align-items:center;gap:5px}
.payscale__k i{width:10px;height:5px;border-radius:3px;display:block}

/* ---------- Match ---------- */
.match__top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.match__ring{width:58px;height:58px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:conic-gradient(#CBD5E1 0 100%);position:relative}
.match__ring--good{background:conic-gradient(#16A34A 0 var(--pct,75%),#E5E7EB var(--pct,75%) 100%)}
.match__ring--mid {background:conic-gradient(#D97706 0 var(--pct,55%),#E5E7EB var(--pct,55%) 100%)}
.match__ring--low {background:conic-gradient(#DC2626 0 var(--pct,30%),#E5E7EB var(--pct,30%) 100%)}
.match__ring::after{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%}
.match__ring b{position:relative;z-index:1;font-family:var(--f-display);font-size:16px;font-weight:800;
  font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.match__txt h3{font-size:15.5px;margin-bottom:3px}
.match__txt p{font-size:13px;color:var(--ink-3);line-height:1.45}
.match__gaps{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:4px}
.match__gap{display:inline-flex;align-items:center;padding:2px 10px;background:#FEF3C7;color:#78350F;border-radius:999px;
  font-size:12px;font-weight:600;text-decoration:none;border:1px solid #FDE68A;transition:all .14s ease}
.match__gap:hover{background:#FDE68A;color:#52320A;border-color:#D97706}
.match__gap::after{content:" \2192";opacity:.6;margin-left:2px}
.mparts{display:grid;gap:8px;margin-top:14px}
.mpart{display:grid;grid-template-columns:118px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px}
.mpart__l{color:var(--ink-3)}
.mpart__b{height:5px;border-radius:3px;background:var(--wash-2);overflow:hidden}
.mpart__b i{display:block;height:100%;border-radius:3px;background:var(--cobalt)}
.mpart__b i.low{background:var(--gold)}
.mpart__v{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}

/* ---------- Description ---------- */
.desc{font-size:14.5px;line-height:1.62;color:var(--ink-2)}
.desc h3{font-size:15.5px;margin:18px 0 7px;color:var(--ink)}
.desc h3:first-child{margin-top:0}
.desc p{margin-bottom:11px}
.desc ul,.desc ol{margin:0 0 12px;padding-left:0;list-style:none}
.desc li{position:relative;padding-left:16px;margin-bottom:6px}
.desc li::before{content:"";position:absolute;left:2px;top:10px;width:5px;height:5px;border-radius:50%;background:var(--cobalt)}
.desc ol{counter-reset:desc-ol}
.desc ol>li{counter-increment:desc-ol;padding-left:22px}
.desc ol>li::before{content:counter(desc-ol) ".";background:none;top:0;left:0;width:auto;height:auto;color:var(--cobalt);font-weight:600;font-size:13.5px}
.srcnote{margin-top:14px;padding:11px 13px;background:var(--wash);border-radius:var(--r-sm);
  font-size:12.5px;color:var(--muted);line-height:1.45}

/* ---------- Skills ---------- */
.sklist{display:grid;gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);border-radius:var(--r-sm);overflow:hidden}
.skrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;
  background:#fff;padding:11px 13px}
.skrow__i{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.skrow__i svg{width:11px;height:11px}
.skrow--has .skrow__i{background:var(--verify-bg);color:var(--verify)}
.skrow--miss .skrow__i{background:var(--gold-bg);color:var(--gold)}
.skrow__n{font-size:14px;font-weight:500}
.skrow__m{font-size:12.5px;color:var(--muted);margin-top:1px}
.skrow__a{font-size:12.5px;font-weight:600;color:var(--cobalt);white-space:nowrap}
.skrow__a:hover{text-decoration:underline}
.skrow__tag{font-size:11.5px;color:var(--faint);white-space:nowrap}
.skfoot{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding:12px;background:var(--cobalt-lt);border-radius:var(--r-sm)}
.skfoot p{font-size:13px;color:var(--cobalt-dk);max-width:60ch;line-height:1.45}

/* ---------- Source ledger for this listing ---------- */
.srcl{border:1px solid var(--rule-soft);border-radius:var(--r-sm);overflow:hidden}
.srcl__r{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;
  padding:11px 13px;border-bottom:1px solid var(--rule-soft);font-size:13.5px}
.srcl__r:last-child{border-bottom:0}
.srcl__r.dup{background:var(--wash);color:var(--muted)}
.srcl__n{width:21px;height:21px;border-radius:50%;background:var(--wash-2);color:var(--muted);
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none}
.srcl__r.keep .srcl__n{background:var(--verify-bg);color:var(--verify)}
.srcl__t{min-width:0}
.srcl__t b{display:block;font-weight:500}
.srcl__t small{font-size:12px;color:var(--faint)}
.srcl__d{font-size:12px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.repost{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}
.repost__i{border:1px solid var(--rule-soft);border-radius:var(--r-sm);padding:11px 12px}
.repost__l{font-size:12px;color:var(--muted)}
.repost__v{font-family:var(--f-display);font-size:17px;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}

/* ---------- Sidebar cards ---------- */
.card{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;overflow:hidden}
.card__in{padding:16px}
.card__hd{padding:12px 16px;border-bottom:1px solid var(--rule-soft);display:flex;
  align-items:center;justify-content:space-between;gap:10px}
.card__hd h2{font-size:14.5px}
.card__hd a{font-size:12.5px;font-weight:600;color:var(--cobalt)}

.applycard{border-color:var(--ink)}
.applycard .card__in{padding:16px}
.applyhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}
.applyhead h2{font-size:15.5px}
.applycard__d{font-size:13px;color:var(--ink-3);line-height:1.45;margin:12px 0 0}
/* When applycard is rendered as a .pan (main content area, wider), lay the
   buttons out horizontally instead of stacked full-width. */
.applycard.pan .btn{width:auto}
.applycard.pan .applycard__row{grid-auto-flow:column;grid-auto-columns:max-content;gap:10px;align-items:center}
.applycard__submit{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule-soft)}
.applycard__submit h3{font-size:13.5px;margin:0 0 8px}
/* Application-requirement checklist ("What to submit"). Inline pill chips
   rather than a bulleted list so the row stays compact when there are 5+ items. */
.jd__checklist{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0;list-style:none}
.jd__checklist li{padding:4px 10px;background:var(--wash);border:1px solid var(--rule-soft);
  border-radius:100px;font-size:12.5px;color:var(--ink-2)}
.jd__note{font-size:12.5px;color:var(--muted);margin:8px 0 0}
/* Original sidebar variant keeps its stacked layout. */
.applycard:not(.pan) .btn{width:100%}
.applycard:not(.pan) .applycard__row{display:grid;gap:8px}
.applycard__meta{margin-top:12px;padding-top:11px;border-top:1px solid var(--rule-soft);
  display:grid;gap:6px;font-size:12.5px;color:var(--muted)}
.applycard__meta span{display:flex;justify-content:space-between;gap:10px}
.applycard__meta b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}
.deadline{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--gold-bg);
  border-radius:var(--r-sm);margin-bottom:13px}
.deadline svg{width:16px;height:16px;color:var(--gold);flex:none}
.deadline p{font-size:13px;color:var(--gold);font-weight:600}
.deadline small{display:block;font-weight:400;font-size:12px;opacity:.85}

.emp__top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:11px;align-items:center}
.emp__lg{width:42px;height:42px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;
  font-family:var(--f-display);font-weight:800;font-size:15px;color:#fff;flex:none}
.emp__n{font-size:15px;font-weight:700;font-family:var(--f-display);letter-spacing:-.02em;line-height:1.2}
.emp__s{font-size:12.5px;color:var(--muted);margin-top:2px}
.emp__stats{display:grid;gap:7px;margin-top:13px;padding-top:12px;border-top:1px solid var(--rule-soft);font-size:13px}
.emp__stats span{display:flex;justify-content:space-between;gap:10px;color:var(--muted)}
.emp__stats b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.emp__act{margin-top:13px;display:grid;gap:7px}

.mini{display:grid;gap:1px;background:var(--rule-soft)}
.mini__i{background:#fff;padding:11px 16px;display:block}
.mini__i:hover{background:var(--wash)}
.mini__t{font-size:13.5px;font-weight:600;line-height:1.25;color:var(--ink)}
.mini__i:hover .mini__t{color:var(--cobalt-dk)}
.mini__m{font-size:12px;color:var(--muted);margin-top:3px;display:flex;flex-wrap:wrap;gap:3px 9px}
.mini__p{font-size:12.5px;font-weight:600;margin-top:4px;font-variant-numeric:tabular-nums}
.mini__p.none{font-weight:400;color:var(--muted)}

.safety{border-color:var(--alert)}
.safety .card__in{background:var(--alert-bg)}
.safety h2{font-size:14.5px;color:#7A2112;margin-bottom:6px}
.safety p{font-size:13px;color:#7A2112;line-height:1.45;margin-bottom:11px}
.safety .btn{width:100%;border-color:rgba(122,33,18,.35);color:#7A2112;background:#fff}
.safety .btn:hover{background:#fff;border-color:#7A2112}

/* ---------- Similar / related ---------- */
.simgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.sim{border:1px solid var(--rule-soft);border-radius:var(--r-sm);padding:13px;display:block;transition:border-color .14s}
.sim:hover{border-color:var(--ink-3)}
.sim__t{font-family:var(--f-display);font-size:14.5px;font-weight:600;letter-spacing:-.02em;line-height:1.25}
.sim:hover .sim__t{color:var(--cobalt-dk)}
.sim__m{font-size:12.5px;color:var(--muted);margin-top:4px;display:flex;flex-wrap:wrap;gap:3px 9px}
.sim__b{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;align-items:center}
.sim__p{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.sim__p.none{font-weight:400;color:var(--muted)}

.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rel h3{font-size:14px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.rel a{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;
  font-size:13.5px;color:var(--ink-2);border-bottom:1px solid var(--rule-soft)}
.rel a:last-child{border-bottom:0}
.rel a:hover{color:var(--cobalt)}
.rel i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--rule)}
.faq__i{border-bottom:1px solid var(--rule-soft)}
.faq__b{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
  padding:12px 0;font-size:14.5px;font-weight:600;text-align:left;color:var(--ink)}
.faq__b svg{width:12px;height:12px;opacity:.5;transition:transform .18s;flex:none}
.faq__i.open .faq__b svg{transform:rotate(180deg)}
.faq__p{display:none;padding:0 0 13px;font-size:13.5px;color:var(--ink-3);line-height:1.55}
.faq__i.open .faq__p{display:block}

/* ---------- Sticky mobile apply ---------- */
.stickyapply{display:none;position:sticky;bottom:0;z-index:70;background:#fff;border-top:1px solid var(--rule);
  padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px rgba(16,27,46,.1)}
.stickyapply__in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;
  max-width:var(--shell);margin:0 auto}
.stickyapply__p{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}
.stickyapply__p small{display:block;font-size:11.5px;font-weight:500;color:var(--gold)}
.stickyapply__p.none{font-weight:500;color:var(--muted)}

/* ---------- Modal ---------- */
.modal{position:fixed;inset:0;z-index:130;visibility:hidden}
.modal__bg{position:absolute;inset:0;background:rgba(16,27,46,.5);opacity:0;transition:opacity .18s}
.modal__p{position:absolute;left:50%;top:50%;transform:translate(-50%,-46%) scale(.98);
  width:min(480px,calc(100vw - 28px));max-height:86vh;overflow:auto;background:#fff;
  border-radius:var(--r-lg);opacity:0;transition:opacity .18s,transform .18s}
body.modal-open .modal{visibility:visible}
body.modal-open .modal__bg{opacity:1}
body.modal-open .modal__p{opacity:1;transform:translate(-50%,-50%) scale(1)}
.modal__hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;
  border-bottom:1px solid var(--rule)}
.modal__hd h2{font-size:16.5px}
.modal__x{width:30px;height:30px;border-radius:var(--r-sm);border:1px solid var(--rule);
  display:flex;align-items:center;justify-content:center}
.modal__x svg{width:13px;height:13px}
.modal__b{padding:18px}
.modal__b > p{font-size:13.5px;color:var(--ink-3);line-height:1.5;margin-bottom:13px}
.rchoice{display:grid;gap:1px;background:var(--rule-soft);border:1px solid var(--rule-soft);
  border-radius:var(--r-sm);overflow:hidden;margin-bottom:13px}
.rchoice label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;
  background:#fff;padding:11px 13px;cursor:pointer;font-size:13.5px}
.rchoice label:hover{background:var(--wash)}
.rchoice input{appearance:none;-webkit-appearance:none;width:15px;height:15px;border:1.5px solid var(--rule);
  border-radius:50%;margin:2px 0 0;flex:none;position:relative}
.rchoice input:checked{border-color:var(--cobalt);border-width:5px}
.rchoice small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.modal__ta{width:100%;min-height:78px;padding:10px 12px;border:1.5px solid var(--rule);
  border-radius:var(--r-sm);font-size:14px;resize:vertical;font-family:inherit}
.modal__ta:focus{outline:none;border-color:var(--cobalt)}
.modal__ft{display:flex;gap:9px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .jd{grid-template-columns:minmax(0,1fr) 300px;gap:20px}
  .facts{grid-template-columns:repeat(3,1fr)}
  .rel{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:1020px){
  .jd{grid-template-columns:minmax(0,1fr);gap:14px}
  .jd__side{position:static;grid-template-columns:repeat(2,1fr);display:grid;gap:12px}
  .jd__side .applycard{grid-column:1/-1}
  .stickyapply{display:block}
  .mpart{grid-template-columns:104px minmax(0,1fr) auto}
}
@media (max-width:860px){
  .facts{grid-template-columns:repeat(2,1fr)}
  .jd__side{grid-template-columns:1fr}
  .simgrid{grid-template-columns:1fr}
  .rel{grid-template-columns:1fr;gap:14px}
  .repost{grid-template-columns:1fr}
  .paybig{grid-template-columns:1fr;gap:10px}
  .paycmp{text-align:left}
}
@media (max-width:680px){
  .jdhead__top{grid-template-columns:1fr;gap:11px}
  .jdlogo{width:44px;height:44px;font-size:16px}
  .mpart{grid-template-columns:1fr;gap:4px}
  .mpart__v{justify-self:start}
  .skrow{grid-template-columns:auto minmax(0,1fr)}
  .skrow__a,.skrow__tag{grid-column:2;justify-self:start;margin-top:4px}
}
@media (max-width:460px){
  .facts{grid-template-columns:1fr}
  .srcl__r{grid-template-columns:auto minmax(0,1fr)}
  .srcl__d{grid-column:2;margin-top:2px}
  .jdhead__util .iconbtn span{display:none}
  .jdhead__util .iconbtn{padding:8px 10px}
}
@media (max-width:340px){
  .stickyapply__in{grid-template-columns:1fr}
  .stickyapply__p{display:none}
  .match__top{grid-template-columns:1fr}
  .modal__ft{flex-direction:column-reverse}
  .modal__ft .btn{width:100%}
}

/* AJAX filter helper (public/js/ajax-filters.js). is-ajax-loading dims the
   swapped region so the user sees the request is in flight; is-ajax-swapping
   is a one-frame class you can hook a transition to. */
[data-ajax-results]{position:relative;transition:opacity .12s ease}
[data-ajax-results].is-ajax-loading{opacity:.55;pointer-events:none}
[data-ajax-results].is-ajax-loading::after{
  content:"";position:absolute;top:14px;right:14px;width:16px;height:16px;
  border:2px solid var(--rule,#e5e7eb);border-top-color:var(--cobalt,#1d4ed8);
  border-radius:50%;animation:ajaxspin .7s linear infinite;z-index:5
}
[data-ajax-results].is-ajax-swapping{opacity:.7}
@keyframes ajaxspin{to{transform:rotate(360deg)}}

/* ===========================================================================
   Pagination (.p-nav). Shared across admin + public via pagination.openings
   view. Defined here so it styles on every surface that extends layouts.site
   (companies, taxonomy pages, etc) - not just admin.
   =========================================================================== */
.p-nav{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:14px 2px;font-size:13px;margin-top:8px}
.p-nav a,.p-nav span{padding:7px 12px;border-radius:7px;background:#fff;border:1px solid #E5E7EB;color:#334155;text-decoration:none;font-weight:600;line-height:1;transition:all .12s ease;min-width:36px;text-align:center;font-variant-numeric:tabular-nums}
.p-nav a:hover{background:#EEF4FD;border-color:#1B4F9C;color:#1B4F9C}
.p-nav .on{background:#1B4F9C;color:#fff;border-color:#1B4F9C;cursor:default}
.p-nav .p-nav__meta{border:0 !important;background:transparent !important;padding:7px 10px !important;font-weight:400;color:#6B7280;font-size:12px}
.p-nav span[aria-disabled="true"]{color:#CBD5E1;background:#F8FAFC;border-color:#F1F5F9}

/* ===========================================================================
   "Read more" / expandable long-form copy. Collapses to a bounded height with
   a soft fade; the state class `.is-open` is toggled by the inline template
   script. Used by company About blocks, taxonomy page articles, etc.
   =========================================================================== */
.rm{position:relative}
.rm__body{position:relative;overflow:hidden;max-height:140px;transition:max-height .35s ease}
.rm__body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:60px;background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 85%);pointer-events:none;transition:opacity .25s ease}
.rm.is-open .rm__body{max-height:none}
.rm.is-open .rm__body::after{opacity:0}
.rm__toggle{appearance:none;background:none;border:0;padding:6px 0;margin-top:6px;color:#1B4F9C;font-weight:700;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.rm__toggle:hover{color:#163E7D;text-decoration:underline}
.rm__body p{margin:0 0 8px}
.rm__body p:last-child{margin-bottom:0}
.rm.no-truncate .rm__body{max-height:none}
.rm.no-truncate .rm__body::after{display:none}
.rm.no-truncate .rm__toggle{display:none}

/* ===========================================================================
   Typeahead dropdown (public/js/typeahead.js). Positioned absolute over
   its input so the suggestions panel never pushes layout. Each enclosing
   .seek__f (or any wrapper around a data-typeahead input) MUST have
   position:relative inline/in-page for the absolute positioning to anchor
   correctly.
   =========================================================================== */
.ta-panel{position:absolute;top:calc(100% + 6px);left:0;right:0;
  background:#fff;border:1px solid var(--rule,#e5e7eb);border-radius:10px;
  box-shadow:0 12px 32px -8px rgba(10,10,15,.18),0 2px 6px rgba(10,10,15,.06);
  z-index:1000;max-height:min(70vh,480px);overflow-y:auto;overflow-x:hidden;padding:6px 0}
.ta-panel[hidden]{display:none}
.ta-group{padding:4px 0}
.ta-group+.ta-group{border-top:1px solid var(--rule-soft,#f1f5f9)}
.ta-group__h{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;
  font-weight:700;color:var(--muted,#6b7280);padding:6px 14px 4px}
.ta-item{display:block;padding:8px 14px;font-size:13.5px;color:var(--ink,#0f172a);
  text-decoration:none;cursor:pointer;line-height:1.35}
.ta-item:hover,.ta-item.on{background:var(--cobalt-lt,#eef4fd);color:var(--cobalt-dk,#163e7d)}
.ta-item mark{background:transparent;color:inherit;font-weight:700}
.ta-item small{display:block;font-size:11.5px;color:var(--muted,#6b7280);margin-top:1px}
.ta-item:hover small,.ta-item.on small{color:var(--cobalt-dk,#163e7d)}
.ta-item--free{font-weight:600}
.ta-item--free::before{content:"\1F50D  ";opacity:.7}
.ta-empty{padding:14px;text-align:center;font-size:12.5px;color:var(--muted,#6b7280)}
