/* -------------------- Tokens -------------------- */
:root{
  --accent:       var(--accent, #0050c8);
  --accent-dim:   var(--accent-dim, #003c96);
  --fg:           var(--fg, #111);
  --muted:        var(--muted, rgb(0 0 0 / .65));
  --bg:           var(--bg, #ffffff);

  --card:         var(--card, #ffffff);
  --card-dk:      #121212;
  --border:       var(--border, rgb(0 0 0 / .10));
  --shadow:       0 10px 28px rgb(0 0 0 / .12);

  --radius-10:    10px;
  --radius-12:    12px;
  --radius-16:    16px;

  --w-max:        1200px;
}

[data-theme="dark"]{
  --fg:     var(--fg, #eee);
  --muted:  var(--muted, rgb(255 255 255 / .62));
  --bg:     var(--bg, #0e0e0f);
  --card:   var(--card, #171717);
  --border: var(--border, rgb(255 255 255 / .10));
}

/* -------------------- Page shell -------------------- */
.fg-job{
  color: var(--fg);
  background: var(--bg);
  font-family: "Inter","Segoe UI",system-ui,-apple-system,sans-serif;
}

/* -------------------- Hero -------------------- */
.job-hero{
  background: linear-gradient(180deg, rgb(0 0 0 / .04), transparent 60%),
              radial-gradient(1200px 300px at 50% -20%, rgb(0 80 200 / .10), transparent);
  padding: clamp(2rem, 5vw, 4rem) 1rem 1rem;
}
[data-theme="dark"] .job-hero{
  background: linear-gradient(180deg, rgb(255 255 255 / .03), transparent 60%),
              radial-gradient(1200px 300px at 50% -20%, rgb(0 80 200 / .12), transparent);
}

.hero-content{
  max-width: var(--w-max);
  margin: 0 auto;
}

.job-kicker{
  font-weight: 700;
  font-size: .9rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .35rem;
}

.job-title{
  font-weight: 800;
  line-height: 1.1;
  font-size: clamp(1.8rem, 3.8vw, 3rem);
  margin: 0 0 .6rem;
}

.job-meta{ margin: .25rem 0 1rem; color: var(--muted); }

.job-locations{
  display: flex; flex-wrap: wrap; gap: .5rem;
  margin-top: .75rem;
}

.chip{
  display: inline-flex; align-items: center; gap: .4rem;
  padding: .35rem .6rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: .9rem;
  color: var(--fg);
  background: var(--card);
}
.chip-muted{ color: var(--muted); }

.hero-cta{
  display: flex; flex-wrap: wrap; gap: .6rem;
  margin-top: 1.25rem;
}

/* -------------------- Buttons -------------------- */
.btn{
  --btn-bg: #111;             /* default black */
  --btn-fg: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .8rem 1.1rem;
  border-radius: var(--radius-12);
  text-decoration: none;
  font-weight: 700;
  border: 1px solid transparent;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .06s ease;
}
.btn:active{ transform: translateY(1px); }

.btn-primary{
  background: var(--btn-bg);
  color: var(--btn-fg);
}
.btn-primary:hover,
.btn-primary:focus-visible{
  background: blue; /* dark blue on hover */
}

.btn-outline{
  background: transparent;
  color: var(--fg);
  border-color: var(--border);
}
.btn-outline:hover,
.btn-outline:focus-visible{
  border-color: var(--accent-dim);
  color: var(--accent-dim);
}

.btn-block{ display: inline-flex; width: 100%; }

/* -------------------- Grid -------------------- */
.job-grid{
  max-width: var(--w-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.85fr .95fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  padding: 1rem clamp(1rem, 3vw, 2rem) clamp(2rem, 5vw, 3rem);
}
@media (max-width: 980px){
  .job-grid{
    grid-template-columns: 1fr;
  }
}

/* -------------------- Sections -------------------- */
.job-section{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-16);
  padding: clamp(1rem, 2.5vw, 1.5rem);
  box-shadow: var(--shadow);
  margin-bottom: clamp(1rem, 2vw, 1.25rem);
}
.job-section h2{
  font-size: clamp(1.15rem, 2.1vw, 1.35rem);
  line-height: 1.2;
  margin: 0 0 .65rem;
}
.job-section p{ color: var(--fg); }

/* Bullets */
.bullets{
  margin: .25rem 0 0 0;
  padding-left: 1.2rem;
}
.bullets li{
  margin: .35rem 0;
}
.bullets li::marker{ color: var(--accent-dim); }

/* Meta grid */
.meta-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .9rem;
  margin-top: .75rem;
}
.meta-label{
  font-size: .8rem; color: var(--muted); margin-bottom: .15rem;
}
.meta-value{
  font-weight: 600;
}

/* Bottom CTA */
.job-cta{
  margin-top: .5rem;
}

/* -------------------- Aside -------------------- */
.job-aside{
  position: relative;
  display: grid;
  gap: 1rem;
  align-content: start;
}
.aside-card{
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--radius-16);
  padding: 1rem;
  box-shadow: var(--shadow);
}
.aside-title{
  font-size: 1.05rem;
  margin: 0 0 .6rem;
}
.aside-subtitle{
  font-size: 1rem;
  margin: 0 0 .5rem;
}
.aside-note{
  font-size: .9rem;
  color: var(--muted);
  margin-top: .5rem;
}

.kv{ margin: 0 0 .9rem; }
.kv > div{
  display: grid; grid-template-columns: 1fr auto;
  gap: .75rem; padding: .45rem 0;
  border-bottom: 1px dashed var(--border);
}
.kv dt{ color: var(--muted); }
.kv dd{ margin: 0; font-weight: 600; }

/* Ticks list */
.ticks{
  list-style: none; padding: 0; margin: 0;
}
.ticks li{
  position: relative;
  padding-left: 1.25rem;
  margin: .4rem 0;
}
.ticks li::before{
  content: "✔";
  position: absolute; left: 0; top: 0;
  color: var(--accent-dim);
  font-weight: 800;
}

/* -------------------- Sticky mobile apply -------------------- */
.apply-sticky{
  display: none;
}
@media (max-width: 980px){
  .apply-sticky{
    position: sticky;
    bottom: 0; left: 0; right: 0;
    display: block;
    background: linear-gradient(180deg, transparent, var(--bg) 40%);
    padding: .75rem 1rem 1rem;
    z-index: 10;
  }
}

/* -------------------- Small devices tweaks -------------------- */
@media (max-width: 480px){
  .hero-cta .btn{ flex: 1 1 auto; }
  .chip{ font-size: .85rem; }
  .kv > div{ grid-template-columns: 1fr auto; }
}
