/* LegitSponsors — single stylesheet, mobile-first, no frameworks.
   System font stack. Keep total < 30KB. */
:root{
  --ink:#1a2333; --muted:#5b6472; --line:#e3e7ee;
  --brand:#0a2a5e; --brand-ink:#ffffff;
  --accent:#0b6e4f; --accent-soft:#e6f4ee;
  --warn-bg:#fff7e6; --warn-line:#e8c96a;
  --danger:#b3261e;
  --card:#ffffff; --page:#f7f8fa;
  --radius:12px; --tap:52px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:var(--font); color:var(--ink); background:var(--page);
  font-size:17px; line-height:1.6;
}
img{max-width:100%;height:auto}
a{color:var(--brand); text-decoration:underline; text-underline-offset:2px}
a:hover{color:#123f8f}
a,button{-webkit-tap-highlight-color:rgba(10,42,94,.12)}

/* ---------- header ---------- */
.site-header{background:var(--brand); color:var(--brand-ink)}
.site-header .wrap{display:flex; align-items:center; gap:12px; padding:12px 16px; max-width:1100px; margin:0 auto}
.brand{color:#fff; font-weight:800; font-size:1.25rem; text-decoration:none; letter-spacing:.2px; display:inline-flex; align-items:center; gap:9px}
.brand svg{flex:none; display:block}
.brand:hover{color:#fff}
.main-nav{margin-left:auto; display:flex; gap:4px}
.main-nav a{color:#fff; text-decoration:none; padding:12px 14px; min-height:var(--tap);
  display:inline-flex; align-items:center; border-radius:8px; font-weight:600}
.main-nav a:hover{background:rgba(255,255,255,.14); color:#fff}
@media(max-width:600px){
  /* two-row header on phones: brand row, then full-width nav row */
  .site-header .wrap{flex-wrap:wrap; gap:8px 12px; padding-top:10px; padding-bottom:10px}
  .brand{font-size:1.12rem}
  .main-nav{margin-left:0; width:100%; gap:6px}
  .main-nav a{flex:1; justify-content:center; padding:10px 6px; min-height:48px; font-size:.95rem}
}
:focus-visible{outline:3px solid #7aa5f8; outline-offset:2px}
.site-header :focus-visible,.hero :focus-visible{outline-color:#fff}
.skip{position:absolute; left:-9999px}
.skip:focus{left:8px; top:8px; background:#fff; color:var(--brand); padding:10px 14px; z-index:99}

/* ---------- layout ---------- */
.wrap{max-width:1100px; margin:0 auto; padding:0 16px}
main .wrap{max-width:760px}
main .wrap.wide{max-width:1100px}
.layout{display:grid; grid-template-columns:1fr; gap:24px}
@media(min-width:1024px){
  main .wrap.wide .layout{grid-template-columns:minmax(0,1fr) 300px}
}
.sidebar{display:none}
@media(min-width:1024px){ .sidebar{display:block} }

/* ---------- hero / search ---------- */
.hero{background:linear-gradient(180deg,#0d3372 0%,var(--brand) 100%); color:#fff; padding:44px 0 40px; text-align:center}
.hero h1{margin:0 0 10px; font-size:1.9rem; line-height:1.25; letter-spacing:-.02em; font-weight:800}
@media(min-width:768px){
  .hero{padding:58px 0 52px}
  .hero h1{font-size:2.5rem}
  .hero p.tagline{font-size:1.15rem}
}
@media(max-width:520px){
  .hero{padding:32px 0 30px}
  .hero h1{font-size:1.55rem}
}
.hero p.tagline{margin:0 0 22px; font-size:1.05rem; opacity:.94}
.search-big{max-width:620px; margin:0 auto}
.search-big form{display:flex; gap:8px}
.search-big input[type=search]{
  flex:1; min-width:0; min-height:60px; font-size:1.1rem; padding:10px 18px;
  border:0; border-radius:14px;
}
.search-big button{
  min-height:60px; padding:0 26px; font-size:1.1rem; font-weight:700;
  background:#22b573; color:#06281c; border:0; border-radius:14px; cursor:pointer; white-space:nowrap;
  transition:background-color .15s ease, transform .08s ease;
}
.search-big button:hover{background:#2fd487}
.search-big button:active,.search-small button:active,.export-btn:active{transform:translateY(1px)}
.hero-note{margin:16px 0 0; font-size:.9rem; opacity:.85}
#search-results{max-width:620px; margin:12px auto 0; text-align:left}
#search-results .results-list{list-style:none; margin:0; padding:0; background:#fff; border-radius:12px; overflow:hidden}
#search-results .results-list a{display:block; padding:14px 18px; color:var(--ink); text-decoration:none; border-bottom:1px solid var(--line); min-height:var(--tap)}
#search-results .results-list a strong{display:block; font-size:1.02rem}
#search-results .results-list a span{color:var(--muted); font-size:.92rem}
#search-results .results-list a:hover{background:#eef3ff}
.no-results{background:#fff; color:var(--ink); border-radius:12px; padding:16px 18px}

/* ---------- cards / stats ---------- */
.stat-band{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:28px 0}
.stat{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:16px 12px; text-align:center}
.stat b{display:block; font-size:1.5rem; color:var(--brand)}
.stat span{font-size:.85rem; color:var(--muted)}
@media(max-width:520px){ .stat b{font-size:1.15rem} .stat span{font-size:.75rem} }

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:20px; margin:18px 0;
  box-shadow:0 1px 3px rgba(16,24,40,.06)}
.card h2{margin-top:0}
.section-title{margin:34px 0 8px; font-size:1.35rem}

/* ---------- trust block ---------- */
.trust{background:var(--accent-soft); border:1px solid #bfe3d2; border-radius:var(--radius); padding:18px 20px; margin:18px 0}
.trust-row{display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:10px}
.verified-badge{display:inline-flex; align-items:center; gap:8px; background:var(--accent); color:#fff;
  font-weight:700; padding:10px 16px; border-radius:999px; font-size:1rem;
  box-shadow:0 2px 6px rgba(11,110,79,.35)}
.chip{display:inline-block; padding:6px 12px; border-radius:999px; background:#eef1f6; color:var(--ink);
  font-size:.88rem; font-weight:600; border:1px solid var(--line)}
.chip-a{background:var(--accent-soft); border-color:#bfe3d2; color:#0b5c42}
.chip-b{background:#fdecea; border-color:#f3b7b2; color:var(--danger)}
.trust .micro{font-size:.88rem; color:var(--muted); margin:6px 0 0}

/* ---------- facts table ---------- */
.facts{width:100%; border-collapse:collapse; margin:14px 0; font-size:.98rem}
.facts th,.facts td{text-align:left; padding:12px 10px; border-bottom:1px solid var(--line); vertical-align:top}
.facts th{width:38%; color:var(--muted); font-weight:600}
.facts-wrap{overflow-x:auto}

/* ---------- employer rows ---------- */
.emp-list{list-style:none; margin:12px 0; padding:0}
.emp-list li{margin:0 0 10px}
.emp-list a{display:block; background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:16px 18px; text-decoration:none; color:var(--ink); min-height:var(--tap);
  transition:border-color .15s ease, box-shadow .15s ease}
.emp-list a:hover{border-color:var(--brand); box-shadow:0 2px 8px rgba(10,42,94,.1)}
.emp-name{display:block; font-weight:700; font-size:1.05rem; margin-bottom:6px}
.emp-meta{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:.9rem; color:var(--muted)}
.link-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:14px 0}
@media(max-width:520px){ .link-grid{grid-template-columns:1fr} }
.link-grid a{display:flex; align-items:center; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:14px 16px; min-height:var(--tap); text-decoration:none; font-weight:600; color:var(--ink)}
.link-grid a:hover{border-color:var(--brand)}

/* ---------- callouts ---------- */
.scam{background:var(--warn-bg); border:1px solid var(--warn-line); border-radius:var(--radius); padding:16px 18px; margin:20px 0}
.scam strong{display:block; margin-bottom:4px}
.empty{background:#f2f5f9; border:1px solid var(--line); border-left:4px solid var(--brand);
  border-radius:8px; padding:14px 16px; color:var(--muted); margin:14px 0; font-size:.95rem}
.faq details{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); margin:10px 0; padding:0}
.faq summary{padding:16px 18px; font-weight:700; cursor:pointer; min-height:var(--tap); list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq details[open] summary{border-bottom:1px solid var(--line)}
.faq .answer{padding:4px 18px 18px}

/* ---------- pagination / crumbs ---------- */
.crumbs{font-size:.9rem; color:var(--muted); padding:12px 0 0}
.crumbs a{color:var(--muted)}
.pager{display:flex; flex-wrap:wrap; gap:8px; margin:24px 0; align-items:center}
.pager a,.pager span{display:inline-flex; align-items:center; justify-content:center; min-width:var(--tap); min-height:var(--tap);
  padding:8px 14px; border:1px solid var(--line); border-radius:10px; background:#fff; text-decoration:none; font-weight:600; color:var(--ink)}
.pager a:hover{border-color:var(--brand)}
.pager .current{background:var(--brand); color:#fff; border-color:var(--brand)}
.pager .info{border:0; background:none; color:var(--muted); font-weight:400}

/* ---------- ad slots (only rendered when publisher id configured) ---------- */
.ad-slot{margin:18px 0; padding:10px; border:1px dashed #c8cfdb; border-radius:8px; text-align:center; background:#fff}
.ad-label{display:block; font-size:.72rem; letter-spacing:1.5px; text-transform:uppercase; color:#98a2b3; margin-bottom:6px}

/* ---------- footer ---------- */
.site-footer{background:var(--brand); color:#dbe4f5; margin-top:48px; font-size:.92rem}
.site-footer .wrap{padding-top:26px; padding-bottom:26px; max-width:1100px}
.site-footer a{color:#fff}
.legal{border-top:1px solid rgba(255,255,255,.2); margin-top:18px; padding-top:16px; font-size:.85rem; color:#b9c6e2}
.legal p{margin:6px 0}
.foot-nav{display:flex; flex-wrap:wrap; gap:4px 18px}
.foot-nav a{text-decoration:none; padding:10px 4px; min-height:44px; display:inline-flex; align-items:center}

/* ---------- misc ---------- */
h1{font-size:1.7rem; line-height:1.3; margin:22px 0 12px; letter-spacing:-.015em; font-weight:800; overflow-wrap:break-word}
h2{font-size:1.3rem; margin:26px 0 10px; letter-spacing:-.01em}
@media(max-width:520px){ h1{font-size:1.4rem} }
.muted{color:var(--muted)}
.small{font-size:.88rem}
.az{display:flex; flex-wrap:wrap; gap:8px; margin:14px 0}
.az a{display:inline-flex; align-items:center; justify-content:center; min-width:var(--tap); min-height:var(--tap);
  border:1px solid var(--line); border-radius:10px; background:#fff; text-decoration:none; font-weight:700; color:var(--ink)}
.az a:hover{border-color:var(--brand)}
.az-letter{margin:28px 0 6px; font-size:1.25rem; border-bottom:2px solid var(--brand); padding-bottom:4px}
.steps{display:grid; gap:12px; margin:16px 0; padding:0; list-style:none}
.steps li{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:16px 18px}
.steps b{color:var(--brand)}
ul.tight li{margin-bottom:6px}

/* ---------- sticky compact search (employer pages) ---------- */
/* White bar (not brand) so it reads as a tool, not a second header. */
.sticky-search{position:sticky; top:0; z-index:50; background:#fff;
  padding:10px 0; box-shadow:0 2px 10px rgba(10,42,94,.12); border-bottom:1px solid var(--line)}
.sticky-search .wrap{max-width:1100px}
.search-small form{display:flex; gap:8px}
.search-small input[type=search]{flex:1; min-width:0; min-height:var(--tap);
  font-size:1rem; padding:8px 14px; border:2px solid var(--brand); border-radius:10px;
  background:#fff}
.search-small button{min-height:var(--tap); padding:0 20px; font-size:1rem;
  font-weight:700; background:#22b573; color:#06281c; border:0;
  border-radius:10px; cursor:pointer; transition:background-color .15s ease, transform .08s ease}
.search-small button:hover{background:#2fd487}
.sticky-search #search-results{margin:8px 0 0}
.sticky-search #search-results .results-list{max-height:50vh; overflow:auto}

/* ---------- search filters + export ---------- */
.filters{display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin:18px 0 6px}
.filters label{font-weight:600; font-size:.92rem; display:flex; flex-direction:column; gap:6px}
.filters select{min-height:var(--tap); font-size:1rem; padding:10px 12px;
  border:1px solid var(--line); border-radius:10px; background:#fff; max-width:230px}
.export-btn{min-height:var(--tap); padding:10px 18px; font-size:.95rem; font-weight:700;
  background:#fff; color:var(--brand); border:2px solid var(--brand);
  border-radius:10px; cursor:pointer}
.export-btn:hover{background:#eef3ff}
.freshness{font-size:.9rem; color:var(--muted)}
.result-count{font-weight:700; margin:14px 0 0}

/* ---------- employer-page modules ---------- */
.tip{background:#eef6ff; border:1px solid #bcd7f5; border-radius:var(--radius);
  padding:14px 18px; margin:16px 0}
.checklist{list-style:none; margin:12px 0; padding:0; display:grid; gap:10px}
.checklist li{background:#f2f7f2; border:1px solid #cfe3d2; border-radius:10px; padding:12px 16px}
.channel-cta{background:#eef9f1; border:1px solid #bfe3d2; border-radius:var(--radius);
  padding:16px 18px; margin:20px 0}
.report{margin-top:10px}

/* ---------- guide pages ---------- */
.byline{margin:28px 0 4px}
