:root{
  --white:#FFFFFF;
  --mist:#D9DADB;
  --mist-2:#CBCDCF;
  --ink:#1A2027;
  --navy:#2B2F35;
  --navy-hi:#3A3F47;
  --steel:#5C6672;
  --brass:#A8823C;
  --brass-hi:#B9924A;
  --line:#C7C9CB;
  --line-2:#B9BBBE;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"IBM Plex Sans",system-ui,sans-serif;background:var(--white);color:var(--ink);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,.display{font-family:"Archivo",sans-serif;letter-spacing:-.01em;line-height:1.08}
.mono{font-family:"IBM Plex Mono",monospace}
a{color:inherit}
.wrap{max-width:1140px;margin:0 auto;padding:0 32px}

.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);display:inline-flex;align-items:center;gap:11px}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--brass);display:inline-block}

.ticks{height:16px;width:100%;display:block;background:var(--white)}
.ticks svg{display:block;width:100%;height:100%}

/* full-width banner strip under the header */
.banner{width:100%;display:block;background:var(--navy);border-bottom:1px solid var(--line)}
.banner img{width:100%;display:block;height:auto}
/* on larger screens, cap the banner height so it stays a strip (mobile still shows the full image) */
@media(min-width:861px){
  .banner img{height:clamp(200px,20vw,280px);object-fit:cover;object-position:50% 32%}
}

/* nav */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:70px}
.brand{font-family:"Archivo",sans-serif;font-weight:800;font-size:1.18rem;color:var(--ink);text-transform:uppercase;letter-spacing:.02em;text-decoration:none;display:flex;align-items:center;gap:10px}
.brand .bore{width:12px;height:12px;border:2px solid var(--brass);border-radius:50%;display:inline-block}
.brand b{color:var(--brass);font-weight:800}
.navlinks{display:flex;gap:32px;align-items:center}
.navlinks a{color:var(--steel);text-decoration:none;font-size:.92rem;font-weight:500;transition:color .15s}
.navlinks a:hover{color:var(--ink)}
.navlinks a.active{color:var(--ink)}
.btn{display:inline-block;font-family:"IBM Plex Sans",sans-serif;font-weight:600;font-size:.92rem;padding:11px 22px;border-radius:3px;text-decoration:none;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .15s,border-color .15s;cursor:pointer}
.btn:hover{background:var(--navy-hi);border-color:var(--navy-hi)}
.btn.ghost{background:transparent;color:var(--navy);border-color:var(--line-2)}
.btn.ghost:hover{border-color:var(--navy);background:var(--mist)}
.btn.brass{background:var(--brass);border-color:var(--brass);color:#1A2027}
.btn.brass:hover{background:var(--brass-hi);border-color:var(--brass-hi)}
.menu-toggle{display:none;background:none;border:0;color:var(--ink);font-size:1.5rem;cursor:pointer}

/* hero */
.hero{background:var(--white);border-bottom:1px solid var(--line)}
.hero .wrap{padding:20px 32px 64px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:start}
.hero-copy{max-width:46ch}
.hero h1{font-weight:800;font-size:clamp(2.6rem,5.4vw,4.4rem);margin:0;color:var(--ink)}
.hero h1 .accent{color:var(--navy)}
.hero .sub{font-size:1.18rem;color:var(--steel);max-width:44ch;margin-top:24px}
.hero-cta{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}

/* hero photos */
.hero-media{display:grid;gap:16px}
.shot{position:relative;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--navy);aspect-ratio:16/10;box-shadow:0 1px 3px rgba(20,30,45,.06)}
.shot img{width:100%;height:100%;object-fit:cover;display:block}
.shot .cap{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff;font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;z-index:2}
.shot.ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:20px;background:linear-gradient(150deg,#2B2F35,#3A3F47)}
.shot.ph .ph-ic{width:34px;height:34px;opacity:.7}
.shot.ph .ph-lbl{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass)}
.shot.ph .ph-desc{font-size:.82rem;color:#C7CBD1;max-width:26ch;line-height:1.4}

/* interior page hero */
.page-hero{background:var(--mist);border-bottom:1px solid var(--line)}
.page-hero .wrap{padding:20px 32px 48px}
.page-hero .inner{max-width:60ch}
.page-hero .eyebrow{margin-bottom:18px}
.page-hero h1{font-weight:800;font-size:clamp(2.3rem,4.8vw,3.7rem);color:var(--ink)}
.page-hero .sub{font-size:1.18rem;color:#3A424C;margin-top:20px;max-width:58ch}
.page-hero .hero-cta{margin-top:30px}

/* sections */
section{padding:92px 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:44px;flex-wrap:wrap}
.sec-head h2{font-weight:800;font-size:clamp(1.9rem,3.6vw,2.8rem);max-width:24ch;color:var(--ink)}
.lead{font-size:1.12rem;max-width:52ch;color:var(--steel)}

/* edge */
.edge{background:var(--mist)}
.edge-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:start}
.edge p{margin-bottom:18px;color:#3A424C;font-size:1.06rem}
.edge p strong{font-weight:600;color:var(--ink)}
.pull{border-left:3px solid var(--brass);padding:4px 0 4px 24px}
.pull .big{font-family:"Archivo",sans-serif;font-weight:800;font-size:clamp(1.6rem,3.2vw,2.2rem);line-height:1.08;color:var(--navy)}

/* trades */
.trades-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.trade{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 24px;display:flex;align-items:center;gap:14px;transition:background .15s}
.trade:hover{background:var(--mist)}
.trade .n{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--brass)}
.trade .t{font-family:"Archivo",sans-serif;font-weight:600;font-size:1.12rem;color:var(--ink)}

/* categories */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:28px}
.cat{border:1px solid var(--line);border-radius:5px;padding:20px 22px;background:var(--white);text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s;display:block;width:100%}
.cat:hover{border-color:var(--steel)}
.cat:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.cat.active{border-color:var(--brass);box-shadow:inset 0 0 0 2px var(--brass)}
.cat .tag{font-family:"IBM Plex Mono",monospace;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);display:block;margin-bottom:10px}
.cat.spec .tag{color:var(--brass)}
.cat h3{font-weight:700;font-size:1.1rem;margin-bottom:6px;color:var(--ink)}
.cat p{font-size:.9rem;color:var(--steel);line-height:1.5}
.cat .plus{display:inline-block;margin-top:12px;font-family:"IBM Plex Mono",monospace;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.roles-head{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);margin-bottom:16px}
.roles-head b{color:var(--brass);font-weight:500}
@media(max-width:860px){.cats{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.cats{grid-template-columns:1fr}}

/* candidates */
.cand{background:var(--mist)}
.cand-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}

/* article / prose (interior pages) */
.prose{max-width:760px;margin:0 auto}
.prose .lede{font-size:1.16rem;color:#3A424C;margin-bottom:14px}
.prose .lede strong{color:var(--ink);font-weight:600}
.prose .block{margin-top:44px}
.prose .kicker{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:12px}
.prose h2{font-weight:800;font-size:clamp(1.5rem,3vw,2.05rem);color:var(--ink);margin-bottom:16px}
.prose h3{font-weight:700;font-size:1.18rem;color:var(--ink);margin:26px 0 8px}
.prose p{color:#3A424C;font-size:1.06rem;margin-bottom:16px}
.prose p strong{color:var(--ink);font-weight:600}

/* inline mid-content cta */
.cta-inline{border:1px solid var(--line-2);background:var(--white);border-radius:6px;padding:24px 28px;display:flex;gap:22px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:40px 0}
.cta-inline .txt{font-weight:600;color:var(--ink);font-size:1.06rem;max-width:44ch}
.cta-inline .txt small{display:block;font-weight:400;color:var(--steel);font-size:.92rem;margin-top:4px}

/* full-width cta band */
.cta-band{background:var(--navy)}
.cta-band .wrap{padding:60px 32px;display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.cta-band .eyebrow{color:var(--brass);margin-bottom:14px}
.cta-band h2{color:#fff;font-weight:800;font-size:clamp(1.6rem,3.2vw,2.3rem);max-width:22ch}
.cta-band p{color:#C7CBD1;margin-top:10px;max-width:48ch;font-size:1.04rem}
.cta-band .cta-actions{display:flex;gap:14px;flex-wrap:wrap}

/* employer roles list */
.role-list{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.role-list .role{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 24px;display:flex;align-items:center;gap:14px}
.role-list .role .n{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--brass)}
.role-list .role .t{font-family:"Archivo",sans-serif;font-weight:600;font-size:1.1rem;color:var(--ink)}

/* contact */
.contact{background:var(--mist)}
.form-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:start}
.contact-side p{color:#3A424C;margin-bottom:22px;font-size:1.08rem}
.contact-side .line{display:flex;gap:14px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}
.contact-side .line .lbl{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);width:80px}
.contact-side .line a,.contact-side .line span{font-weight:500;text-decoration:none;color:var(--ink)}
.contact-side .line a:hover{color:var(--navy)}
.card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:30px}
.field{margin-bottom:18px}
.field label{display:block;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--steel);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--line-2);background:var(--white);font-family:"IBM Plex Sans",sans-serif;font-size:.98rem;color:var(--ink);border-radius:3px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--navy);outline-offset:1px;border-color:var(--navy)}
.field textarea{resize:vertical;min-height:110px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}

/* footer */
footer{background:var(--ink);color:#9AA3AD;padding:54px 0 40px}
.foot-grid{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap}
.foot-brand{font-family:"Archivo",sans-serif;font-weight:800;font-size:1.3rem;color:#fff;text-transform:uppercase;letter-spacing:.02em}
.foot-brand span{color:var(--brass)}
.foot-links{display:flex;gap:28px;flex-wrap:wrap}
.foot-links a{color:#9AA3AD;text-decoration:none;font-size:.9rem}
.foot-links a:hover{color:#fff}
.foot-bottom{margin-top:36px;padding-top:22px;border-top:1px solid #2C333B;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.78rem;font-family:"IBM Plex Mono",monospace;letter-spacing:.05em}

@media (max-width:860px){
  .hero-grid,.edge-grid,.cand-grid,.form-grid{grid-template-columns:1fr;gap:40px}
  .trades-grid,.role-list{grid-template-columns:1fr}
  .navlinks{display:none}
  .navlinks.open{display:flex;flex-direction:column;position:absolute;top:70px;left:0;right:0;background:var(--white);padding:20px 32px;gap:18px;border-bottom:1px solid var(--line)}
  .menu-toggle{display:block}
  .form-row{grid-template-columns:1fr}
  .hero .wrap{padding:14px 32px 36px}
  .cta-band .wrap{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
