/* Brand tokens from the existing cb/c21 templates; everything else neutral. */
.brand-cb  { --accent:#003399; --dark:#122455; --btn-text:#fff; --font:'Source Sans 3','Segoe UI',Helvetica,Arial,sans-serif; }
.brand-c21 { --accent:#BEAF88; --dark:#252526; --btn-text:#252526; --font:'Montserrat','Segoe UI',Helvetica,Arial,sans-serif; }
:root { --ink:#1c1c1c; --muted:#6b6b6b; --rule:#e4e4e4; --paper:#f7f7f7; --gutter:4vw; }

* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:var(--font); font-size:17px; line-height:1.6; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
h1,h2,h3 { font-family:var(--font); font-weight:700; color:var(--dark); line-height:1.2; margin:0; }
p { margin:0 0 1em; }
ul { margin:0 0 1.2em; padding-left:1.25em; }
li { margin:.3em 0; }
.wrap { max-width:1440px; margin:0 auto; padding:0 var(--gutter); }

/* header */
.site-header { background:#fff; border-bottom:1px solid var(--rule); }
.header-row { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:16px var(--gutter); }
.logo img { display:block; height:32px; width:auto; }
.site-nav { display:flex; align-items:center; gap:26px; font-size:15px; font-weight:600; }
.site-nav a { color:var(--dark); }
.site-nav .nav-apply { color:var(--btn-text); background:var(--accent); padding:10px 20px; border-radius:6px; }
.site-nav .nav-apply:hover { text-decoration:none; filter:brightness(.92); }

/* apply - slides down from the top, closable */
.apply-panel { position:fixed; top:0; left:0; right:0; z-index:30; background:#fff; border-bottom:1px solid var(--rule);
  box-shadow:0 8px 24px rgba(0,0,0,.12); max-height:92vh; overflow:auto;
  transform:translateY(-105%); transition:transform .3s ease; }
body.apply-open .apply-panel { transform:translateY(0); }
.apply-backdrop { position:fixed; inset:0; z-index:25; background:rgba(0,0,0,.35); opacity:0; pointer-events:none; transition:opacity .3s; }
body.apply-open .apply-backdrop { opacity:1; pointer-events:auto; }
.apply-inner { padding:18px var(--gutter) 24px; }
.apply-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.apply-head h2 { font-size:1.3rem; }
.apply-close { border:0; background:none; font:inherit; font-size:30px; line-height:1; color:var(--muted); cursor:pointer; padding:0 4px; }
.apply-close:hover { color:var(--dark); }
.apply-inner iframe { width:100%; height:520px; border:1px solid var(--rule); border-radius:8px; display:block; background:#fff; transition:height .2s; }
@media (prefers-reduced-motion:reduce) { .apply-panel, .apply-backdrop { transition:none; } }

/* title strip */
.title-strip { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; padding:36px 0 22px; }
.kicker { color:var(--muted); font-size:1.05rem; margin:0 0 6px; }
.title-strip h1 { font-size:2.3rem; }
.facts { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 6px; }
.facts span { display:inline-block; padding:6px 14px; border:1px solid var(--rule); border-radius:999px; font-size:14px; font-weight:600; color:var(--dark); background:var(--paper); }

/* assessment - full width */
.assess { border:1px solid var(--rule); border-top:4px solid var(--accent); border-radius:0 0 8px 8px; padding:12px 16px; margin:0 0 36px; }
.assess iframe { width:100%; height:564px; border:0; display:block; transition:height .2s; }

/* description - two columns on wide screens */
.job-body { column-count:2; column-gap:5vw; column-rule:1px solid var(--rule); font-size:16px; }
.job-body h2 { font-size:1.2rem; margin:1.6em 0 .5em; break-after:avoid; }
.job-body h2:first-child { margin-top:0; }
.job-body p, .job-body ul { break-inside:avoid; }
.job-body b { color:var(--dark); }

/* other openings */
.other-jobs { margin:32px 0 56px; }
.other-jobs a { display:block; border:1px solid var(--rule); border-radius:8px; padding:16px 20px; font-weight:600; color:var(--dark); }
.other-jobs a:hover { text-decoration:none; background:var(--paper); }
.other-jobs a::after { content:" \2192"; }

/* listing */
.job-table { width:100%; border-collapse:collapse; margin:8px 0 56px; }
.job-table th, .job-table td { text-align:left; padding:13px 10px; border-bottom:1px solid var(--rule); vertical-align:top; }
.job-table th { color:var(--muted); font-weight:600; font-size:14px; }
.job-table td a { font-weight:600; }

/* footer */
.site-footer { background:var(--paper); border-top:1px solid var(--rule); color:var(--muted); font-size:14px; }
.footer-row { display:flex; align-items:center; gap:28px; flex-wrap:wrap; padding:22px var(--gutter); }
.site-footer img { height:22px; width:auto; display:block; }
.footer-links { display:flex; gap:22px; flex-wrap:wrap; margin:0; }
.footer-links a { color:var(--dark); font-weight:600; }
.copyright { margin:0 0 0 auto; color:var(--muted); }

@media (max-width:900px) {
  .job-body { column-count:1; }
}
@media (max-width:720px) {
  .header-row { flex-direction:column; align-items:flex-start; gap:12px; }
  .site-nav { gap:14px; flex-wrap:wrap; }
  .title-strip { padding:26px 0 18px; }
  .title-strip h1 { font-size:1.8rem; }
  .assess { padding:16px; }
  .assess iframe { height:620px; }
  .copyright { margin-left:0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
