/* ==========================================================================
   Gemini Workforce Solutions — site styles
   Palette and type carry over from the original one-page site so the brand
   does not shift underneath anyone who has already seen it. Everything else
   (grid, cards, job board, forms) is new.
   ========================================================================== */

:root{
  --ink:#0E1B2A;          /* headings */
  --ink-2:#28323f;        /* body */
  --ink-3:#5a6675;        /* muted / meta */
  --ink-4:#96a2b2;        /* hairline text, placeholders */
  --blue:#004069;         /* primary */
  --blue-d:#002d49;       /* primary pressed */
  --blue-l:#9cc3dd;       /* on-dark accent ONLY — 1.86:1 on white, fails AA there */
  --blue-m:#3F7095;       /* the same idea for light backgrounds — 5.3:1 on white */
  --blue-t:#EAF1F7;       /* tint fill */
  --blue-b:#CFE0EC;       /* tint border */
  --soft:#F4F7FA;
  --line:#E2E8EF;
  --white:#fff;
  --ok:#1B7A43; --ok-bg:#E8F5EE; --ok-bd:#BFE3CD;
  --warn:#8a5a00;
  --wrap:1140px;
  --serif:'Sora',system-ui,sans-serif;
  --sans:'DM Sans',system-ui,sans-serif;
  --mono:'DM Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r-btn:4px; --r-card:10px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(14,27,42,.05);
  --sh-2:0 12px 28px rgba(14,27,42,.10);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;scroll-padding-top:88px;}
body{font-family:var(--sans);color:var(--ink-2);background:var(--white);
  line-height:1.65;font-size:16.5px;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;height:auto;}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);letter-spacing:-.02em;line-height:1.15;}
strong{color:var(--ink);font-weight:600;}
::selection{background:var(--blue);color:#fff;}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--blue);color:#fff;
  padding:12px 18px;z-index:200;}
.skip-link:focus{left:0;}

/* ---------- shared bits ---------- */
.eyebrow{display:inline-block;font-family:var(--mono);font-size:11.5px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:14px;}
.eyebrow--light{color:var(--blue-l);}
.lede{font-size:18px;color:var(--ink-3);max-width:62ch;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--sans);font-weight:600;font-size:15px;padding:13px 24px;
  border-radius:var(--r-btn);border:1px solid transparent;cursor:pointer;
  transition:background .16s,color .16s,border-color .16s,transform .16s;}
.btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round;}
.btn--blue{background:var(--blue);color:#fff;}
.btn--blue:hover{background:var(--blue-d);}
.btn--light{background:#fff;color:var(--blue);}
.btn--light:hover{background:#e9f0f6;}
.btn--outline{border-color:var(--blue);color:var(--blue);background:transparent;}
.btn--outline:hover{background:var(--blue);color:#fff;}
.btn--outline-light{border-color:rgba(255,255,255,.75);color:#fff;background:transparent;}
.btn--outline-light:hover{background:#fff;color:var(--blue);}
.btn--sm{font-size:14px;padding:10px 17px;}
.btn:focus-visible{outline:2px solid var(--blue-l);outline-offset:3px;}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;}

.badge{display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.09em;text-transform:uppercase;padding:5px 11px;border-radius:var(--r-pill);
  background:var(--blue-t);border:1px solid var(--blue-b);color:var(--blue);}
.badge--light{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.26);color:#fff;}
.badge--ok{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok);}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;
  gap:20px;height:76px;}
/* flex:none is load-bearing. .brand is a flex item, so it shrinks by default once the
   nav needs the room — and because the global img rule sets max-width:100%, shrinking
   the anchor squeezes the logo's WIDTH while height:38px holds it. The result is a
   visibly stretched logo rather than a smaller one. Never let this box shrink. */
.brand{flex:none;}
.brand img{height:38px;width:auto;max-width:none;}
.nav{display:flex;align-items:center;gap:22px;}
.nav>a{font-size:14.5px;font-weight:500;color:var(--ink-2);white-space:nowrap;
  padding:6px 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;}
.nav>a:hover{color:var(--blue);}
.nav>a[aria-current="page"]{color:var(--blue);border-bottom-color:var(--blue);}
.nav__cta{display:flex;gap:10px;margin-left:6px;}
.nav-toggle{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;
  flex-direction:column;justify-content:center;gap:5px;padding:0 10px;}
.nav-toggle span{display:block;height:2px;background:var(--ink);border-radius:2px;
  transition:transform .2s,opacity .2s;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
@media(max-width:1080px){
  .nav-toggle{display:flex;}
  .nav{position:fixed;inset:76px 0 auto;background:#fff;border-bottom:1px solid var(--line);
    flex-direction:column;align-items:stretch;gap:0;padding:8px 28px 24px;
    max-height:calc(100vh - 76px);overflow-y:auto;
    transform:translateY(-8px);opacity:0;pointer-events:none;transition:.18s;}
  .nav.open{transform:none;opacity:1;pointer-events:auto;}
  .nav>a{padding:14px 0;border-bottom:1px solid var(--line);}
  .nav>a[aria-current="page"]{border-bottom-color:var(--line);}
  .nav__cta{margin:18px 0 0;flex-direction:column;}
  .nav__cta .btn{width:100%;}
}

/* ---------- hero ---------- */
.hero{background:
    radial-gradient(900px 460px at 84% -22%,rgba(46,111,154,.34),transparent),
    linear-gradient(165deg,#062338,#004069);
  color:#fff;padding:86px 0 92px;}
.hero h1{color:#fff;font-size:clamp(33px,5.1vw,55px);font-weight:800;
  max-width:19ch;margin-bottom:20px;}
.hero p{font-size:clamp(16.5px,2vw,19px);color:rgba(255,255,255,.84);max-width:60ch;}
.hero--sm{padding:60px 0 64px;}
.hero--sm h1{font-size:clamp(29px,4.2vw,44px);max-width:22ch;}
.hero__stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;}
.crumbs{margin-bottom:20px;}
.crumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:rgba(255,255,255,.72);}
.crumbs li+li::before{content:"/";margin-right:8px;opacity:.5;}
.crumbs a{color:rgba(255,255,255,.82);}
.crumbs a:hover{color:#fff;text-decoration:underline;}
.crumbs [aria-current]{color:#fff;}

/* ---------- sections ---------- */
.section{padding:82px 0;}
.section--soft{background:var(--soft);border-block:1px solid var(--line);}
.section--tight{padding:56px 0;}
.section__head{max-width:64ch;margin-bottom:40px;}
.section__head h2{font-size:clamp(27px,3.5vw,38px);font-weight:700;margin-bottom:14px;}
.section__head p{color:var(--ink-3);font-size:17.5px;}

.prose{max-width:70ch;}
.prose h2{font-size:clamp(23px,2.8vw,29px);font-weight:700;margin:44px 0 14px;}
.prose h3{font-size:19px;font-weight:600;margin:30px 0 10px;}
.prose p{margin-bottom:16px;}
.prose ul,.prose ol{margin:0 0 18px 22px;}
.prose li{margin-bottom:8px;}
.prose a{color:var(--blue);text-decoration:underline;text-underline-offset:2px;}
.prose>h2:first-child{margin-top:0;}

/* ---------- cards ---------- */
.grid{display:grid;gap:18px;}
.grid--2{grid-template-columns:repeat(2,1fr);}
.grid--3{grid-template-columns:repeat(3,1fr);}
.grid--4{grid-template-columns:repeat(4,1fr);}
@media(max-width:940px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr;}}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);
  padding:26px 26px 28px;box-shadow:var(--sh-1);
  transition:transform .16s,box-shadow .16s,border-color .16s;}
.card h3{font-size:18.5px;font-weight:600;margin-bottom:9px;}
.card p{font-size:15.5px;color:var(--ink-3);}
.card__num{font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--blue-m);
  margin-bottom:12px;}
a.card:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:#CBD6E2;}
a.card:hover h3{color:var(--blue);}
.card__link{display:inline-flex;align-items:center;gap:7px;margin-top:16px;
  font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blue);}
.card--flat{box-shadow:none;background:var(--soft);}

.roles{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}
.roles span{font-size:12.5px;color:var(--ink-3);background:var(--soft);
  border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 11px;}

.steps{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);
  border-radius:var(--r-card);overflow:hidden;}
.step{display:grid;grid-template-columns:64px 1fr;gap:20px;background:#fff;padding:24px 26px;}
.step__n{font-family:var(--mono);font-size:20px;font-weight:500;color:var(--blue-m);}
.step h3{font-size:17.5px;font-weight:600;margin-bottom:6px;}
.step p{font-size:15.5px;color:var(--ink-3);}
@media(max-width:560px){.step{grid-template-columns:1fr;gap:8px;}}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;}
@media(max-width:760px){.stat-row{grid-template-columns:repeat(2,1fr);}}
.stat{background:#fff;padding:26px 22px;}
.stat__n{font-family:var(--serif);font-size:31px;font-weight:800;color:var(--blue);
  line-height:1;margin-bottom:8px;}
.stat__l{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-3);}

/* linked chips (locations, categories) */
.chips{display:flex;flex-wrap:wrap;gap:9px;}
.chip{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink-2);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);
  padding:9px 16px;transition:.15s;}
.chip:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-t);}

/* company card */
.company{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;
  background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);
  border-radius:var(--r-card);padding:32px 34px;}
@media(max-width:720px){.company{grid-template-columns:1fr;gap:22px;}}
.company__logo{display:flex;align-items:center;justify-content:center;
  padding:8px 30px 8px 0;border-right:1px solid var(--line);}
@media(max-width:720px){.company__logo{border-right:none;border-bottom:1px solid var(--line);
  padding:0 0 20px;justify-content:flex-start;}}
.company__logo img{height:64px;width:auto;}
.company h3{font-size:23px;font-weight:700;margin:10px 0;}
.company p{color:var(--ink-3);font-size:15.5px;margin-bottom:18px;}

/* callout */
.note{background:var(--blue-t);border:1px solid var(--blue-b);border-radius:var(--r-card);
  padding:22px 24px;font-size:15.5px;color:var(--ink-2);}
.note strong{display:block;margin-bottom:6px;}

/* ---------- CTA band ---------- */
.cta{background:linear-gradient(165deg,#062338,#004069);color:#fff;padding:66px 0;}
.cta__in{display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between;}
.cta h2{color:#fff;font-size:clamp(24px,3vw,33px);font-weight:700;max-width:20ch;margin-bottom:12px;}
.cta p{color:rgba(255,255,255,.8);max-width:52ch;}

/* ---------- footer ---------- */
.site-footer{background:#062338;color:rgba(255,255,255,.72);padding:56px 0 0;font-size:14.5px;}
.site-footer__inner{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:36px;
  padding-bottom:44px;}
@media(max-width:900px){.site-footer__inner{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.site-footer__inner{grid-template-columns:1fr;}}
.site-footer__brand img{height:40px;width:auto;margin-bottom:16px;}
.site-footer__brand p{max-width:38ch;margin-bottom:16px;}
.site-footer__col h3{color:#fff;font-size:13px;font-family:var(--mono);font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:14px;}
.site-footer__col a{display:block;padding:5px 0;color:rgba(255,255,255,.72);}
.site-footer__col a:hover{color:#fff;}
/* dense link strip — deliberately quieter than the columns above it, so it reads as
   a directory rather than competing with the primary footer navigation */
.site-footer__browse{display:grid;grid-template-columns:1.35fr 1fr;gap:32px;
  padding:26px 28px;border-top:1px solid rgba(255,255,255,.12);}
@media(max-width:760px){.site-footer__browse{grid-template-columns:1fr;gap:24px;}}
.site-footer__browse h3{color:rgba(255,255,255,.9);font-size:11.5px;font-family:var(--mono);
  font-weight:500;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;}
.site-footer__links{display:flex;flex-wrap:wrap;gap:6px 0;}
.site-footer__links a{font-size:13px;color:rgba(255,255,255,.6);padding:2px 0;}
.site-footer__links a:hover{color:#fff;text-decoration:underline;}
/* separator drawn in CSS so it never becomes a stray character for a screen reader */
.site-footer__links a:not(:last-child)::after{content:"·";margin:0 9px;
  color:rgba(255,255,255,.28);text-decoration:none;display:inline-block;}
.site-footer__bar{display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;
  align-items:center;padding:20px 28px;border-top:1px solid rgba(255,255,255,.12);
  font-size:12.5px;color:rgba(255,255,255,.55);}
.site-footer__bar a{color:var(--blue-l);}
.site-footer__bar a:hover{color:#fff;}
.site-footer__legal{display:flex;flex-wrap:wrap;gap:16px;}

/* ==========================================================================
   Job board
   ========================================================================== */
.job-filters{margin-bottom:24px;padding:14px;background:var(--soft);
  border:1px solid var(--line);border-radius:14px;}
.job-filters__row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.job-filters__search{flex:1 1 260px;min-width:0;border:1px solid var(--line);
  border-radius:8px;background:#fff;padding:12px 14px 12px 40px;font:inherit;font-size:15px;
  color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235a6675' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:14px 50%;background-size:16px 16px;
  transition:border-color .15s,box-shadow .15s;}
.job-filters__sel{border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;
  font:inherit;font-size:14px;color:var(--ink);max-width:210px;cursor:pointer;
  transition:border-color .15s,box-shadow .15s;}
.job-filters__clear{background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:12px 18px;font:inherit;font-size:14px;color:var(--ink-3);cursor:pointer;transition:.15s;}
.job-filters__sel:hover,.job-filters__clear:hover{border-color:var(--ink-4);}
.job-filters__clear:hover{border-color:var(--blue);color:var(--blue);}
.job-filters__search:focus,.job-filters__sel:focus,.job-filters__clear:focus-visible{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,64,105,.13);}
.job-filters__count{margin:14px 2px 0;font-family:var(--mono);font-size:11.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);}

.jobboard--list .job-list{display:flex;flex-direction:column;gap:12px;}
.jobboard--list .job-card{position:relative;overflow:hidden;display:flex;
  justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;background:#fff;
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-1);
  transition:transform .16s,box-shadow .16s,border-color .16s;}
.jobboard--list .job-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--blue);transform:scaleY(0);transition:transform .18s;}
.jobboard--list .job-card:hover{transform:translateY(-2px);border-color:#CBD6E2;
  box-shadow:var(--sh-2);}
.jobboard--list .job-card:hover::before{transform:scaleY(1);}
.jobboard--list .job-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
.job-card__main{min-width:0;}
/* Each listing is an h2 under the page's h1 — a list of jobs is the page's primary
   content, and starting it at h3 leaves a level gap a screen reader has to guess at. */
.job-card__main h2{font-size:18px;font-weight:700;margin:0 0 9px;line-height:1.25;
  transition:color .16s;}
.job-card:hover .job-card__main h2{color:var(--blue);}
.job-card__meta{font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--ink-3);
  display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;}
.job-card__cat,.job-card__new,.job-card__remote{border:1px solid;border-radius:var(--r-pill);
  padding:3px 10px;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  line-height:1.7;}
.job-card__cat{background:var(--blue-t);border-color:var(--blue-b);color:var(--blue);}
.job-card__new{background:var(--ok-bg);border-color:var(--ok-bd);color:var(--ok);}
.job-card__remote{background:#EAF1FB;border-color:#C5D8F2;color:#1D4E89;}
.job-card__cta{flex:none;white-space:nowrap;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--blue);background:var(--blue-t);
  border:1px solid var(--blue-b);border-radius:var(--r-pill);padding:10px 17px;transition:.16s;}
.job-card:hover .job-card__cta{background:var(--blue);border-color:var(--blue);color:#fff;}
.job-empty{padding:44px 28px;text-align:center;color:var(--ink-3);font-size:15px;
  background:#fff;border:1px dashed var(--line);border-radius:12px;}
.job-empty a{color:var(--blue);text-decoration:underline;}

@media(max-width:760px){
  .jobboard--list .job-card{flex-direction:column;align-items:flex-start;gap:14px;padding:18px;}
  .job-card__cta{align-self:stretch;text-align:center;}
}
@media(max-width:620px){
  .job-filters{padding:12px;}
  .job-filters__sel,.job-filters__search{flex:1 1 100%;max-width:none;}
}

/* ---------- job detail ---------- */
.job-detail{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);
  padding:34px 36px;box-shadow:var(--sh-1);}
@media(max-width:640px){.job-detail{padding:24px 20px;}}
.job-detail__back{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:18px;}
.job-detail__back:hover{text-decoration:underline;}
/* No title rule here on purpose: the detail view's heading is the hero h1, which the
   worker rewrites to the job title. Repeating it inside the card was a duplicate
   heading on screen and a second h1-level idea for crawlers to weigh. */
.job-detail__body{padding:4px 0 24px;font-size:16px;}
.job-detail__body h1,.job-detail__body h2,.job-detail__body h3,.job-detail__body h4{
  font-size:18px;font-weight:600;margin:24px 0 8px;}
.job-detail__body p{margin-bottom:14px;}
.job-detail__body ul,.job-detail__body ol{margin:0 0 16px 22px;}
.job-detail__body li{margin-bottom:6px;}
.job-detail__body a{color:var(--blue);text-decoration:underline;}
.job-detail__body img{display:none;} /* Bullhorn descriptions occasionally carry client logos */

/* ---------- apply form ---------- */
.job-apply{background:var(--soft);border:1px solid var(--line);border-radius:var(--r-card);
  padding:26px 26px 28px;}
.job-apply h2{font-size:19px;font-weight:600;margin-bottom:6px;}
.job-apply__intro{font-size:14.5px;color:var(--ink-3);margin-bottom:20px;}
.job-apply__row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){.job-apply__row{grid-template-columns:1fr;}}
.job-apply label,.form label{display:block;font-size:13.5px;font-weight:600;color:var(--ink);
  margin-bottom:14px;}
.job-apply input,.job-apply select,.job-apply textarea,
.form input,.form select,.form textarea{
  display:block;width:100%;margin-top:6px;font:inherit;font-size:15px;font-weight:400;
  color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:11px 13px;transition:border-color .15s,box-shadow .15s;}
.job-apply input:focus,.job-apply select:focus,.job-apply textarea:focus,
.form input:focus,.form select:focus,.form textarea:focus{
  outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,64,105,.13);}
.job-apply input[type=file]{padding:9px;background:#fff;}
.job-apply textarea,.form textarea{min-height:120px;resize:vertical;}
.hint{display:block;font-weight:400;font-size:12.5px;color:var(--ink-3);margin-top:5px;}
.job-apply__status,.form__status{margin-top:12px;font-size:14.5px;min-height:1.4em;}
.job-apply__fallback{margin-top:14px;font-size:13px;color:var(--ink-3);}
.job-apply__fallback a{color:var(--blue);text-decoration:underline;}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}

/* voluntary self-ID block — kept visually quiet and clearly optional */
.selfid{margin:6px 0 16px;padding:16px 18px;background:#fff;border:1px solid var(--line);
  border-radius:8px;}
.selfid legend{font-size:13.5px;font-weight:600;color:var(--ink);padding:0;}
.selfid p{font-size:12.5px;color:var(--ink-3);margin:6px 0 12px;}
.selfid__opts{display:flex;flex-wrap:wrap;gap:8px 20px;}
.selfid__opts label{display:inline-flex;align-items:center;gap:8px;font-weight:400;
  font-size:14px;margin:0;cursor:pointer;}
.selfid__opts input{width:auto;margin:0;}

/* ---------- job alert ---------- */
.jalert{margin-top:28px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-card);padding:26px 28px;}
.jalert h3{font-size:19px;font-weight:600;margin-bottom:8px;}
.jalert p{font-size:15px;color:var(--ink-3);margin-bottom:18px;max-width:60ch;}
.jalert__row{display:flex;flex-wrap:wrap;gap:10px;}
.jalert__row input{flex:1 1 220px;min-width:0;font:inherit;font-size:15px;background:#fff;
  border:1px solid var(--line);border-radius:8px;padding:12px 14px;color:var(--ink);}
.jalert__row input:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(0,64,105,.13);}
.jalert__status{margin-top:10px;font-size:14px;min-height:1.3em;}

/* ---------- forms page ---------- */
.form{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);
  padding:30px 32px;box-shadow:var(--sh-1);}
@media(max-width:600px){.form{padding:22px 20px;}}
.form h2{font-size:20px;font-weight:600;margin-bottom:6px;}
.form__intro{font-size:15px;color:var(--ink-3);margin-bottom:22px;}
.form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:560px){.form__row{grid-template-columns:1fr;}}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
  .jobboard--list .job-card:hover,a.card:hover{transform:none;}
}
