@charset "UTF-8";
/* ============================================================================
   Neev Seeds — Careers
   ----------------------------------------------------------------------------
   Colour tokens, focus treatment and dark mode come from the design system and
   were independently re-measured: 4/4 headline claims, 22/22 light pairs and
   9/9 dark pairs reproduced exactly. Nothing here is an unverified colour.

   Two constraints shaped everything:
     1. Sunlight on a cheap Android LCD. Separation is carried by BORDERS and
        COLOUR BLOCKS, never by shadow alone.
     2. It sits under the existing WordPress header and footer, so it must be
        continuous with them without reading as a template.

   Type: Poppins for display and UI (23 KB, 3 weights). System stack for body,
   which resolves to Roboto on Android at zero transfer bytes.
   ========================================================================= */

/* ---------------------------------------------------------------- 1. TOKENS */
:root{
  /* Blue ramp, hue locked to the logo blue (OKLCH 260.1deg) */
  --blue-50:#F2F7FF;  --blue-100:#E3EEFF; --blue-200:#CADCF9; --blue-300:#ABC5F1;
  --blue-400:#86A9E2; --blue-500:#5E86C9; --blue-600:#416DB7;
  --blue-700:#2957A4;                     /* EXACT logo blue */
  --blue-800:#134094;                     /* EXACT live-site blue */
  --blue-900:#002B78; --blue-950:#001753;

  /* Amber ramp, hue locked to the logo amber (OKLCH 70.7deg) */
  --amber-50:#FFF7E5;  --amber-100:#FFEDCD; --amber-200:#FFDBA6; --amber-300:#FFC87E;
  --amber-400:#FFB858;
  --amber-500:#FAA831;                    /* EXACT logo amber */
  --amber-600:#DE9116; --amber-700:#C17A00; --amber-800:#A26400;
  --amber-900:#804D00; --amber-950:#633A00;

  /* Neutrals, blue-tinted so greys belong to the brand */
  --n-0:#FFFFFF;   --n-50:#F8FAFD;  --n-100:#F1F4F9; --n-200:#E4E8EF;
  --n-300:#D1D6DF; --n-400:#A9B0BB; --n-500:#7C8490; --n-600:#5F6877;
  --n-700:#4A5565; --n-800:#2F3A4B; --n-900:#182335;
  --n-950:#040D1E;                        /* EXACT live-site ink */

  --surface-page:var(--n-100);
  --surface-card:var(--n-0);
  --surface-sunken:var(--n-200);
  --surface-raised:var(--n-0);
  --surface-brand-subtle:var(--blue-50);
  --surface-accent-subtle:var(--amber-50);
  --surface-brand-deep:var(--blue-900);
  --surface-overlay:rgba(4,13,30,.62);

  --text-primary:var(--n-950);
  --text-secondary:var(--n-700);
  --text-muted:var(--n-600);
  --text-inverse:var(--n-0);
  --text-heading:var(--blue-800);
  --text-link:var(--blue-700);
  --text-link-hover:var(--blue-800);
  --text-on-accent:var(--n-950);

  /* Two border tiers, and the distinction is load-bearing.
     hairline/divider are DECORATIVE. field/strong are INTERACTIVE EDGES (3:1). */
  --border-hairline:var(--n-200);
  --border-divider:var(--n-300);
  --border-field:var(--n-500);
  --border-strong:var(--n-700);
  --border-brand:var(--blue-800);

  --focus-inner:var(--amber-500);
  --focus-outer:var(--blue-950);

  --success-fg:#1C5F2C; --success-bg:#E5F8E7; --success-rule:#429352; --success-solid:#327A41;
  --warn-fg:#8B440C;    --warn-bg:#FFECDA;    --warn-rule:#C06E37;    --warn-solid:#AB550D;
  --error-fg:#A51E24;   --error-bg:#FFEBE8;   --error-rule:#C86760;   --error-solid:#C13738;
  --info-fg:#005C81;    --info-bg:#E2F6FF;    --info-rule:#008DBC;    --info-solid:#00739C;

  --wa-green:#25D366;                     /* ink is near-black: white fails at 1.98:1 */
  --btn-primary-bg:var(--blue-800);

  /* Type. Poppins display + system body (Roboto on Android, free). */
  --font-display:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;

  /* Fluid scale, 360px -> 1280px. Each clamp keeps a rem term in the preferred
     value: a pure vw term silently breaks text scaling under zoom (WCAG 1.4.4). */
  --fs-display:clamp(2.1250rem,1.6848rem + 1.957vw,3.2500rem); /* 34 -> 52 */
  --fs-h1:clamp(1.7500rem,1.4076rem + 1.522vw,2.6250rem);      /* 28 -> 42 */
  --fs-h2:clamp(1.4375rem,1.2174rem + 0.978vw,2.0000rem);      /* 23 -> 32 */
  --fs-h3:clamp(1.2188rem,1.1087rem + 0.489vw,1.5000rem);      /* 19.5 -> 24 */
  --fs-h4:clamp(1.0938rem,1.0326rem + 0.272vw,1.2500rem);      /* 17.5 -> 20 */
  --fs-lead:clamp(1.0938rem,1.0571rem + 0.163vw,1.1875rem);    /* 17.5 -> 19 */
  --fs-body:clamp(1.0625rem,1.0380rem + 0.109vw,1.1250rem);    /* 17 -> 18  (17px floor, not 16) */
  --fs-sm:clamp(0.9688rem,0.9565rem + 0.054vw,1.0000rem);      /* 15.5 -> 16 */
  --fs-xs:clamp(0.8438rem,0.8315rem + 0.054vw,0.8750rem);      /* 13.5 -> 14 */
  --fs-overline:clamp(0.7812rem,0.7690rem + 0.054vw,0.8125rem);/* 12.5 -> 13 */

  --lh-tight:1.12; --lh-snug:1.28; --lh-normal:1.6; --lh-relaxed:1.72;
  --tracking-tight:-0.02em; --tracking-normal:0; --tracking-wide:0.08em; --tracking-widest:0.16em;

  /* Spacing, 4px base */
  --sp-1:0.25rem;  --sp-2:0.5rem;  --sp-3:0.75rem; --sp-4:1rem;
  --sp-5:1.25rem;  --sp-6:1.5rem;  --sp-8:2rem;    --sp-10:2.5rem;
  --sp-12:3rem;    --sp-16:4rem;   --sp-20:5rem;   --sp-24:6rem;
  --section-y:clamp(3rem,2rem + 5vw,6rem);

  /* Radius. Squared-off, echoing the logo's E-box. Nothing is a pill except
     filter chips, where the pill is the affordance. */
  --radius-xs:4px;  /* tags, table chips  */  --radius-sm:6px;  /* inputs, small buttons */
  --radius-md:8px;  /* buttons, alerts    */  --radius-lg:10px; /* job card, panels      */
  --radius-xl:14px; /* sheets, deep panels*/  --radius-pill:999px; /* filter chips ONLY  */
  --radius-seed:60% 60% 55% 55% / 70% 70% 40% 40%;   /* seed silhouette, CSS fallback */
  --seed-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201142%201142%22%3E%3Cg%20transform%3D%22translate%28315.0%20227.0%29%22%3E%3Cg%20transform%3D%22translate%280.000000%2C688.000000%29%20scale%280.100000%2C-0.100000%29%22%20fill%3D%22%23000%22%3E%3Cpath%20d%3D%22M2344%206704%20c-4%20-14%20-4%20-52%20-1%20-84%204%20-31%202%20-95%20-3%20-141%20-6%20-46%20-17%0A-145%20-24%20-219%20-10%20-90%20-23%20-158%20-40%20-205%20-14%20-38%20-30%20-88%20-36%20-111%20-5%20-22%20-23%0A-60%20-39%20-85%20-17%20-24%20-35%20-67%20-41%20-94%20-6%20-27%20-21%20-63%20-34%20-80%20-13%20-16%20-35%20-52%0A-50%20-80%20-30%20-55%20-83%20-138%20-133%20-206%20-18%20-24%20-47%20-66%20-65%20-93%20-18%20-27%20-53%20-71%0A-78%20-97%20-125%20-136%20-232%20-248%20-482%20-502%20-401%20-408%20-444%20-456%20-616%20-680%20-34%20-45%0A-77%20-100%20-95%20-122%20-18%20-22%20-39%20-56%20-47%20-75%20-7%20-19%20-23%20-46%20-36%20-60%20-12%20-14%0A-34%20-50%20-49%20-80%20-15%20-30%20-34%20-62%20-42%20-71%20-8%20-10%20-20%20-40%20-28%20-67%20-7%20-28%20-29%0A-77%20-48%20-109%20-19%20-32%20-39%20-74%20-42%20-93%20-4%20-19%20-18%20-62%20-31%20-95%20-13%20-33%20-30%0A-105%20-39%20-160%20-9%20-55%20-29%20-140%20-46%20-188%20-41%20-120%20-57%20-335%20-41%20-575%209%20-148%2014%0A-177%2042%20-252%2018%20-47%2038%20-126%2046%20-176%207%20-51%2027%20-126%2044%20-167%2016%20-41%2030%20-81%2030%0A-89%200%20-8%2015%20-37%2034%20-67%2019%20-29%2042%20-76%2051%20-104%209%20-28%2030%20-70%2046%20-93%2016%20-24%2029%0A-47%2029%20-52%200%20-4%2015%20-26%2034%20-48%2019%20-22%2041%20-56%2049%20-75%208%20-19%2022%20-42%2030%20-51%209%20-9%0A39%20-45%2067%20-80%20158%20-198%20464%20-477%20568%20-518%2018%20-7%2041%20-23%2051%20-35%2018%20-24%20148%20-97%0A214%20-121%2020%20-7%2054%20-27%2076%20-44%2021%20-17%2064%20-38%2097%20-46%2032%20-9%2075%20-24%2096%20-35%2021%0A-11%2068%20-26%20104%20-35%2037%20-8%2092%20-28%20123%20-44%2043%20-23%2079%20-32%20156%20-40%2055%20-6%20159%20-18%0A230%20-27%20168%20-20%20367%20-21%20530%200%2072%209%20170%2021%20219%2027%2063%207%20108%2019%20151%2039%2034%2016%0A83%2035%20111%2042%2027%207%2069%2022%2094%2034%2025%2012%2069%2030%2098%2040%2030%209%2068%2030%2086%2046%2018%2016%2053%0A38%2077%2049%2081%2037%20158%2086%20180%20114%2012%2016%2035%2034%2051%2041%2086%2036%20437%20398%20504%20520%209%2017%0A26%2041%2039%2055%2029%2033%2099%20154%20121%20211%209%2024%2030%2058%2046%2075%2016%2017%2036%2057%2047%2095%2010%2035%0A31%2091%2045%20124%2014%2033%2026%2069%2026%2081%200%2012%2016%2051%2036%2088%2031%2060%2037%2084%2050%20195%208%2069%2022%0A162%2031%20206%2025%20115%2025%20452%200%20590%20-9%2055%20-24%20153%20-32%20218%20-12%2096%20-20%20128%20-44%20170%0A-16%2029%20-37%2081%20-46%20116%20-9%2036%20-25%2081%20-35%20100%20-10%2020%20-25%2060%20-33%2089%20-9%2029%20-32%0A71%20-50%2093%20-19%2022%20-40%2060%20-47%2084%20-7%2025%20-19%2050%20-27%2057%20-8%206%20-25%2032%20-38%2057%20-12%0A25%20-33%2055%20-45%2066%20-12%2011%20-31%2038%20-42%2060%20-44%2086%20-292%20351%20-384%20410%20-52%2033%20-126%0A88%20-165%20123%20-20%2017%20-41%2032%20-46%2032%20-6%200%20-28%2013%20-50%2029%20-22%2016%20-60%2039%20-84%2052%0A-24%2012%20-57%2032%20-72%2045%20-15%2013%20-46%2028%20-68%2034%20-22%206%20-60%2026%20-84%2044%20-24%2018%20-55%2036%0A-70%2040%20-15%204%20-44%2018%20-65%2031%20-21%2013%20-63%2030%20-94%2039%20-32%208%20-67%2022%20-79%2030%20-75%2055%0A-98%2067%20-127%2068%20-44%201%20-60%20-20%20-70%20-93%20-4%20-35%20-15%20-91%20-23%20-124%20-9%20-33%20-23%20-97%0A-31%20-143%20-9%20-46%20-30%20-114%20-46%20-153%20-17%20-38%20-35%20-95%20-41%20-126%20-10%20-55%20-65%20-175%0A-147%20-324%20-49%20-88%20-85%20-138%20-154%20-215%20-88%20-97%20-76%20-124%2053%20-124%2056%200%2095%20-8%0A173%20-34%2056%20-19%20117%20-38%20136%20-42%2045%20-9%20195%20-85%20250%20-126%2064%20-48%20250%20-236%20250%0A-252%200%20-7%2018%20-40%2040%20-72%2022%20-33%2040%20-63%2040%20-69%200%20-5%2016%20-43%2036%20-83%2034%20-69%2037%0A-81%2047%20-223%207%20-109%207%20-193%20-1%20-300%20-10%20-135%20-14%20-155%20-41%20-207%20-17%20-31%20-40%0A-77%20-51%20-102%20-67%20-146%20-228%20-331%20-345%20-396%20-16%20-9%20-45%20-30%20-63%20-45%20-18%20-16%0A-45%20-31%20-60%20-35%20-15%20-3%20-52%20-14%20-82%20-26%20-160%20-59%20-162%20-60%20-310%20-65%20-175%20-7%0A-304%208%20-373%2043%20-26%2013%20-76%2031%20-110%2040%20-34%208%20-73%2026%20-87%2038%20-14%2013%20-43%2033%20-65%0A45%20-122%2070%20-252%20214%20-339%20376%20-15%2028%20-37%2065%20-51%2083%20-14%2020%20-28%2059%20-35%20105%20-7%0A39%20-18%2099%20-26%20132%20-23%20101%20-17%20260%2015%20424%2021%20100%2036%20152%2051%20170%2011%2014%2030%2046%0A41%2071%2010%2025%2028%2061%2039%2080%2010%2019%2030%2058%2043%2085%2013%2028%2034%2059%2047%2070%2012%2011%2030%2036%2040%0A55%2010%2019%2031%2052%2047%2072%2015%2021%2048%2065%2073%2098%2025%2033%2061%2080%2080%20104%2034%2042%2064%2081%20133%0A174%2074%2099%20110%20150%20144%20202%2020%2030%2044%2064%2053%2075%2024%2027%2065%2097%20102%20175%2017%2036%2043%2080%0A59%2097%2015%2018%2031%2050%2035%2070%204%2021%2019%2063%2034%2093%2015%2030%2033%2078%2039%20105%207%2028%2026%2081%2042%0A118%2025%2057%2032%2091%2044%20220%2027%20300%2027%20352%206%20617%20-18%20231%20-23%20263%20-50%20337%20-16%2044%0A-35%20110%20-41%20144%20-6%2035%20-22%2091%20-35%20124%20-14%2033%20-31%2093%20-40%20134%20-8%2040%20-30%20101%0A-49%20135%20-18%2033%20-39%2083%20-45%20110%20-15%2061%20-88%20196%20-107%20196%20-7%200%20-17%20-12%20-20%20-26z%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E");

  /* Shadows exist but never carry separation on their own. A border always does. */
  --shadow-sm:0 1px 2px rgba(4,13,30,.06);
  --shadow-md:0 2px 4px rgba(4,13,30,.06),0 8px 20px rgba(4,13,30,.07);
  --shadow-lg:0 4px 8px rgba(4,13,30,.07),0 16px 40px rgba(4,13,30,.10);

  --container:1160px;
  --container-narrow:720px;
  --gutter:clamp(1rem,0.6rem + 2vw,2rem);

  --dur-fast:120ms; --dur-base:180ms; --dur-slow:300ms;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* Dark mode. Defined three times so "system" and an explicit toggle both work,
   and so a token never has its only definition inside a media query. */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --surface-page:#09111D;   --surface-card:#131C2A;  --surface-sunken:#040914;
    --surface-raised:#1E2837; --surface-brand-subtle:#122139;
    --surface-accent-subtle:#2A1F0C; --surface-brand-deep:#0B1A3A;
    --surface-overlay:rgba(0,0,0,.70);
    --text-primary:#E7EDF6;  --text-secondary:#B6C1D1; --text-muted:#95A1B2;
    --text-inverse:#09111D;  --text-heading:#CADCF9;
    --text-link:#ABC5F1;     --text-link-hover:#CADCF9; --text-on-accent:#09111D;
    --border-hairline:#222E40; --border-divider:#2C384A; --border-field:#6A727F;
    --border-strong:#95A1B2;   --border-brand:#5E86C9;
    --focus-inner:#FFB858;   /* --focus-outer stays blue-950 on purpose */
    --success-fg:#7FD98F; --success-bg:#12251A; --success-rule:#427E4C; --success-solid:#2E6B3B;
    --warn-fg:#F0A85C;    --warn-bg:#291A0C;    --warn-rule:#A26239;    --warn-solid:#8E4A0C;
    --error-fg:#FF8F87;   --error-bg:#2B1416;   --error-rule:#A95D58;   --error-solid:#A32E2F;
    --info-fg:#6FC7EE;    --info-bg:#0A1F2B;    --info-rule:#1C7A9F;    --info-solid:#016285;
    --btn-primary-bg:#416DB7;   /* blue-800 reads as a hole on a dark page (1.97:1) */
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow-md:0 2px 4px rgba(0,0,0,.4),0 8px 20px rgba(0,0,0,.35);
    --shadow-lg:0 4px 8px rgba(0,0,0,.45),0 16px 40px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --surface-page:#09111D;   --surface-card:#131C2A;  --surface-sunken:#040914;
  --surface-raised:#1E2837; --surface-brand-subtle:#122139;
  --surface-accent-subtle:#2A1F0C; --surface-brand-deep:#0B1A3A;
  --surface-overlay:rgba(0,0,0,.70);
  --text-primary:#E7EDF6;  --text-secondary:#B6C1D1; --text-muted:#95A1B2;
  --text-inverse:#09111D;  --text-heading:#CADCF9;
  --text-link:#ABC5F1;     --text-link-hover:#CADCF9; --text-on-accent:#09111D;
  --border-hairline:#222E40; --border-divider:#2C384A; --border-field:#6A727F;
  --border-strong:#95A1B2;   --border-brand:#5E86C9;
  --focus-inner:#FFB858;
  --success-fg:#7FD98F; --success-bg:#12251A; --success-rule:#427E4C; --success-solid:#2E6B3B;
  --warn-fg:#F0A85C;    --warn-bg:#291A0C;    --warn-rule:#A26239;    --warn-solid:#8E4A0C;
  --error-fg:#FF8F87;   --error-bg:#2B1416;   --error-rule:#A95D58;   --error-solid:#A32E2F;
  --info-fg:#6FC7EE;    --info-bg:#0A1F2B;    --info-rule:#1C7A9F;    --info-solid:#016285;
  --btn-primary-bg:#416DB7;
  --shadow-sm:0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 2px 4px rgba(0,0,0,.4),0 8px 20px rgba(0,0,0,.35);
  --shadow-lg:0 4px 8px rgba(0,0,0,.45),0 16px 40px rgba(0,0,0,.4);
}

/* ----------------------------------------------------------------- 2. RESET */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{
  margin:0;
  background:var(--surface-page);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:var(--fs-body);
  line-height:var(--lh-normal);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-wrap:break-word;
}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-display);font-weight:700;color:var(--text-heading);
  text-wrap:balance}   /* stops a one-word orphan on 360px with titles like "Assistant Manager, Seed Production" */
h1,.h1{font-size:var(--fs-h1);line-height:1.12;letter-spacing:-.018em}
h2,.h2{font-size:var(--fs-h2);line-height:1.18;letter-spacing:-.014em}
h3,.h3{font-size:var(--fs-h3);line-height:1.28;letter-spacing:-.008em;font-weight:600}
h4,.h4{font-size:var(--fs-h4);line-height:1.35;letter-spacing:-.004em;font-weight:600}
.display{font-size:var(--fs-display);line-height:1.06;letter-spacing:-.022em;font-weight:700}
p,ul,ol,dl,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:var(--text-link);text-underline-offset:.18em;text-decoration-thickness:from-font}
a:hover{color:var(--text-link-hover)}
button,input,select,textarea{font:inherit;color:inherit}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--focus-inner);
  outline-offset:2px;
  box-shadow:0 0 0 6px var(--focus-outer);
  border-radius:var(--radius-sm);
}
[hidden]{display:none !important}

/* Hindi is set in Poppins 500. It is the only place the Devanagari subset
   downloads, and it downloads once, only if Devanagari is actually painted. */
:lang(hi),.hi{font-family:var(--font-display);font-weight:500;line-height:1.75}
/* Devanagari has no uppercase, and letter-spacing breaks its conjuncts apart.
   This rule is absolute and overrides any utility that tries otherwise. */
:lang(hi),.hi,:lang(hi) *,.hi *{text-transform:none !important;letter-spacing:normal !important}

/* ---------------------------------------------------------------- 3. LAYOUT */
.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--narrow{max-width:var(--container-narrow)}
.section{padding-block:var(--section-y)}
.section--tint{background:var(--surface-brand-subtle);border-block:1px solid var(--border-hairline)}
.section--sunken{background:var(--surface-sunken)}
.stack>*+*{margin-block-start:var(--flow,var(--sp-4))}
.skip-link{
  position:absolute;left:var(--sp-4);top:-100%;z-index:999;
  background:var(--blue-800);color:#fff;padding:var(--sp-3) var(--sp-5);
  border-radius:0 0 var(--radius-sm) var(--radius-sm);font-family:var(--font-display);font-weight:600;
}
.skip-link:focus{top:0;color:#fff}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ------------------------------------------------- 4. SIGNATURE DEVICES
   "Neev" means foundation. Three devices carry that, and they are the reason
   this does not read as a Bootstrap template. Used sparingly and consistently.  */

/* 4a. THE COURSE — a foundation course laid under a heading. Amber takes the
   first third, blue the rest. Same proportion as the bar on the share image. */
.course{display:block;height:4px;border-radius:2px;margin-block-start:var(--sp-4);
  background:linear-gradient(90deg,var(--amber-500) 0 32%,var(--blue-800) 32% 100%)}
.course--sm{height:3px;width:64px}
.course--invert{background:linear-gradient(90deg,var(--amber-500) 0 32%,var(--blue-300) 32% 100%)}

/* 4a-ii. THE COURSE RULE — the primary non-logo mark.
   A literal quotation of the logo's E arms: three bars in a 9:8 bar-to-gap
   rhythm. Verified against the traced vector at the logo's native raster size:
   bars measured 27px, gaps 24px, i.e. exactly 9:8. Do not alter the ratio. */
.course-rule{
  --bar:9px; --gap:8px;
  display:block;width:120px;
  height:calc(var(--bar)*3 + var(--gap)*2);        /* 43px */
  background:repeating-linear-gradient(to bottom,
    var(--blue-800) 0 var(--bar),
    transparent var(--bar) calc(var(--bar) + var(--gap)));
}
/* the seed set into the arms, as it sits in the mark */
.course-rule--seed{position:relative;width:150px}
.course-rule--seed::after{
  content:"";position:absolute;left:94px;top:50%;translate:0 -50%;
  width:26px;height:34px;background:var(--amber-500);
  /* the real traced seed outline, not a CSS approximation of one */
  -webkit-mask:var(--seed-mask) center/contain no-repeat;
          mask:var(--seed-mask) center/contain no-repeat;
}
.course-rule--sm{--bar:6px;--gap:5px;width:78px}
.coursed .course-rule{background:repeating-linear-gradient(to bottom,
  var(--blue-300) 0 var(--bar),transparent var(--bar) calc(var(--bar) + var(--gap)))}

/* 4b. THE COURSED GRID — masonry courses fading upward. Deep blue sections only. */
.coursed{position:relative;isolation:isolate;background:var(--surface-brand-deep);color:#fff}
.coursed::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg,rgba(255,255,255,.055) 0 1px,transparent 1px 56px),
    repeating-linear-gradient(90deg,rgba(255,255,255,.045) 0 1px,transparent 1px 56px);
  -webkit-mask-image:linear-gradient(to top,#000 0%,transparent 78%);
          mask-image:linear-gradient(to top,#000 0%,transparent 78%);
}
.coursed h1,.coursed h2,.coursed h3{color:#fff}


/* 4d. THE E-BOX FRAME — a container held at the logo's measured 1.388:1 box
   ratio (179 / 129 at native size), with the three E arms on its leading edge
   and the content set inside the way the seed sits in the mark.
   Used for the zero-openings state and the always-on general-application card. */
.neev-frame{
  position:relative;
  border:1px solid var(--border-divider);border-inline-start:0;
  border-radius:0 var(--radius-lg) var(--radius-lg) 0;
  padding:var(--sp-6) var(--sp-6) var(--sp-6) var(--sp-10);
  background:var(--surface-card);
}
/* The arms are a fixed-size quotation anchored to the top, in the verified
   9:8 rhythm (18px bar / 16px gap). Content drives the box height: an
   aspect-ratio here produced a tall empty box and stretched the arms into
   slabs, which stopped reading as the mark at all. */
.neev-frame::before{
  content:"";position:absolute;top:var(--sp-6);inset-inline-start:0;
  width:14px;height:86px;                       /* 18*3 + 16*2 = 86 */
  background:repeating-linear-gradient(to bottom,
    var(--blue-800) 0 18px, transparent 18px 34px);
  border-radius:0 2px 2px 0;
}
.neev-frame--accent::before{background:repeating-linear-gradient(to bottom,
  var(--amber-500) 0 18px, transparent 18px 34px)}

/* 4c. THE SET STONE — the E-box counter. A card sitting on its foundation:
   squared bottom-left corner plus an amber footing. Used on job cards only,
   so it stays a signal rather than decoration. */
.stone{position:relative;border-bottom-left-radius:0}
.stone::after{
  content:"";position:absolute;left:0;bottom:0;width:36px;height:4px;
  background:var(--amber-500);border-bottom-left-radius:0;
}

/* --------------------------------------------------------------- 5. TYPE */
.eyebrow{
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-overline);
  letter-spacing:.09em;text-transform:uppercase;
  color:var(--text-link);display:inline-flex;align-items:center;gap:var(--sp-2);
}
.coursed .eyebrow{color:var(--amber-400)}
.lead{font-size:var(--fs-lead);font-family:var(--font-body);color:var(--text-secondary);line-height:var(--lh-relaxed);max-width:62ch}
.muted{color:var(--text-muted)}
.small{font-size:var(--fs-sm)}
.xs{font-size:var(--fs-xs)}
.mono-meta{font-family:var(--font-display);font-weight:500;font-size:var(--fs-xs);
  letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--text-muted)}
.prose{max-width:68ch}
.prose p+p,.prose ul+p,.prose p+ul{margin-block-start:var(--sp-4)}
.prose h2{font-size:var(--fs-h3);margin-block:var(--sp-8) var(--sp-3)}
.prose h3{font-size:var(--fs-h4);margin-block:var(--sp-6) var(--sp-2)}
.prose li{position:relative;padding-inline-start:var(--sp-6);margin-block-start:var(--sp-2)}
/* the seed as a bullet: a small amber drop, not a generic disc */
.prose li::before{
  content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;
  background:var(--amber-500);
  border-radius:50% 50% 50% 2px;transform:rotate(-20deg);
}

/* ------------------------------------------------------------ 6. BUTTONS */
.btn{
  --btn-bg:transparent; --btn-fg:var(--text-primary); --btn-bd:var(--border-strong);
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  min-height:48px;                       /* tap target floor */
  padding:var(--sp-3) var(--sp-6);
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);
  line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;
  background:var(--btn-bg);color:var(--btn-fg);
  border:1.5px solid var(--btn-bd);border-radius:var(--radius-sm);
  transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);
}
.btn:hover{color:var(--btn-fg)}
.btn--primary{--btn-bg:var(--btn-primary-bg);--btn-fg:#fff;--btn-bd:var(--btn-primary-bg)}
.btn--primary:hover{--btn-bg:var(--blue-900);--btn-bd:var(--blue-900)}
.btn--secondary{--btn-bg:transparent;--btn-fg:var(--text-link);--btn-bd:var(--border-brand)}
.btn--secondary:hover{--btn-bg:var(--surface-brand-subtle)}
.btn--ghost{--btn-bd:var(--border-divider);--btn-fg:var(--text-secondary)}
.btn--ghost:hover{--btn-bd:var(--border-strong);--btn-fg:var(--text-primary)}
/* Amber is legal as a filled block with near-black ink (9.90:1). Never as text on white. */
.btn--accent{--btn-bg:var(--amber-500);--btn-fg:var(--text-on-accent);--btn-bd:var(--amber-600)}
.btn--accent:hover{--btn-bg:var(--amber-400)}
.btn--whatsapp{--btn-bg:var(--wa-green);--btn-fg:#040D1E;--btn-bd:#1FA855}
.btn--whatsapp:hover{--btn-bg:#1FBF5B}
.btn--lg{min-height:54px;font-size:var(--fs-body);padding-inline:var(--sp-8)}
.btn--block{display:flex;width:100%}
.btn[aria-disabled="true"],.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.btn.is-loading{position:relative;color:transparent !important}
.btn.is-loading::after{
  content:"";position:absolute;width:18px;height:18px;border-radius:50%;
  border:2px solid currentColor;border-top-color:transparent;
  color:#fff;animation:spin .7s linear infinite;
}
.btn--secondary.is-loading::after,.btn--ghost.is-loading::after{color:var(--text-link)}
@keyframes spin{to{transform:rotate(360deg)}}

/* --------------------------------------------------------------- 7. CARDS */
.card{
  background:var(--surface-card);
  border:1px solid var(--border-hairline);
  border-radius:var(--radius-md);
  padding:var(--sp-6);
}
.job-card{
  display:grid;gap:var(--sp-4);
  background:var(--surface-card);
  border:1px solid var(--border-divider);
  border-left:4px solid var(--blue-800);
  border-radius:var(--radius-md);
  padding:var(--sp-5) var(--sp-5) var(--sp-6);
  transition:border-color var(--dur-base) var(--ease),transform var(--dur-base) var(--ease);
}
@media (hover:hover){
  .job-card:hover{border-color:var(--border-strong);border-left-color:var(--amber-500);transform:translateY(-2px)}
}
.job-card:focus-within{border-left-color:var(--amber-500)}
.job-card__title{font-size:var(--fs-h3);font-weight:700}
.job-card__title a{color:inherit;text-decoration:none}
.job-card__title a::after{content:"";position:absolute;inset:0}  /* whole card is the target */
.job-card{position:relative}
.job-card__meta{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);color:var(--text-muted);font-size:var(--fs-sm)}
.job-card__meta span{display:inline-flex;align-items:center;gap:var(--sp-2)}
.job-card__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding-block-start:var(--sp-4);border-block-start:1px solid var(--border-hairline)}
.job-card--featured{border-left-color:var(--amber-500);background:var(--surface-accent-subtle)}

.job-grid{display:grid;gap:var(--sp-4)}
@media (min-width:800px){ .job-grid{grid-template-columns:repeat(2,1fr)} }

/* -------------------------------------------------------------- 8. BADGES */
.badge{
  display:inline-flex;align-items:center;gap:var(--sp-2);
  font-family:var(--font-display);font-weight:600;font-size:var(--fs-overline);
  letter-spacing:.04em;padding:.3rem .6rem;border-radius:var(--radius-xs);
  border:1px solid transparent;
}
.badge--new{background:var(--amber-500);color:var(--text-on-accent);border-color:var(--amber-600)}
.badge--dept{background:var(--surface-brand-subtle);color:var(--text-link);border-color:var(--blue-200)}
.badge--closing{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-rule)}
.badge--closed{background:var(--surface-sunken);color:var(--text-muted);border-color:var(--border-divider)}
.badge--open{background:var(--success-bg);color:var(--success-fg);border-color:var(--success-rule)}

/* --------------------------------------------------------------- 9. CHIPS */
.chips{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.chip{
  display:inline-flex;align-items:center;gap:var(--sp-2);
  min-height:44px;padding:var(--sp-2) var(--sp-4);
  font-family:var(--font-display);font-weight:500;font-size:var(--fs-sm);
  background:var(--surface-card);color:var(--text-secondary);
  border:1.5px solid var(--border-divider);border-radius:var(--radius-pill);
  cursor:pointer;white-space:nowrap;
  transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);
}
.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}
.chip[aria-pressed="true"]{background:var(--blue-800);border-color:var(--blue-800);color:#fff}
.chip__count{font-variant-numeric:tabular-nums;opacity:.75}

/* --------------------------------------------------------------- 10. FORM */
.field{display:grid;gap:var(--sp-2);margin-block-end:var(--sp-5)}
.field__label{font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);color:var(--text-primary)}
.field__label .req{color:var(--error-fg);margin-inline-start:2px}
.field__label .opt{color:var(--text-muted);font-weight:500}
.field__hint{font-size:var(--fs-xs);color:var(--text-muted)}
.input,.select,.textarea{
  width:100%;min-height:52px;
  padding:var(--sp-3) var(--sp-4);
  font-size:1rem;                        /* 16px floor stops iOS zoom-on-focus */
  background:var(--surface-card);color:var(--text-primary);
  border:1.5px solid var(--border-field);border-radius:var(--radius-sm);
  transition:border-color var(--dur-fast) var(--ease);
}
.input::placeholder,.textarea::placeholder{color:var(--text-muted)}
.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}
.textarea{min-height:120px;resize:vertical;line-height:var(--lh-normal)}
.select{
  appearance:none;padding-inline-end:var(--sp-10);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%235F6877' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right var(--sp-4) center;background-size:12px 8px;
}
.select:disabled{background-color:var(--surface-sunken);color:var(--text-muted);cursor:not-allowed}
.field[data-invalid="true"] .input,
.field[data-invalid="true"] .select,
.field[data-invalid="true"] .textarea{border-color:var(--error-solid);border-width:2px}
.field__error{
  display:flex;gap:var(--sp-2);align-items:flex-start;
  font-size:var(--fs-sm);color:var(--error-fg);font-weight:500;
}
.field__error::before{content:"!";flex:none;display:grid;place-items:center;
  width:18px;height:18px;margin-block-start:2px;border-radius:50%;
  background:var(--error-solid);color:#fff;font-size:12px;font-weight:700}
.field__counter{font-size:var(--fs-xs);color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}
.field__counter[data-near="true"]{color:var(--warn-fg);font-weight:600}

/* honeypot: off-screen, never display:none (some bots skip hidden fields) */
.hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}

.dropzone{
  display:grid;place-items:center;gap:var(--sp-2);
  padding:var(--sp-8) var(--sp-4);text-align:center;
  background:var(--surface-brand-subtle);
  border:2px dashed var(--border-field);border-radius:var(--radius-md);
  cursor:pointer;transition:border-color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease);
}
.dropzone:hover,.dropzone.is-over{border-color:var(--blue-800);background:var(--blue-100)}
.dropzone.is-over{border-style:solid}
.dropzone__icon{color:var(--text-link)}
.dropzone__main{font-family:var(--font-display);font-weight:600;color:var(--text-primary)}
.dropzone__sub{font-size:var(--fs-sm);color:var(--text-muted)}
.filechip{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);
  background:var(--surface-card);border:1px solid var(--border-divider);border-radius:var(--radius-sm);
}
.filechip__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}
.filechip__size{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}
.progress{height:6px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}
.progress__bar{height:100%;background:var(--blue-800);border-radius:inherit;transition:width var(--dur-base) linear}

.checkbox{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);align-items:start;
  padding:var(--sp-3);min-height:48px;cursor:pointer}
.checkbox input{width:22px;height:22px;margin:0;accent-color:var(--blue-800);flex:none}
.checkbox span{font-size:var(--fs-sm);line-height:var(--lh-normal)}

/* --------------------------------------------------------------- 11. ALERTS */
.alert{
  display:grid;grid-template-columns:auto 1fr;gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);
  border:1px solid;border-left-width:4px;border-radius:var(--radius-sm);
  font-size:var(--fs-sm);
}
.alert--info{background:var(--info-bg);color:var(--info-fg);border-color:var(--info-rule)}
.alert--success{background:var(--success-bg);color:var(--success-fg);border-color:var(--success-rule)}
.alert--warn{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-rule)}
.alert--error{background:var(--error-bg);color:var(--error-fg);border-color:var(--error-rule)}
.alert strong{font-family:var(--font-display)}

/* ----------------------------------------------------- 12. EMPTY STATE
   The page will spend real weeks with zero open roles (hiring is seasonal).
   This is a designed destination, not a fallback. */
.empty{
  display:grid;gap:var(--sp-5);justify-items:center;text-align:center;
  padding:var(--sp-16) var(--sp-6);
  background:var(--surface-card);
  border:1px solid var(--border-divider);border-radius:var(--radius-lg);
}
.empty__mark{width:56px;height:56px;opacity:.9}
.empty h2{font-size:var(--fs-h2)}
.empty p{max-width:46ch;color:var(--text-secondary)}
.empty__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);justify-content:center}

/* ------------------------------------------------- 13. STICKY MOBILE BAR
   Reserves its own height on <body> so it can never cover the submit button. */
.applybar{
  position:fixed;inset-inline:0;bottom:0;z-index:60;
  display:flex;gap:var(--sp-3);align-items:center;
  padding:var(--sp-3) var(--gutter);
  padding-bottom:calc(var(--sp-3) + env(safe-area-inset-bottom,0px));
  background:var(--surface-card);
  border-block-start:1px solid var(--border-divider);
  box-shadow:0 -2px 12px rgba(4,13,30,.10);
}
.applybar__meta{flex:1;min-width:0}
.applybar__title{font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.applybar__sub{font-size:var(--fs-xs);color:var(--text-muted)}
.has-applybar{padding-bottom:96px}
@media (min-width:800px){
  .applybar{display:none}
  .has-applybar{padding-bottom:0}
}

/* --------------------------------------------------------- 14. BREADCRUMB */
.crumbs{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;
  font-size:var(--fs-sm);color:var(--text-muted);padding-block:var(--sp-4)}
.crumbs a{color:var(--text-muted);text-decoration:none}
.crumbs a:hover{color:var(--text-link);text-decoration:underline}
.crumbs li:not(:last-child)::after{content:"/";margin-inline-start:var(--sp-2);opacity:.6}
.crumbs ol,.crumbs ul{display:contents}
.crumbs li{display:inline-flex;align-items:center;gap:var(--sp-2)}

/* ---------------------------------------------------------- 15. ACCORDION */
.acc{border:1px solid var(--border-divider);border-radius:var(--radius-md);background:var(--surface-card);overflow:hidden}
.acc+.acc{margin-block-start:var(--sp-3)}
.acc>summary{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-5);min-height:56px;cursor:pointer;
  font-family:var(--font-display);font-weight:600;color:var(--text-heading);
  list-style:none;
}
.acc>summary::-webkit-details-marker{display:none}
.acc>summary::after{
  content:"";flex:none;width:12px;height:12px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translate(-2px,-2px);
  transition:transform var(--dur-base) var(--ease);
}
.acc[open]>summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.acc>summary:hover{background:var(--surface-brand-subtle)}
.acc__body{padding:0 var(--sp-5) var(--sp-5);color:var(--text-secondary)}

/* ------------------------------------------------------------- 16. TABLE */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;
  border:1px solid var(--border-divider);border-radius:var(--radius-md)}
.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);background:var(--surface-card)}
.table th,.table td{padding:var(--sp-3) var(--sp-4);text-align:left;border-block-end:1px solid var(--border-hairline)}
.table th{font-family:var(--font-display);font-weight:600;color:var(--text-secondary);
  background:var(--surface-sunken);white-space:nowrap}
.table tbody tr:last-child td{border-block-end:0}

/* --------------------------------------------------------- 17. HEADER/FOOT
   Duplicated from the WordPress site so the page has no visual seam. */
.utilbar{background:var(--blue-800);color:#fff;font-size:var(--fs-xs)}
.utilbar .wrap{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center;justify-content:space-between;
  min-height:38px;padding-block:var(--sp-2)}
.utilbar a{color:#fff;text-decoration:none;opacity:.92}
.utilbar a:hover{opacity:1;color:#fff;text-decoration:underline}
.utilbar__social{display:flex;gap:var(--sp-3);align-items:center}
.sitehead{background:var(--surface-card);border-block-end:1px solid var(--border-hairline);
  position:sticky;top:0;z-index:50}
.sitehead .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);
  min-height:72px;padding-block:var(--sp-3)}
.sitehead__logo img,.sitehead__logo svg{height:52px;width:auto}
.sitenav{display:none;gap:var(--sp-6);align-items:center}
.sitenav a{font-family:var(--font-display);font-weight:500;font-size:var(--fs-sm);
  color:var(--text-secondary);text-decoration:none}
.sitenav a:hover,.sitenav a[aria-current="page"]{color:var(--text-link)}
@media (min-width:960px){ .sitenav{display:flex} .navtoggle{display:none} }
.navtoggle{display:grid;place-items:center;width:48px;height:48px;
  background:none;border:1.5px solid var(--border-divider);border-radius:var(--radius-sm);cursor:pointer}

.sitefoot{background:var(--blue-950);color:#C8D3E6;padding-block:var(--sp-16) var(--sp-8);font-size:var(--fs-sm)}
.sitefoot h3{color:#fff;font-size:var(--fs-overline);letter-spacing:var(--tracking-widest);
  text-transform:uppercase;margin-block-end:var(--sp-4)}
.sitefoot a{color:#C8D3E6;text-decoration:none}
.sitefoot a:hover{color:#fff;text-decoration:underline}
.sitefoot__grid{display:grid;gap:var(--sp-10)}
@media (min-width:760px){ .sitefoot__grid{grid-template-columns:1.4fr 1fr 1fr 1.2fr} }
.sitefoot__bottom{display:flex;flex-wrap:wrap;gap:var(--sp-4);justify-content:space-between;
  margin-block-start:var(--sp-12);padding-block-start:var(--sp-6);
  border-block-start:1px solid rgba(255,255,255,.14);color:#94A3BE;font-size:var(--fs-xs)}
.sitefoot li+li{margin-block-start:var(--sp-2)}


/* Logo swap. The colour logo's blue wordmark is close to invisible on a dark
   navy surface, so the knockout version takes over. Implemented in CSS rather
   than <picture> because it must respond to the data-theme toggle as well as
   to prefers-color-scheme. Both files are the same traced vector. */
.logo-swap{display:block}
.logo-swap .logo-dark{display:none}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .logo-swap .logo-light{display:none}
  :root:not([data-theme="light"]) .logo-swap .logo-dark{display:block}
}
:root[data-theme="dark"] .logo-swap .logo-light{display:none}
:root[data-theme="dark"] .logo-swap .logo-dark{display:block}

/* ---------------------------------------------------------- 18. UTILITIES */
.flow-lg{--flow:var(--sp-6)}
.flow-sm{--flow:var(--sp-2)}
.cluster{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}
.cluster--between{justify-content:space-between}
.center{text-align:center}
.tnum{font-variant-numeric:tabular-nums}
.nowrap{white-space:nowrap}
.mt-0{margin-block-start:0}

/* ------------------------------------------------------------- 19. MOTION
   Restrained on purpose. Nothing that changes layout animates, so nothing
   here can produce CLS. Reveals are opacity+transform only. */
.reveal{opacity:0;transform:translateY(14px);
  transition:opacity var(--dur-slow) var(--ease),transform var(--dur-slow) var(--ease)}
.reveal.is-in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .reveal{opacity:1;transform:none}
  /* the loading spinner still needs to convey activity */
  .btn.is-loading::after{animation:none;border-top-color:currentColor;opacity:.6}
}

/* ---------------------------------------------------------------- 20. PRINT
   HR prints shortlists and candidates print job descriptions to take to an
   interview. Neither should waste ink on chrome. */
@media print{
  .utilbar,.sitehead,.applybar,.sitefoot,.chips,.skip-link,.btn{display:none !important}
  body{background:#fff;color:#000;font-size:11pt}
  .card,.job-card,.acc{border:1px solid #999;break-inside:avoid}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
  .coursed{background:#fff !important;color:#000 !important}
  .coursed h1,.coursed h2{color:#000 !important}
}

/* -------------------------------------------------------- 21. JOB FACTS
   A definition list, because that is what it is. Two columns on mobile so a
   long value never squeezes the label into a vertical stack of letters. */
.job-facts{display:grid;gap:var(--sp-4);grid-template-columns:1fr 1fr;
  padding:var(--sp-5);background:var(--surface-card);
  border:1px solid var(--border-divider);border-radius:var(--radius-lg)}
.job-facts>div{min-width:0}
.job-facts dt{margin-block-end:var(--sp-1)}
.job-facts dd{margin:0;font-weight:500}
@media (min-width:720px){ .job-facts{grid-template-columns:repeat(4,1fr)} }
@media (min-width:960px){ .job-body{grid-template-columns:minmax(0,1fr)} }

/* ---------------------------------------------------------- 22. ADMIN
   Deliberately the same design system, not a separate skin. HR should not have
   to learn a second interface, and shared tokens mean one contrast audit. */
.is-admin{background:var(--surface-page)}
.adminbar{background:var(--blue-950);color:#fff;position:sticky;top:0;z-index:50}
.adminbar .wrap{display:flex;align-items:center;gap:var(--sp-5);flex-wrap:wrap;min-height:60px;padding-block:var(--sp-2)}
.adminbar__brand{display:flex;align-items:center;gap:var(--sp-3);color:#fff;text-decoration:none;
  font-family:var(--font-display);font-weight:600}
.adminbar__nav{display:flex;gap:var(--sp-5);flex:1;flex-wrap:wrap}
.adminbar__nav a{color:#C8D3E6;text-decoration:none;font-family:var(--font-display);font-weight:500;font-size:var(--fs-sm)}
.adminbar__nav a:hover{color:#fff}
.adminbar__out{display:flex;align-items:center;gap:var(--sp-3);color:#C8D3E6}
.adminbar__out .btn{--btn-bd:rgba(255,255,255,.35);--btn-fg:#fff}

.stat-row{display:grid;gap:var(--sp-4);grid-template-columns:repeat(2,1fr)}
@media (min-width:760px){ .stat-row{grid-template-columns:repeat(4,1fr)} }
.stat{display:grid;gap:var(--sp-1);padding:var(--sp-5);background:var(--surface-card);
  border:1px solid var(--border-divider);border-radius:var(--radius-lg);
  border-left:4px solid var(--blue-800);text-decoration:none;color:inherit}
a.stat:hover{border-left-color:var(--amber-500);color:inherit}
.stat__n{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h1);
  line-height:1;color:var(--text-heading);font-variant-numeric:tabular-nums}
.stat__l{font-size:var(--fs-sm);color:var(--text-muted)}
