
/* ══════════════════════════════════════════════════════════════════════════
   CareersDailyZA — Main Stylesheet v1.0.0
   Author: H. Nyalusi | careersdaily.co.za
   ══════════════════════════════════════════════════════════════════════════ */

/* ── 1. CSS VARIABLES (Customizer overrides these at runtime) ─────────── */
:root {
  --cd-primary:        #1e6feb;
  --cd-primary-dark:   #1553c7;
  --cd-primary-10:     rgba(30,111,235,.10);
  --cd-primary-20:     rgba(30,111,235,.20);
  --cd-secondary:      #0f2c5a;
  --cd-accent:         #ff5722;
  --cd-success:        #16a34a;
  --cd-success-bg:     #f0fdf4;
  --cd-danger:         #dc2626;
  --cd-danger-bg:      #fef2f2;
  --cd-warning:        #d97706;
  --cd-warning-bg:     #fffbeb;

  --cd-bg:             #f5f7fa;
  --cd-bg-alt:         #eef1f6;
  --cd-card:           #ffffff;
  --cd-border:         #e2e8f0;
  --cd-border-light:   #f1f5f9;

  --cd-text:           #0f172a;
  --cd-text-muted:     #5e748a;
  --cd-text-light:     #94a3b8;

  --cd-font:           'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --cd-fsize:          16px;

  --cd-r-xs:  4px;
  --cd-r-sm:  6px;
  --cd-r:     10px;
  --cd-r-md:  14px;
  --cd-r-lg:  20px;
  --cd-r-full:999px;

  --cd-sh-xs: 0 1px 2px rgba(0,0,0,.06);
  --cd-sh-sm: 0 1px 3px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.05);
  --cd-sh:    0 2px 8px rgba(0,0,0,.08), 0 4px 16px rgba(0,0,0,.05);
  --cd-sh-md: 0 4px 20px rgba(0,0,0,.1), 0 2px 6px rgba(0,0,0,.06);
  --cd-sh-lg: 0 8px 40px rgba(0,0,0,.12);

  --cd-header-h:  68px;
  --cd-container: 1220px;
  --cd-gap:       1.5rem;
  --cd-t:         all .18s ease;
}

/* ── 2. RESET & BASE ──────────────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { font-size:var(--cd-fsize); scroll-behavior:smooth; }
body {
  font-family:var(--cd-font);
  background:var(--cd-bg);
  color:var(--cd-text);
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  padding-top:var(--cd-header-h);
}
a { color:var(--cd-primary); text-decoration:none; transition:var(--cd-t); }
a:hover { color:var(--cd-primary-dark); }
a:focus-visible { outline:2px solid var(--cd-primary); outline-offset:3px; border-radius:3px; }
img { max-width:100%; height:auto; display:block; }
h1,h2,h3,h4,h5,h6 { font-weight:700; line-height:1.22; color:var(--cd-secondary); }
p { margin-bottom:1rem; }
p:last-child { margin-bottom:0; }
ul,ol { padding-left:1.4rem; margin-bottom:1rem; }
button { cursor:pointer; font-family:var(--cd-font); }

/* ── 3. CONTAINER & LAYOUT ────────────────────────────────────────────── */
.cd-container {
  width:100%;
  max-width:var(--cd-container);
  margin-inline:auto;
  padding-inline:1.25rem;
}

/* ── 4. HEADER ────────────────────────────────────────────────────────── */
.cd-header {
  position:fixed;
  top:0; left:0; right:0;
  z-index:1000;
  height:var(--cd-header-h);
  background:var(--cd-card);
  border-bottom:1px solid var(--cd-border);
  box-shadow:var(--cd-sh-xs);
}
.cd-header__inner {
  display:flex;
  align-items:center;
  gap:1.5rem;
  height:100%;
  max-width:var(--cd-container);
  margin-inline:auto;
  padding-inline:1.25rem;
}

/* Logo */
.cd-logo { display:flex; align-items:center; flex-shrink:0; }
.cd-logo img { height:38px; width:auto; }
.cd-logo__text {
  font-size:1.2rem;
  font-weight:800;
  color:var(--cd-secondary);
  letter-spacing:-.4px;
}
.cd-logo__text span { color:var(--cd-primary); }

/* Primary Nav */
.cd-nav { flex:1; display:flex; align-items:center; }
.cd-nav__list {
  display:flex;
  align-items:center;
  list-style:none;
  gap:.25rem;
  padding:0;
  margin:0;
}
.cd-nav__list li a {
  display:block;
  padding:.45rem .85rem;
  border-radius:var(--cd-r-sm);
  font-size:.9rem;
  font-weight:600;
  color:var(--cd-text-muted);
  transition:var(--cd-t);
}
.cd-nav__list li a:hover,
.cd-nav__list li.current-menu-item > a,
.cd-nav__list li.current-page-ancestor > a {
  color:var(--cd-primary);
  background:var(--cd-primary-10);
}
.cd-nav__list li.current-menu-item > a { color:var(--cd-primary); }

/* Header CTA */
.cd-header__actions { margin-left:auto; flex-shrink:0; }
.cd-header__jobs-link { font-size:.85rem !important; }

/* Hamburger */
.cd-hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  padding:.4rem;
  margin-left:.5rem;
  flex-shrink:0;
}
.cd-hamburger span {
  display:block;
  width:22px; height:2px;
  background:var(--cd-text);
  border-radius:2px;
  transition:var(--cd-t);
}
.cd-hamburger[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.cd-hamburger[aria-expanded="true"] span:nth-child(2) { opacity:0; transform:scaleX(0); }
.cd-hamburger[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ── 5. FOOTER ────────────────────────────────────────────────────────── */
.cd-footer {
  background:var(--cd-secondary);
  color:rgba(255,255,255,.75);
  margin-top:4rem;
}
.cd-footer__inner {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:3rem;
  max-width:var(--cd-container);
  margin-inline:auto;
  padding:3rem 1.25rem 2rem;
}
.cd-footer__brand {}
.cd-footer__logo-text {
  font-size:1.25rem;
  font-weight:800;
  color:#fff;
  margin-bottom:.5rem;
  display:block;
}
.cd-footer img { height:36px; width:auto; filter:brightness(0) invert(1); }
.cd-footer__tagline { font-size:.875rem; color:rgba(255,255,255,.55); margin-top:.5rem; max-width:260px; }
.cd-footer__nav-list {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem 1.5rem;
  list-style:none;
  padding:0; margin:0;
}
.cd-footer__nav-list li a {
  font-size:.875rem;
  color:rgba(255,255,255,.65);
  font-weight:500;
}
.cd-footer__nav-list li a:hover { color:#fff; }
.cd-footer__bottom {
  border-top:1px solid rgba(255,255,255,.1);
}
.cd-footer__bottom-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
  max-width:var(--cd-container);
  margin-inline:auto;
  padding:.9rem 1.25rem;
  font-size:.8rem;
  color:rgba(255,255,255,.45);
}
.cd-footer__legal { display:flex; gap:.5rem; flex-wrap:wrap; }
.cd-footer__legal a { color:rgba(255,255,255,.45); }
.cd-footer__legal a:hover { color:#fff; }

/* ── 6. BUTTONS ──────────────────────────────────────────────────────── */
.cd-btn {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.6rem 1.2rem;
  border-radius:var(--cd-r-sm);
  font-family:var(--cd-font);
  font-size:.9rem;
  font-weight:600;
  line-height:1;
  border:2px solid transparent;
  cursor:pointer;
  text-decoration:none;
  white-space:nowrap;
  transition:var(--cd-t);
}
.cd-btn svg { flex-shrink:0; }

.cd-btn--primary {
  background:var(--cd-primary);
  color:#fff;
  border-color:var(--cd-primary);
}
.cd-btn--primary:hover {
  background:var(--cd-primary-dark);
  border-color:var(--cd-primary-dark);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(30,111,235,.35);
}

.cd-btn--outline {
  background:transparent;
  color:var(--cd-primary);
  border-color:var(--cd-primary);
}
.cd-btn--outline:hover {
  background:var(--cd-primary);
  color:#fff;
}

.cd-btn--ghost {
  background:transparent;
  color:var(--cd-text-muted);
  border-color:var(--cd-border);
}
.cd-btn--ghost:hover {
  border-color:var(--cd-primary);
  color:var(--cd-primary);
}

.cd-btn--sm   { padding:.42rem .85rem; font-size:.82rem; }
.cd-btn--lg   { padding:.75rem 1.6rem; font-size:.95rem; }
.cd-btn--xl   { padding:.9rem 2rem;    font-size:1rem; }
.cd-btn--full { width:100%; justify-content:center; }

/* ── 7. PILLS / BADGES ───────────────────────────────────────────────── */
.cd-pills { display:flex; flex-wrap:wrap; gap:.4rem; margin-top:.6rem; }
.cd-pill {
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  padding:.22rem .65rem;
  border-radius:var(--cd-r-full);
  font-size:.77rem;
  font-weight:600;
  letter-spacing:.01em;
  white-space:nowrap;
  line-height:1.4;
  text-decoration:none;
}
.cd-pill--type     { background:#dbeafe; color:#1e40af; }
.cd-pill--type:hover { background:#bfdbfe; color:#1e40af; }
.cd-pill--cat      { background:#f3e8ff; color:#7c3aed; }
.cd-pill--cat:hover{ background:#e9d5ff; color:#7c3aed; }
.cd-pill--loc      { background:#f1f5f9; color:var(--cd-text-muted); }
.cd-pill--sal      { background:#f0fdf4; color:#15803d; }
.cd-pill--remote   { background:#ecfdf5; color:#065f46; }
.cd-pill--deadline { background:var(--cd-warning-bg); color:var(--cd-warning); }
.cd-pill--expired  { background:var(--cd-danger-bg); color:var(--cd-danger); }

/* ── 8. COMPANY LOGO ─────────────────────────────────────────────────── */
.company-logo {
  display:block;
  width:100%; height:100%;
  object-fit:contain;
  border-radius:var(--cd-r-sm);
}
.company-logo-placeholder {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%; height:100%;
  background:linear-gradient(135deg, var(--cd-primary-10), var(--cd-bg-alt));
  border:2px solid var(--cd-border);
  border-radius:var(--cd-r-sm);
  font-size:.95rem;
  font-weight:800;
  color:var(--cd-primary);
  letter-spacing:.5px;
}

/* ── 9. FRONT PAGE – HERO ────────────────────────────────────────────── */
.cd-hero {
  background:linear-gradient(135deg, var(--cd-secondary) 0%, #1a3a6b 60%, #1e6feb 100%);
  color:#fff;
  padding:4rem 1.25rem 0;
  position:relative;
  overflow:hidden;
}
.cd-hero::before {
  content:'';
  position:absolute;
  inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.cd-hero__inner {
  position:relative;
  max-width:var(--cd-container);
  margin-inline:auto;
  text-align:center;
  padding-bottom:2.5rem;
}
.cd-hero__heading {
  font-size:clamp(2rem, 5vw, 3.2rem);
  font-weight:800;
  color:#fff;
  line-height:1.15;
  margin-bottom:1rem;
  letter-spacing:-.03em;
}
.cd-hero__accent { color:#7dd3fc; }
.cd-hero__sub {
  font-size:1.05rem;
  color:rgba(255,255,255,.75);
  margin-bottom:2rem;
  max-width:520px;
  margin-inline:auto;
}

/* Hero Search */
.cd-hero__search { width:100%; max-width:680px; margin-inline:auto; }
.cd-hero__search-wrap {
  display:flex;
  gap:.6rem;
  background:#fff;
  border-radius:var(--cd-r-md);
  padding:.5rem;
  box-shadow:var(--cd-sh-lg);
}
.cd-search-input {
  flex:1;
  display:flex;
  align-items:center;
  gap:.6rem;
  padding:.4rem .8rem;
}
.cd-search-input svg { color:var(--cd-text-light); flex-shrink:0; }
.cd-search-input input {
  flex:1;
  border:none;
  outline:none;
  font-family:var(--cd-font);
  font-size:.95rem;
  color:var(--cd-text);
  background:transparent;
}
.cd-search-input input::placeholder { color:var(--cd-text-light); }

/* Hero Stats */
.cd-hero__stats {
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:2rem;
  background:rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  border-top:1px solid rgba(255,255,255,.12);
  padding:1.1rem 1.25rem;
  margin-top:2.5rem;
}
.cd-stat { text-align:center; }
.cd-stat strong { display:block; font-size:1.4rem; font-weight:800; color:#fff; line-height:1.1; }
.cd-stat span { font-size:.78rem; color:rgba(255,255,255,.6); text-transform:uppercase; letter-spacing:.06em; }
.cd-stat-divider { width:1px; height:36px; background:rgba(255,255,255,.15); }

/* ── 10. FRONT PAGE – SECTIONS ───────────────────────────────────────── */
.cd-section { padding:3.5rem 1.25rem; }
.cd-section--alt { background:var(--cd-bg-alt); }
.cd-section__inner { max-width:var(--cd-container); margin-inline:auto; }
.cd-section__head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1.75rem;
}
.cd-section__title { font-size:1.45rem; font-weight:800; }
.cd-link-more {
  font-size:.88rem;
  font-weight:600;
  color:var(--cd-primary);
  white-space:nowrap;
}
.cd-link-more:hover { text-decoration:underline; }

/* ── 11. JOB CARD ────────────────────────────────────────────────────── */
.cd-job-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
  gap:1rem;
}
.cd-job-grid--5col {
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
}
.cd-job-list { display:flex; flex-direction:column; gap:.75rem; }

.cd-job-card {
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:1rem;
  background:var(--cd-card);
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  padding:1.1rem 1.25rem;
  transition:var(--cd-t);
  overflow:hidden;
}
.cd-job-card:hover {
  border-color:var(--cd-primary);
  box-shadow:var(--cd-sh-md);
  transform:translateY(-2px);
}
.cd-job-card--featured {
  border-color:var(--cd-warning);
  background:linear-gradient(to right, #fffbeb 0%, var(--cd-card) 60%);
}
.cd-job-card--expired { opacity:.7; }

.cd-job-card__featured-badge {
  position:absolute;
  top:0; right:0;
  background:var(--cd-warning);
  color:#fff;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.04em;
  padding:.2rem .55rem;
  border-bottom-left-radius:var(--cd-r-sm);
  text-transform:uppercase;
}

.cd-job-card__logo {
  flex-shrink:0;
  width:52px; height:52px;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r-sm);
  overflow:hidden;
  background:var(--cd-bg);
}
.cd-job-card__body { flex:1; min-width:0; }
.cd-job-card__title {
  font-size:.98rem;
  font-weight:700;
  line-height:1.3;
  margin-bottom:.25rem;
}
.cd-job-card__title a {
  color:var(--cd-secondary);
  transition:var(--cd-t);
}
.cd-job-card:hover .cd-job-card__title a { color:var(--cd-primary); }
.cd-job-card__company { font-size:.83rem; color:var(--cd-text-muted); margin-bottom:.35rem; font-weight:500; }
.cd-job-card__company-link { color:var(--cd-text-muted); }
.cd-job-card__company-link:hover { color:var(--cd-primary); }
.cd-job-card__meta { display:flex; align-items:center; gap:.75rem; margin-top:.5rem; }
.cd-job-card__date { font-size:.78rem; color:var(--cd-text-light); }
.cd-job-card__expired { font-size:.78rem; color:var(--cd-danger); font-weight:600; }
.cd-job-card__link-overlay {
  position:absolute;
  inset:0;
  z-index:1;
}
.cd-job-card__link-overlay ~ * { position:relative; z-index:2; }
.cd-job-card .cd-pills { margin-top:.45rem; }

/* ── 12. COMPANY CARD ────────────────────────────────────────────────── */
.cd-company-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:1rem;
}
.cd-company-grid--full {
  grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
}
.cd-company-card {
  position:relative;
  display:flex;
  align-items:center;
  gap:.9rem;
  background:var(--cd-card);
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  padding:1rem 1.1rem;
  transition:var(--cd-t);
  overflow:hidden;
}
.cd-company-card:hover {
  border-color:var(--cd-primary);
  box-shadow:var(--cd-sh);
  transform:translateY(-2px);
}
.cd-company-card__logo {
  flex-shrink:0;
  width:48px; height:48px;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r-sm);
  overflow:hidden;
  background:var(--cd-bg);
}
.cd-company-card__body { flex:1; min-width:0; }
.cd-company-card__name { font-size:.9rem; font-weight:700; margin-bottom:.2rem; }
.cd-company-card__name a { color:var(--cd-secondary); }
.cd-company-card:hover .cd-company-card__name a { color:var(--cd-primary); }
.cd-company-card__count { font-size:.78rem; color:var(--cd-primary); font-weight:600; }
.cd-company-card__excerpt { font-size:.78rem; color:var(--cd-text-muted); margin-top:.3rem; }
.cd-company-card__link-overlay { position:absolute; inset:0; z-index:1; }
.cd-company-card__link-overlay ~ * { position:relative; z-index:2; }

/* ── 13. POST CARD ───────────────────────────────────────────────────── */
.cd-post-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));
  gap:1.25rem;
}
.cd-post-card {
  background:var(--cd-card);
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  overflow:hidden;
  transition:var(--cd-t);
  display:flex;
  flex-direction:column;
}
.cd-post-card:hover { box-shadow:var(--cd-sh-md); transform:translateY(-3px); }
.cd-post-card__thumb-wrap { overflow:hidden; aspect-ratio:16/9; }
.cd-post-card__thumb {
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.cd-post-card:hover .cd-post-card__thumb { transform:scale(1.04); }
.cd-post-card__body { padding:1.1rem 1.25rem; flex:1; display:flex; flex-direction:column; }
.cd-post-card__cats { margin-bottom:.4rem; }
.cd-post-card__cats a { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--cd-primary); }
.cd-post-card__title { font-size:1rem; font-weight:700; margin-bottom:.5rem; }
.cd-post-card__title a { color:var(--cd-secondary); }
.cd-post-card:hover .cd-post-card__title a { color:var(--cd-primary); }
.cd-post-card__excerpt { font-size:.855rem; color:var(--cd-text-muted); line-height:1.55; flex:1; margin-bottom:.75rem; }
.cd-post-card__meta { font-size:.78rem; color:var(--cd-text-light); display:flex; gap:.5rem; margin-top:auto; }

/* ── 14. JOB HEADER (single-job) ─────────────────────────────────────── */
.cd-job-header {
  background:var(--cd-card);
  border-bottom:1px solid var(--cd-border);
  padding:2rem 1.25rem;
}
.cd-job-header__inner {
  display:flex;
  align-items:flex-start;
  gap:1.5rem;
  max-width:var(--cd-container);
  margin-inline:auto;
}
.cd-job-header__logo {
  flex-shrink:0;
  width:80px; height:80px;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  overflow:hidden;
  background:var(--cd-bg);
}
.cd-job-header__logo .company-logo-placeholder { font-size:1.2rem; }
.cd-job-header__content { flex:1; min-width:0; }
.cd-job-header__title {
  font-size:clamp(1.3rem, 3vw, 1.75rem);
  font-weight:800;
  margin-bottom:.4rem;
  color:var(--cd-secondary);
  line-height:1.2;
}
.cd-job-header__company {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:.4rem;
  margin-bottom:.25rem;
}
.cd-job-header__company-name {
  font-size:.95rem;
  font-weight:600;
  color:var(--cd-primary);
}
.cd-job-header__location {
  display:inline-flex;
  align-items:center;
  gap:.25rem;
  font-size:.88rem;
  color:var(--cd-text-muted);
}
.cd-job-header__meta { margin-top:.75rem; }
.cd-job-date {
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  font-size:.8rem;
  color:var(--cd-text-light);
}
.cd-job-header__cta { flex-shrink:0; align-self:center; }
.cd-dot { color:var(--cd-border); font-size:.9rem; }
.cd-expired-badge {
  display:inline-block;
  background:var(--cd-danger);
  color:#fff;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:.35rem .9rem;
  border-radius:var(--cd-r-full);
}

/* ── 15. JOB BODY LAYOUT ────────────────────────────────────────────── */
.cd-job-body { padding:2rem 1.25rem; }
.cd-job-body__inner {
  display:grid;
  grid-template-columns:1fr 340px;
  gap:2rem;
  max-width:var(--cd-container);
  margin-inline:auto;
  align-items:start;
}
/* Content */
.cd-job-content {}
.cd-entry__content {
  font-size:.955rem;
  line-height:1.8;
  color:var(--cd-text);
}
.cd-entry__content h1,.cd-entry__content h2,
.cd-entry__content h3,.cd-entry__content h4 {
  margin-top:1.75rem;
  margin-bottom:.65rem;
  color:var(--cd-secondary);
}
.cd-entry__content h2 { font-size:1.25rem; }
.cd-entry__content h3 { font-size:1.05rem; }
.cd-entry__content ul,.cd-entry__content ol { margin-bottom:1rem; }
.cd-entry__content li { margin-bottom:.3rem; }
.cd-entry__content strong { color:var(--cd-secondary); }
.cd-entry__content a { text-decoration:underline; }

/* ── 16. APPLY SECTION ───────────────────────────────────────────────── */
.cd-apply-section { margin-top:2.5rem; padding-top:2rem; border-top:1px solid var(--cd-border); }

.cd-apply-box {
  background:linear-gradient(135deg, var(--cd-primary-10), var(--cd-bg));
  border:1px solid var(--cd-primary-20);
  border-radius:var(--cd-r-md);
  padding:1.75rem;
  text-align:center;
}
.cd-apply-box h3 { font-size:1.1rem; margin-bottom:.35rem; }
.cd-apply-box p { color:var(--cd-text-muted); font-size:.9rem; margin-bottom:1.25rem; }
.cd-apply-box__deadline {
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  font-size:.8rem;
  color:var(--cd-text-muted);
  margin-top:.75rem;
}

.cd-expired-notice {
  display:flex;
  align-items:flex-start;
  gap:1rem;
  background:var(--cd-danger-bg);
  border:1px solid #fecaca;
  border-radius:var(--cd-r);
  padding:1.25rem 1.5rem;
  color:var(--cd-danger);
}
.cd-expired-notice svg { flex-shrink:0; margin-top:.1rem; }
.cd-expired-notice strong { display:block; font-size:1rem; margin-bottom:.3rem; }
.cd-expired-notice p { color:#b91c1c; font-size:.875rem; margin:0; }

/* Sticky apply button (mobile only) */
.cd-sticky-apply {
  display:none;
  position:fixed;
  bottom:0; left:0; right:0;
  z-index:900;
  background:var(--cd-card);
  border-top:1px solid var(--cd-border);
  padding:.75rem 1.25rem;
  box-shadow:0 -4px 20px rgba(0,0,0,.1);
}

/* ── 17. JOB SIDEBAR ─────────────────────────────────────────────────── */
.cd-job-sidebar { display:flex; flex-direction:column; gap:1.25rem; }
.cd-sidebar-card {
  background:var(--cd-card);
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  padding:1.25rem;
}
.cd-sidebar-card__title {
  font-size:.9rem;
  font-weight:700;
  color:var(--cd-text-muted);
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:1rem;
  padding-bottom:.75rem;
  border-bottom:1px solid var(--cd-border-light);
}
.cd-sidebar-company {
  display:flex;
  align-items:center;
  gap:.85rem;
  margin-bottom:.85rem;
}
.cd-sidebar-company__logo {
  width:48px; height:48px;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r-sm);
  overflow:hidden;
  background:var(--cd-bg);
  flex-shrink:0;
}
.cd-sidebar-company__info { min-width:0; }
.cd-sidebar-company__info strong { display:block; font-size:.92rem; color:var(--cd-secondary); font-weight:700; }
.cd-sidebar-company__count { font-size:.8rem; color:var(--cd-primary); font-weight:600; }
.cd-sidebar-company__desc { font-size:.83rem; color:var(--cd-text-muted); margin-bottom:1rem; line-height:1.55; }

/* Job Details list */
.cd-details-list { display:flex; flex-direction:column; gap:.75rem; }
.cd-details-row { display:grid; grid-template-columns:auto 1fr; gap:.5rem .75rem; align-items:baseline; }
.cd-details-row dt {
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  font-size:.78rem;
  font-weight:700;
  color:var(--cd-text-light);
  text-transform:uppercase;
  letter-spacing:.05em;
  white-space:nowrap;
}
.cd-details-row dd { font-size:.87rem; color:var(--cd-text); font-weight:500; }
.cd-deadline--expired { color:var(--cd-danger); }

/* ── 18. COMPANY HEADER (single-company) ─────────────────────────────── */
.cd-company-header {
  background:var(--cd-card);
  border-bottom:1px solid var(--cd-border);
  padding:2rem 1.25rem;
}
.cd-company-header__inner {
  display:flex;
  align-items:center;
  gap:1.5rem;
  max-width:var(--cd-container);
  margin-inline:auto;
}
.cd-company-header__logo {
  flex-shrink:0;
  width:90px; height:90px;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  overflow:hidden;
  background:var(--cd-bg);
}
.cd-company-header__name { font-size:clamp(1.3rem, 3vw, 1.8rem); font-weight:800; margin-bottom:.4rem; }
.cd-company-jobs-count {
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:.9rem;
  font-weight:600;
  color:var(--cd-primary);
}

/* Company body */
.cd-company-body { padding:2rem 1.25rem; }
.cd-company-body__inner {
  max-width:var(--cd-container);
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  gap:2.5rem;
}
.cd-company-about h2 { font-size:1.25rem; margin-bottom:1rem; }
.cd-company-jobs-section h2 {
  font-size:1.25rem;
  margin-bottom:1.25rem;
  display:flex;
  align-items:center;
  gap:.75rem;
}
.cd-company-jobs-section h2 span { color:var(--cd-primary); }
.cd-jobs-count-badge {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:24px;
  padding:0 .5rem;
  background:var(--cd-primary);
  color:#fff;
  border-radius:var(--cd-r-full);
  font-size:.78rem;
  font-weight:700;
}

.cd-empty-jobs {
  text-align:center;
  padding:3rem 1.5rem;
  border:1px dashed var(--cd-border);
  border-radius:var(--cd-r);
}
.cd-empty-jobs svg { margin-inline:auto; margin-bottom:1rem; color:var(--cd-text-light); }
.cd-empty-jobs p { color:var(--cd-text-muted); margin-bottom:1.25rem; }

/* ── 19. ARCHIVE HEADER ──────────────────────────────────────────────── */
.cd-archive-header {
  background:var(--cd-card);
  border-bottom:1px solid var(--cd-border);
  padding:2rem 1.25rem;
}
.cd-archive-header__inner {
  max-width:var(--cd-container);
  margin-inline:auto;
}
.cd-archive-header__title {
  font-size:clamp(1.3rem, 3vw, 1.75rem);
  font-weight:800;
  margin-bottom:.3rem;
}
.cd-archive-header__title span { color:var(--cd-primary); }
.cd-archive-header__count,.cd-archive-header__sub { font-size:.9rem; color:var(--cd-text-muted); }
.cd-archive-header__desc { font-size:.9rem; color:var(--cd-text-muted); margin-top:.25rem; }

/* ── 20. ARCHIVE BODY LAYOUT ────────────────────────────────────────── */
.cd-archive-body { padding:2rem 1.25rem; }
.cd-archive-body__inner {
  display:grid;
  grid-template-columns:240px 1fr;
  gap:2rem;
  max-width:var(--cd-container);
  margin-inline:auto;
  align-items:start;
}
.cd-archive-body--companies { }
.cd-archive-body--blog { }

/* Filter sidebar */
.cd-filter-sidebar {
  position:sticky;
  top:calc(var(--cd-header-h) + 1.5rem);
}
.cd-filters {
  background:var(--cd-card);
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  padding:1.25rem;
  display:flex;
  flex-direction:column;
  gap:1.25rem;
}
.cd-filters__title {
  font-size:.95rem;
  font-weight:800;
  margin-bottom:0;
  color:var(--cd-secondary);
}
.cd-filter-group { display:flex; flex-direction:column; gap:.45rem; }
.cd-filter-group > label {
  font-size:.78rem;
  font-weight:700;
  color:var(--cd-text-light);
  text-transform:uppercase;
  letter-spacing:.06em;
}
.cd-filter-group input[type=text] {
  padding:.5rem .75rem;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r-sm);
  font-family:var(--cd-font);
  font-size:.87rem;
  width:100%;
  color:var(--cd-text);
}
.cd-filter-group input[type=text]:focus { outline:none; border-color:var(--cd-primary); }
.cd-filter-check {
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.85rem;
  color:var(--cd-text);
  cursor:pointer;
  padding:.2rem 0;
}
.cd-filter-check input[type=radio] { accent-color:var(--cd-primary); }
.cd-filter-count {
  margin-left:auto;
  font-size:.75rem;
  color:var(--cd-text-light);
  background:var(--cd-bg-alt);
  padding:.1rem .4rem;
  border-radius:var(--cd-r-full);
}

/* Archive main */
.cd-archive-main {}

/* ── 21. RELATED JOBS ────────────────────────────────────────────────── */
.cd-related-jobs {
  background:var(--cd-bg-alt);
  border-top:1px solid var(--cd-border);
  padding:2.5rem 1.25rem;
}
.cd-related-jobs__inner {
  max-width:var(--cd-container);
  margin-inline:auto;
}
.cd-related-jobs__title { font-size:1.2rem; font-weight:800; margin-bottom:1.25rem; }

/* ── 22. BLOG LAYOUT ─────────────────────────────────────────────────── */
.cd-blog-layout {
  display:grid;
  grid-template-columns:1fr 300px;
  gap:2rem;
  max-width:var(--cd-container);
  margin-inline:auto;
  padding:2rem 0;
  align-items:start;
}
.cd-blog-main {}
.cd-blog-sidebar { position:sticky; top:calc(var(--cd-header-h) + 1.5rem); }
.cd-blog-sidebar .widget {
  background:var(--cd-card);
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r);
  padding:1.25rem;
  margin-bottom:1.25rem;
}
.cd-blog-sidebar .widget-title {
  font-size:.9rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:.85rem;
  color:var(--cd-text-muted);
}

/* ── 23. SINGLE POST ─────────────────────────────────────────────────── */
.cd-single-post {
  background:var(--cd-card);
  border-radius:var(--cd-r);
  overflow:hidden;
  border:1px solid var(--cd-border);
}
.cd-single-post__header { padding:2rem 2rem 1.5rem; }
.cd-single-post__cats { margin-bottom:.6rem; }
.cd-single-post__cats a {
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.07em;
  color:var(--cd-primary);
}
.cd-single-post__title { font-size:clamp(1.5rem, 4vw, 2rem); margin-bottom:.75rem; }
.cd-single-post__meta {
  display:flex;
  align-items:center;
  gap:.5rem;
  flex-wrap:wrap;
  font-size:.83rem;
  color:var(--cd-text-muted);
}
.cd-single-post__meta a { color:var(--cd-text-muted); }
.cd-single-post__meta a:hover { color:var(--cd-primary); }
.cd-single-post__thumb { aspect-ratio:16/7; overflow:hidden; }
.cd-single-post__img { width:100%; height:100%; object-fit:cover; }
.cd-single-post .cd-entry__content { padding:2rem; }
.cd-single-post__footer { padding:1.25rem 2rem; border-top:1px solid var(--cd-border); }
.cd-single-post__tags { font-size:.83rem; color:var(--cd-text-muted); margin-bottom:1rem; }
.cd-single-post__tags a { color:var(--cd-primary); }
.cd-single-post__nav .post-navigation { display:flex; justify-content:space-between; gap:1rem; }
.cd-comments { padding-top:1.5rem; }

/* ── 24. PAGE ────────────────────────────────────────────────────────── */
.cd-page-layout {
  max-width:800px;
  margin-inline:auto;
  padding:2.5rem 1.25rem;
}
.cd-page { background:var(--cd-card); border-radius:var(--cd-r); padding:2rem 2.5rem; border:1px solid var(--cd-border); }
.cd-page__title { font-size:clamp(1.4rem, 3vw, 1.9rem); margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:1px solid var(--cd-border); }

/* ── 25. SEARCH RESULTS ──────────────────────────────────────────────── */
.cd-search-body { padding:2rem 1.25rem; }
.cd-search-results {
  max-width:var(--cd-container);
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  gap:.75rem;
}

/* ── 26. PAGINATION ──────────────────────────────────────────────────── */
.cd-pagination { margin-top:2rem; }
.cd-pagination .page-numbers {
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
  list-style:none;
  padding:0;
  margin:0;
}
.cd-pagination .page-numbers li {}
.cd-pagination .page-numbers a,
.cd-pagination .page-numbers span {
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:36px;
  padding:0 .5rem;
  border:1px solid var(--cd-border);
  border-radius:var(--cd-r-sm);
  font-size:.85rem;
  font-weight:600;
  color:var(--cd-text-muted);
  background:var(--cd-card);
  transition:var(--cd-t);
}
.cd-pagination .page-numbers a:hover { border-color:var(--cd-primary); color:var(--cd-primary); }
.cd-pagination .page-numbers .current { background:var(--cd-primary); border-color:var(--cd-primary); color:#fff; }

/* ── 27. NO RESULTS & 404 ────────────────────────────────────────────── */
.cd-no-results {
  text-align:center;
  padding:4rem 1.5rem;
  max-width:480px;
  margin-inline:auto;
}
.cd-no-results svg { margin-inline:auto; margin-bottom:1.25rem; }
.cd-no-results h2 { font-size:1.3rem; margin-bottom:.5rem; }
.cd-no-results p { color:var(--cd-text-muted); margin-bottom:1.5rem; }
.cd-no-results__actions { display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }

.cd-404 { display:flex; align-items:center; justify-content:center; min-height:60vh; padding:3rem 1.25rem; }
.cd-404__inner { text-align:center; max-width:460px; }
.cd-404__code { font-size:6rem; font-weight:900; color:var(--cd-primary); line-height:1; opacity:.15; margin-bottom:-.5rem; }
.cd-404__title { font-size:1.6rem; margin-bottom:.75rem; }
.cd-404__desc { color:var(--cd-text-muted); margin-bottom:2rem; }
.cd-404__actions { display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }

/* ── 28. EMPTY STATES ────────────────────────────────────────────────── */
.cd-empty {
  text-align:center;
  padding:2rem;
  color:var(--cd-text-muted);
  font-size:.9rem;
}

/* ── 29. MISC UTILITIES ──────────────────────────────────────────────── */
.cd-dot { color:var(--cd-border); margin-inline:.2rem; }
.screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }

/* WordPress alignments */
.alignleft { float:left; margin-right:1.5rem; margin-bottom:1rem; }
.alignright { float:right; margin-left:1.5rem; margin-bottom:1rem; }
.aligncenter { text-align:center; margin-inline:auto; display:block; }
.wp-caption { max-width:100%; }
.wp-caption-text { font-size:.8rem; color:var(--cd-text-muted); text-align:center; margin-top:.4rem; }

/* ── 30. RESPONSIVE ──────────────────────────────────────────────────── */

/* Tablet: ≤ 1024px */
@media (max-width: 1024px) {
  .cd-job-body__inner { grid-template-columns:1fr 300px; }
  .cd-archive-body__inner { grid-template-columns:220px 1fr; }
  .cd-blog-layout { grid-template-columns:1fr 260px; }
}

/* Mid tablet: ≤ 900px */
@media (max-width: 900px) {
  .cd-job-body__inner { grid-template-columns:1fr; }
  .cd-job-sidebar { order:-1; display:grid; grid-template-columns:repeat(auto-fill, minmax(250px, 1fr)); }
  .cd-job-header__cta { display:none; } /* hidden — replaced by sticky btn */
  .cd-sticky-apply { display:block; }

  .cd-archive-body__inner { grid-template-columns:1fr; }
  .cd-filter-sidebar { position:static; }
  .cd-filters { flex-direction:row; flex-wrap:wrap; gap:1rem; }
  .cd-filter-group { flex:1; min-width:160px; }

  .cd-blog-layout { grid-template-columns:1fr; }
  .cd-blog-sidebar { display:none; }

  .cd-company-header__inner { gap:1.1rem; }
  .cd-company-header__logo { width:70px; height:70px; }

  .cd-hero__stats { flex-wrap:wrap; gap:1rem; }
  .cd-stat-divider { display:none; }

  .cd-footer__inner { flex-direction:column; gap:2rem; }
}

/* Mobile: ≤ 640px */
@media (max-width: 640px) {
  :root { --cd-header-h: 62px; }

  .cd-header__actions { display:none; }
  .cd-hamburger { display:flex; }

  .cd-nav {
    display:none;
    position:fixed;
    top:var(--cd-header-h);
    left:0; right:0;
    background:var(--cd-card);
    border-bottom:1px solid var(--cd-border);
    box-shadow:var(--cd-sh-md);
    padding:1rem 1.25rem;
    z-index:999;
  }
  .cd-nav.is-open { display:block; }
  .cd-nav__list { flex-direction:column; gap:.25rem; }
  .cd-nav__list li a { padding:.65rem .85rem; font-size:.95rem; }

  .cd-hero { padding:3rem 1.25rem 0; }
  .cd-hero__heading { font-size:1.75rem; }
  .cd-hero__search-wrap { flex-direction:column; padding:.6rem; }
  .cd-hero__search-wrap .cd-btn { width:100%; justify-content:center; }

  .cd-job-header { padding:1.25rem 1rem; }
  .cd-job-header__inner { gap:1rem; }
  .cd-job-header__logo { width:60px; height:60px; }
  .cd-job-header__title { font-size:1.2rem; }

  .cd-job-body { padding:1rem; }
  .cd-job-sidebar { grid-template-columns:1fr; }

  .cd-section { padding:2.5rem 1rem; }
  .cd-section__head { flex-direction:column; gap:.5rem; }

  .cd-job-grid { grid-template-columns:1fr; }
  .cd-company-grid { grid-template-columns:1fr 1fr; }

  .cd-post-grid { grid-template-columns:1fr; }

  .cd-company-header { padding:1.25rem 1rem; }
  .cd-company-header__logo { width:64px; height:64px; }

  .cd-archive-header { padding:1.5rem 1rem; }
  .cd-archive-body { padding:1rem; }

  .cd-search-body { padding:1rem; }

  .cd-related-jobs { padding:2rem 1rem; }

  .cd-single-post__header { padding:1.5rem 1.25rem 1rem; }
  .cd-single-post .cd-entry__content { padding:1.25rem; }
  .cd-single-post__footer { padding:1rem 1.25rem; }

  .cd-page { padding:1.5rem 1.25rem; }

  .cd-footer__nav-list { gap:.5rem 1rem; }

  .cd-apply-box { padding:1.25rem; }
}

/* Very small: ≤ 380px */
@media (max-width: 380px) {
  .cd-company-grid { grid-template-columns:1fr; }
  .cd-hero__heading { font-size:1.55rem; }
}

/* Print */
@media print {
  .cd-header, .cd-footer, .cd-sticky-apply,
  .cd-filter-sidebar, .cd-related-jobs { display:none !important; }
  body { padding-top:0; }
  .cd-job-body__inner { grid-template-columns:1fr; }
}
