/*
Theme Name: All Govt Jobs India
Theme URI: https://example.com/all-govt-jobs
Author: Pardeep Tadyal
Author URI: https://example.com
Description: A fast, SEO-structured theme for Indian government job notification portals. Ships 12 pre-built content hubs (Latest Jobs, Results, Admit Card, Answer Key, Syllabus, Cut Off, Previous Papers, Exam Calendar, Employment News, Upcoming Notifications, Closing Soon, Walk-in Jobs), clean category URLs without the /category/ base, an automatic recruitment summary table driven by post fields, deadline tracking, and JobPosting structured data.
Version: 1.2.2
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: all-govt-jobs
Tags: blog, news, custom-menu, featured-images, threaded-comments, translation-ready, two-columns, right-sidebar
*/

/* ==========================================================================
   1. TOKENS
   ========================================================================== */

:root {
  /* Ink & ground */
  --ink:        #10233F;
  --ink-soft:   #2C4361;
  --ink-mute:   #5E7391;
  --wash:       #F1F5FA;
  --paper:      #FFFFFF;
  --rule:       #D6DEE9;
  --rule-soft:  #E7ECF3;

  /* Signals */
  --seal:       #1D4ED8;
  --seal-dark:  #1739A8;
  --seal-wash:  #EBF1FE;
  --stamp:      #B91C1C;
  --stamp-wash: #FDECEC;
  --verify:     #047857;
  --verify-wash:#E7F5EF;
  --amber:      #B45309;
  --amber-wash: #FDF3E4;

  /* Type */
  --display: 'Archivo', 'Helvetica Neue', Arial, sans-serif;
  --body:    'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --mono:    'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

  /* Scale */
  --step--1: 0.8125rem;
  --step-0:  0.9375rem;
  --step-1:  1.0625rem;
  --step-2:  1.25rem;
  --step-3:  1.5rem;
  --step-4:  1.875rem;
  --step-5:  2.375rem;

  /* Space */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;

  --wrap: 1200px;
  --radius: 3px;
  --shadow: 0 1px 2px rgba(16, 35, 63, .06), 0 1px 3px rgba(16, 35, 63, .04);
  --shadow-lift: 0 4px 12px rgba(16, 35, 63, .09);
}

/* ==========================================================================
   2. RESET
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
  margin: 0;
  background: var(--wash);
  color: var(--ink);
  font-family: var(--body);
  font-size: var(--step-0);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--seal); text-decoration: none; }
a:hover { color: var(--seal-dark); text-decoration: underline; text-underline-offset: 2px; }

:focus-visible {
  outline: 2px solid var(--seal);
  outline-offset: 2px;
  border-radius: 2px;
}

/* Typography guard.
   Elementor's global kit stylesheet loads after this file and targets
   .elementor-kit-N, which outranks bare element selectors. These rules restate
   the theme's defaults one specificity step higher so the site keeps its own
   typography when Elementor is active. Users can still override per element in
   Elementor, because those rules are keyed to the element ID and rank higher
   again. */
body.agj-theme {
  font-family: var(--body);
  font-size: var(--step-0);
  line-height: 1.65;
  color: var(--ink);
}
body.agj-theme h1,
body.agj-theme h2,
body.agj-theme h3,
body.agj-theme h4,
body.agj-theme h5,
body.agj-theme h6 {
  font-family: var(--display);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ink);
}
body.agj-theme h1 { font-size: var(--step-5); }
body.agj-theme h2 { font-size: var(--step-4); }
body.agj-theme h3 { font-size: var(--step-2); }
body.agj-theme h4 { font-size: var(--step-1); }
body.agj-theme a { color: var(--seal); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--display);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0 0 var(--sp-3);
}

h1 { font-size: var(--step-5); }
h2 { font-size: var(--step-4); }
h3 { font-size: var(--step-2); }
h4 { font-size: var(--step-1); }

p { margin: 0 0 var(--sp-4); }
ul, ol { margin: 0 0 var(--sp-4); padding-left: 1.35rem; }
li { margin-bottom: var(--sp-2); }

hr { border: 0; border-top: 1px solid var(--rule); margin: var(--sp-6) 0; }

.screen-reader-text {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--ink); color: #fff; padding: var(--sp-3) var(--sp-4);
  font-weight: 600;
}
.skip-link:focus { left: 0; }

/* ==========================================================================
   3. LAYOUT
   ========================================================================== */

.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 var(--sp-4); }

.layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--sp-6);
  align-items: start;
  padding: var(--sp-6) 0 var(--sp-8);
}
.layout--full { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 960px) {
  .layout { grid-template-columns: minmax(0, 1fr); }
}

.card {
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

/* ==========================================================================
   4. TOP STRIP
   ========================================================================== */

.strip {
  background: var(--ink);
  color: #C7D5E8;
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.02em;
}
.strip__in {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--sp-4); min-height: 34px; flex-wrap: wrap;
}
.strip__date { text-transform: uppercase; }
.strip__meta { display: flex; gap: var(--sp-5); flex-wrap: wrap; }
.strip__meta span { display: inline-flex; align-items: center; gap: 6px; }
.strip__dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #34D399; display: inline-block;
}

/* ==========================================================================
   5. MASTHEAD
   ========================================================================== */

.masthead { background: var(--paper); border-bottom: 1px solid var(--rule); }

.masthead__in {
  display: flex; align-items: center; gap: var(--sp-5);
  padding: var(--sp-4) 0;
}

.brand { display: flex; align-items: center; gap: var(--sp-3); flex-shrink: 0; }
.brand__mark {
  width: 46px; height: 46px; flex-shrink: 0;
  display: block; border-radius: 3px; overflow: hidden;
  line-height: 0;
}
.brand__mark:hover { text-decoration: none; }
.brand__img {
  width: 100%; height: 100%;
  object-fit: contain; display: block;
}
/* Knocked-out mark for dark surfaces — no tile, just the white briefcase. */
.brand__mark--light {
  border-radius: 0; overflow: visible;
  width: 44px; height: 44px;
}
.brand__text { display: flex; flex-direction: column; line-height: 1.1; }
.brand__name {
  font-family: var(--display); font-weight: 700; font-size: 1.2rem;
  letter-spacing: -0.03em; color: var(--ink);
}
.brand__name:hover { text-decoration: none; }
.brand__tag {
  font-family: var(--mono); font-size: 0.6875rem; color: var(--ink-mute);
  text-transform: uppercase; letter-spacing: 0.08em; margin-top: 2px;
}

.masthead__search { flex: 1; max-width: 420px; margin-left: auto; }
.searchform { display: flex; }
.searchform input[type="search"] {
  flex: 1; min-width: 0;
  border: 1px solid var(--rule); border-right: 0;
  border-radius: var(--radius) 0 0 var(--radius);
  padding: 10px var(--sp-3);
  font-family: var(--body); font-size: var(--step--1);
  color: var(--ink); background: var(--wash);
}
.searchform input[type="search"]:focus { background: #fff; outline-offset: 0; }
.searchform button {
  border: 0; background: var(--ink); color: #fff;
  padding: 0 var(--sp-4); cursor: pointer;
  border-radius: 0 var(--radius) var(--radius) 0;
  font-family: var(--display); font-weight: 600; font-size: var(--step--1);
}
.searchform button:hover { background: var(--seal); }

.masthead__cta {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--verify-wash); color: var(--verify);
  border: 1px solid #B6E0CE;
  padding: 9px var(--sp-4); border-radius: var(--radius);
  font-weight: 600; font-size: var(--step--1); white-space: nowrap;
}
.masthead__cta:hover { background: var(--verify); color: #fff; text-decoration: none; border-color: var(--verify); }

.nav-toggle {
  display: none; margin-left: auto;
  background: var(--wash); border: 1px solid var(--rule);
  color: var(--ink); padding: 9px var(--sp-3);
  font-family: var(--display); font-weight: 600; font-size: var(--step--1);
  border-radius: var(--radius); cursor: pointer;
}

@media (max-width: 860px) {
  .masthead__search { order: 3; max-width: none; flex-basis: 100%; margin-left: 0; }
  .masthead__cta { display: none; }
  .nav-toggle { display: block; }
  .masthead__in { flex-wrap: wrap; }
}

/* ==========================================================================
   6. PRIMARY NAV  — the 12 hubs
   ========================================================================== */

.hubnav { background: var(--ink); position: relative; }
.hubnav__list {
  display: flex; list-style: none; margin: 0; padding: 0;
  /* Wrap to a second row rather than clipping the last hub. All 12 labels sit
     right at the edge of a 1200px container, so this is load-bearing. */
  flex-wrap: wrap;
  overflow-x: auto; scrollbar-width: none;
}
.hubnav__list::-webkit-scrollbar { display: none; }
.hubnav__list > li { margin: 0; flex-shrink: 0; }
.hubnav__list > li > a {
  display: block; padding: 12px 13px;
  color: #D6E1F0; font-size: 0.8125rem; font-weight: 500;
  letter-spacing: -0.005em;
  white-space: nowrap; border-right: 1px solid rgba(255,255,255,.07);
  position: relative;
}
/* Slightly roomier once there is space to spare. */
@media (min-width: 1240px) {
  .hubnav__list > li > a { padding: 13px var(--sp-4); font-size: var(--step--1); }
}
.hubnav__list > li > a:hover,
.hubnav__list > li.current-menu-item > a,
.hubnav__list > li.current-cat > a {
  background: rgba(255,255,255,.09); color: #fff; text-decoration: none;
}
.hubnav__list > li.current-menu-item > a::after,
.hubnav__list > li.current-cat > a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0;
  height: 3px; background: var(--stamp);
}

@media (max-width: 860px) {
  .hubnav { display: none; }
  .hubnav.is-open { display: block; }
  .hubnav__list { flex-direction: column; flex-wrap: nowrap; overflow: visible; }
  .hubnav__list > li { flex-shrink: 1; }
  .hubnav__list > li > a { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.07); }
}

/* ==========================================================================
   7. SECTION FURNITURE
   ========================================================================== */

.sec { margin-bottom: var(--sp-7); }

.sec__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--sp-4); margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-3); border-bottom: 2px solid var(--ink);
}
.sec__title {
  font-family: var(--display); font-size: var(--step-3); font-weight: 700;
  letter-spacing: -0.02em; margin: 0; line-height: 1.15;
}
.sec__note { font-size: var(--step--1); color: var(--ink-mute); margin: 4px 0 0; }
.sec__link {
  font-family: var(--mono); font-size: 0.75rem; text-transform: uppercase;
  letter-spacing: 0.06em; font-weight: 500; white-space: nowrap;
}

.eyebrow {
  font-family: var(--mono); font-size: 0.6875rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.11em;
  color: var(--ink-mute); display: block; margin-bottom: var(--sp-2);
}

/* ==========================================================================
   8. SIGNATURE — DEADLINE BOARD (hero)
   ========================================================================== */

.board {
  background: var(--ink);
  color: #fff;
  padding: var(--sp-6) 0 var(--sp-7);
  position: relative;
  overflow: hidden;
}
.board::before {
  content: ''; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px);
  background-size: 100% 28px;
  pointer-events: none;
}
.board__head { position: relative; margin-bottom: var(--sp-5); }
.board__eyebrow {
  font-family: var(--mono); font-size: 0.6875rem; text-transform: uppercase;
  letter-spacing: 0.14em; color: var(--stamp);
  display: flex; align-items: center; gap: var(--sp-2); margin-bottom: var(--sp-2);
}
.board__eyebrow::after {
  content: ''; height: 1px; flex: 1; background: rgba(255,255,255,.14);
}
.board__title {
  font-family: var(--display); font-size: clamp(1.6rem, 4vw, 2.3rem);
  font-weight: 700; letter-spacing: -0.03em; color: #fff; margin: 0 0 6px;
}
.board__sub { color: #A9BDD6; font-size: var(--step-0); margin: 0; max-width: 62ch; }

.board__grid {
  position: relative;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3);
}
@media (max-width: 900px) { .board__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .board__grid { grid-template-columns: 1fr; } }

.stamp-card {
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: var(--radius);
  padding: var(--sp-4);
  display: flex; flex-direction: column; gap: var(--sp-3);
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.stamp-card:hover {
  background: rgba(255,255,255,.095);
  border-color: rgba(255,255,255,.26);
  transform: translateY(-2px);
}
.stamp-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); }
.stamp-card__org {
  font-family: var(--mono); font-size: 0.6875rem; text-transform: uppercase;
  letter-spacing: 0.07em; color: #8FA9C7;
}
.stamp-card__title {
  font-family: var(--display); font-size: var(--step-0); font-weight: 600;
  line-height: 1.35; margin: 0; letter-spacing: -0.01em;
}
.stamp-card__title a { color: #fff; }
.stamp-card__title a:hover { color: #fff; text-decoration: underline; }
.stamp-card__foot {
  margin-top: auto; padding-top: var(--sp-3);
  border-top: 1px dashed rgba(255,255,255,.16);
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2);
}
.stamp-card__vac { font-family: var(--mono); font-size: 0.75rem; color: #A9BDD6; }

/* the stamp itself — signature element */
.stamp {
  font-family: var(--mono); font-weight: 600;
  font-size: 0.6875rem; line-height: 1.1; text-transform: uppercase;
  letter-spacing: 0.05em; text-align: center;
  border: 1.5px solid currentColor; border-radius: 2px;
  padding: 5px 7px; flex-shrink: 0;
  display: inline-flex; flex-direction: column; gap: 2px;
}
.stamp b { font-size: 0.9375rem; letter-spacing: -0.01em; font-weight: 700; }
.stamp--urgent  { color: #FCA5A5; }
.stamp--today   { color: #FCA5A5; background: rgba(185,28,28,.28); }
.stamp--soon    { color: #FCD34D; }
.stamp--open    { color: #6EE7B7; }
.stamp--closed  { color: #94A3B8; }

/* light-background stamp variant, used in register rows */
.stamp--light.stamp--urgent { color: var(--stamp); background: var(--stamp-wash); }
.stamp--light.stamp--today  { color: #fff; background: var(--stamp); border-color: var(--stamp); }
.stamp--light.stamp--soon   { color: var(--amber); background: var(--amber-wash); }
.stamp--light.stamp--open   { color: var(--verify); background: var(--verify-wash); }
.stamp--light.stamp--closed { color: var(--ink-mute); background: var(--wash); }

/* ==========================================================================
   9. SIGNATURE — THE REGISTER (listing rows)
   ========================================================================== */

.register { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--radius); overflow: hidden; }

.reg-row {
  display: grid;
  grid-template-columns: 46px minmax(0,1fr) auto;
  gap: var(--sp-4);
  align-items: center;
  padding: var(--sp-4);
  border-bottom: 1px solid var(--rule-soft);
  transition: background .14s ease;
}
.reg-row:last-child { border-bottom: 0; }
.reg-row:hover { background: var(--seal-wash); }

.reg-row__seq {
  font-family: var(--mono); font-size: 0.75rem; font-weight: 500;
  color: var(--ink-mute); text-align: center;
  border-right: 1px solid var(--rule-soft); padding-right: var(--sp-3);
  align-self: stretch; display: flex; align-items: center; justify-content: center;
}

.reg-row__body { min-width: 0; }
.reg-row__org {
  font-family: var(--mono); font-size: 0.6875rem; text-transform: uppercase;
  letter-spacing: 0.07em; color: var(--seal); font-weight: 500;
  margin-bottom: 3px; display: block;
}
.reg-row__title {
  font-family: var(--display); font-size: var(--step-1); font-weight: 600;
  line-height: 1.35; margin: 0 0 6px; letter-spacing: -0.015em;
}
.reg-row__title a { color: var(--ink); }
.reg-row__title a:hover { color: var(--seal); text-decoration: none; }
.reg-row__facts {
  display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4);
  font-size: var(--step--1); color: var(--ink-mute);
}
.reg-row__facts span { display: inline-flex; align-items: center; gap: 5px; }
.reg-row__facts b { color: var(--ink-soft); font-weight: 600; }
.reg-row__end { display: flex; flex-direction: column; align-items: flex-end; gap: var(--sp-2); }

@media (max-width: 620px) {
  .reg-row { grid-template-columns: minmax(0,1fr) auto; gap: var(--sp-3); padding: var(--sp-3); }
  .reg-row__seq { display: none; }
  .reg-row__title { font-size: var(--step-0); }
}

/* badges */
.badge {
  font-family: var(--mono); font-size: 0.625rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.07em;
  padding: 2px 6px; border-radius: 2px; white-space: nowrap;
}
.badge--new    { background: var(--stamp); color: #fff; }
.badge--hot    { background: var(--amber-wash); color: var(--amber); border: 1px solid #F0D6A8; }
.badge--walkin { background: var(--seal-wash); color: var(--seal); border: 1px solid #C3D6FA; }

/* ==========================================================================
   10. HUB GRID
   ========================================================================== */

.hubgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-3); }
@media (max-width: 900px) { .hubgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .hubgrid { grid-template-columns: 1fr; } }

.hub {
  background: var(--paper); border: 1px solid var(--rule);
  border-radius: var(--radius); padding: var(--sp-4);
  display: flex; flex-direction: column; gap: 6px;
  border-left: 3px solid var(--seal);
  transition: box-shadow .18s ease, transform .18s ease, border-left-color .18s ease;
}
.hub:hover { box-shadow: var(--shadow-lift); transform: translateY(-2px); text-decoration: none; }
.hub__name {
  font-family: var(--display); font-weight: 700; font-size: var(--step-1);
  color: var(--ink); letter-spacing: -0.015em; line-height: 1.25;
}
.hub__desc { font-size: var(--step--1); color: var(--ink-mute); line-height: 1.5; }
.hub__count {
  font-family: var(--mono); font-size: 0.6875rem; text-transform: uppercase;
  letter-spacing: 0.07em; color: var(--seal); font-weight: 500; margin-top: auto; padding-top: var(--sp-2);
}
.hub--stamp { border-left-color: var(--stamp); }
.hub--stamp .hub__count { color: var(--stamp); }
.hub--verify { border-left-color: var(--verify); }
.hub--verify .hub__count { color: var(--verify); }
.hub--amber { border-left-color: var(--amber); }
.hub--amber .hub__count { color: var(--amber); }

/* ==========================================================================
   11. TAG CLOUD BROWSE
   ========================================================================== */

.chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.chip {
  background: var(--paper); border: 1px solid var(--rule);
  border-radius: 2px; padding: 7px var(--sp-3);
  font-size: var(--step--1); color: var(--ink-soft); font-weight: 500;
  display: inline-flex; align-items: center; gap: var(--sp-2);
}
.chip:hover { border-color: var(--seal); color: var(--seal); background: var(--seal-wash); text-decoration: none; }
.chip__n { font-family: var(--mono); font-size: 0.6875rem; color: var(--ink-mute); }

/* ==========================================================================
   12. SIDEBAR
   ========================================================================== */

.side { display: flex; flex-direction: column; gap: var(--sp-5); }

.panel { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--radius); }
.panel__head {
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--rule);
  background: var(--wash);
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
}
.panel__title {
  font-family: var(--display); font-size: var(--step-0); font-weight: 700;
  margin: 0; letter-spacing: -0.01em; text-transform: uppercase;
  letter-spacing: 0.03em;
}
.panel__body { padding: var(--sp-4); }
.panel__body > :last-child { margin-bottom: 0; }

.mini { list-style: none; margin: 0; padding: 0; }
.mini li { margin: 0; border-bottom: 1px dashed var(--rule-soft); }
.mini li:last-child { border-bottom: 0; }
.mini a {
  display: block; padding: 10px var(--sp-4);
  font-size: var(--step--1); color: var(--ink-soft); line-height: 1.45;
}
.mini a:hover { background: var(--seal-wash); color: var(--seal); text-decoration: none; }
.mini__date {
  display: block; font-family: var(--mono); font-size: 0.6875rem;
  color: var(--ink-mute); margin-top: 3px;
}

.alerts { background: var(--ink); color: #fff; border-radius: var(--radius); padding: var(--sp-5); }
.alerts h3 { color: #fff; font-size: var(--step-2); margin-bottom: var(--sp-2); }
.alerts p { color: #A9BDD6; font-size: var(--step--1); margin-bottom: var(--sp-4); }
.alerts__row { display: flex; flex-direction: column; gap: var(--sp-2); }
.btn-follow {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px var(--sp-4); border-radius: var(--radius);
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
  color: #fff; font-weight: 600; font-size: var(--step--1);
}
.btn-follow:hover { background: rgba(255,255,255,.16); color: #fff; text-decoration: none; }
.btn-follow span:last-child { font-family: var(--mono); font-size: 0.6875rem; color: #8FA9C7; }

/* ==========================================================================
   13. SINGLE POST — the notification template
   ========================================================================== */

.crumbs {
  font-family: var(--mono); font-size: 0.6875rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--ink-mute);
  padding: var(--sp-4) 0 0; display: flex; flex-wrap: wrap; gap: 6px;
}
.crumbs a { color: var(--ink-mute); }
.crumbs a:hover { color: var(--seal); }
.crumbs span[aria-current] { color: var(--ink); font-weight: 500; }

.entry { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--radius); padding: var(--sp-6); }
@media (max-width: 620px) { .entry { padding: var(--sp-4); } }

.entry__cats { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-3); }
.entry__cat {
  font-family: var(--mono); font-size: 0.625rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em;
  background: var(--ink); color: #fff; padding: 3px 8px; border-radius: 2px;
}
.entry__cat:hover { background: var(--seal); color: #fff; text-decoration: none; }

.entry .entry__title { font-family: var(--display); font-weight: 700; color: var(--ink); font-size: clamp(1.5rem, 3.6vw, 2.1rem); margin-bottom: var(--sp-3); line-height: 1.18; }

.entry__byline {
  display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5);
  font-family: var(--mono); font-size: 0.75rem; color: var(--ink-mute);
  padding-bottom: var(--sp-4); margin-bottom: var(--sp-5);
  border-bottom: 1px solid var(--rule);
}
.entry__byline b { color: var(--ink-soft); font-weight: 500; }

.entry .entry__content,
.entry .entry__content p,
.entry .entry__content li { font-size: var(--step-1); line-height: 1.7; color: var(--ink); }
.entry .entry__content { font-family: var(--body); }
.entry .entry__content h2 {
  font-family: var(--display); font-weight: 700; line-height: 1.2; color: var(--ink);
  font-size: var(--step-3); margin: var(--sp-7) 0 var(--sp-3);
  padding-bottom: var(--sp-2); border-bottom: 2px solid var(--rule);
}
.entry .entry__content h3 { font-family: var(--display); font-weight: 700; color: var(--ink); font-size: var(--step-2); margin: var(--sp-6) 0 var(--sp-3); }
.entry .entry__content h4 { font-family: var(--display); font-weight: 700; color: var(--ink); font-size: var(--step-1); margin: var(--sp-5) 0 var(--sp-2); }
.entry .entry__content > :first-child { margin-top: 0; }
.entry .entry__content h2:first-child,
.entry .entry__content h3:first-child { margin-top: 0; }
.entry .entry__content a { color: var(--seal); text-decoration: underline; text-underline-offset: 2px; }
.entry .entry__content ul,
.entry .entry__content ol { margin: 0 0 var(--sp-4); padding-left: 1.35rem; }
.entry .entry__content li { margin-bottom: var(--sp-2); }
.entry .entry__content strong { font-weight: 600; }
.entry__content img { border-radius: var(--radius); margin: var(--sp-5) 0; }
.entry__content blockquote {
  margin: var(--sp-5) 0; padding: var(--sp-4) var(--sp-5);
  background: var(--wash); border-left: 3px solid var(--seal); border-radius: 0 var(--radius) var(--radius) 0;
}
.entry__content blockquote > :last-child { margin-bottom: 0; }

/* data tables */
.entry__content table, .dtable {
  width: 100%; border-collapse: collapse; margin: var(--sp-5) 0;
  font-size: var(--step-0); border: 1px solid var(--rule);
}
.entry__content th, .dtable th {
  background: var(--ink); color: #fff; text-align: left;
  font-family: var(--display); font-weight: 600; font-size: var(--step--1);
  text-transform: uppercase; letter-spacing: 0.05em;
  padding: 10px var(--sp-3); border: 1px solid rgba(255,255,255,.12);
}
.entry__content td, .dtable td {
  padding: 10px var(--sp-3); border: 1px solid var(--rule); vertical-align: top;
}
.entry__content tbody tr:nth-child(even), .dtable tbody tr:nth-child(even) { background: var(--wash); }

.tablewrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: var(--sp-5) 0; }
.tablewrap table, .tablewrap .dtable { margin: 0; min-width: 480px; }

/* recruitment summary table — auto-built from post fields */
.summary { margin: 0 0 var(--sp-5); }
.summary__cap {
  font-family: var(--display); font-weight: 700; font-size: var(--step-2);
  padding: var(--sp-3) var(--sp-4); background: var(--ink); color: #fff;
  border-radius: var(--radius) var(--radius) 0 0; letter-spacing: -0.01em;
}
.summary table { margin: 0; border-top: 0; border-radius: 0 0 var(--radius) var(--radius); }
.summary th {
  background: var(--wash); color: var(--ink); width: 38%;
  font-family: var(--body); font-weight: 600; text-transform: none;
  letter-spacing: 0; border: 1px solid var(--rule); font-size: var(--step-0);
}
.summary td { font-weight: 500; }
.summary .is-date { font-family: var(--mono); color: var(--stamp); font-weight: 600; }

/* important links block */
.links-block { margin: var(--sp-6) 0; }
.links-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-3); }
@media (max-width: 560px) { .links-grid { grid-template-columns: 1fr; } }
.linkbtn {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  padding: var(--sp-4); border-radius: var(--radius);
  border: 1px solid var(--rule); background: var(--paper);
  font-weight: 600; font-size: var(--step-0); color: var(--ink);
}
.linkbtn:hover { border-color: var(--seal); background: var(--seal-wash); text-decoration: none; }
.linkbtn__go { font-family: var(--mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.07em; color: var(--seal); }
.linkbtn--primary { background: var(--seal); border-color: var(--seal); color: #fff; }
.linkbtn--primary:hover { background: var(--seal-dark); border-color: var(--seal-dark); color: #fff; }
.linkbtn--primary .linkbtn__go { color: rgba(255,255,255,.75); }

/* notice / disclaimer */
.notice {
  border: 1px solid #F0D6A8; background: var(--amber-wash);
  border-left: 3px solid var(--amber);
  padding: var(--sp-4); border-radius: 0 var(--radius) var(--radius) 0;
  font-size: var(--step--1); color: #6B3F0A; margin: var(--sp-5) 0;
}
.notice strong { color: var(--amber); }
.notice > :last-child { margin-bottom: 0; }

.closed-banner {
  background: var(--stamp-wash); border: 1px solid #F3C4C4;
  border-left: 3px solid var(--stamp);
  padding: var(--sp-4); border-radius: 0 var(--radius) var(--radius) 0;
  margin: 0 0 var(--sp-5); font-size: var(--step-0); color: #7F1D1D;
}
.closed-banner > :last-child { margin-bottom: 0; }

/* FAQ */
.faq { margin: var(--sp-6) 0; }
.faq__item { border: 1px solid var(--rule); border-radius: var(--radius); margin-bottom: var(--sp-2); background: var(--paper); }
.faq__q {
  font-family: var(--display); font-weight: 600; font-size: var(--step-1);
  padding: var(--sp-4); cursor: pointer; list-style: none;
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q::after { content: '+'; font-family: var(--mono); font-size: 1.25rem; color: var(--seal); flex-shrink: 0; }
details[open] .faq__q::after { content: '\2212'; }
.faq__a { padding: 0 var(--sp-4) var(--sp-4); font-size: var(--step-0); color: var(--ink-soft); }
.faq__a > :last-child { margin-bottom: 0; }

/* related */
.related { margin-top: var(--sp-7); }

/* ==========================================================================
   14. ARCHIVE HEADER
   ========================================================================== */

.archead {
  background: var(--paper); border: 1px solid var(--rule);
  border-radius: var(--radius); padding: var(--sp-6);
  margin-bottom: var(--sp-5);
  border-top: 3px solid var(--ink);
}
@media (max-width: 620px) { .archead { padding: var(--sp-4); } }
.archead__title { font-size: clamp(1.5rem, 3.6vw, 2.1rem); margin-bottom: var(--sp-3); }
.archead__desc { font-size: var(--step-1); color: var(--ink-soft); max-width: 78ch; }
.archead__desc > :last-child { margin-bottom: 0; }
.archead__stats {
  display: flex; flex-wrap: wrap; gap: var(--sp-5);
  margin-top: var(--sp-4); padding-top: var(--sp-4); border-top: 1px solid var(--rule);
  font-family: var(--mono); font-size: 0.75rem; color: var(--ink-mute);
}
.archead__stats b { color: var(--ink); font-size: var(--step-1); font-weight: 700; display: block; }

/* ==========================================================================
   15. PAGINATION
   ========================================================================== */

.pagination { margin-top: var(--sp-6); }
.nav-links { display: flex; flex-wrap: wrap; gap: var(--sp-2); justify-content: center; }
.page-numbers {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 var(--sp-3);
  background: var(--paper); border: 1px solid var(--rule);
  border-radius: var(--radius); font-family: var(--mono); font-size: var(--step--1);
  color: var(--ink-soft); font-weight: 500;
}
.page-numbers:hover { border-color: var(--seal); color: var(--seal); text-decoration: none; }
.page-numbers.current { background: var(--ink); border-color: var(--ink); color: #fff; }
.page-numbers.dots { border-color: transparent; background: transparent; }

/* ==========================================================================
   16. FOOTER
   ========================================================================== */

.foot { background: var(--ink); color: #A9BDD6; margin-top: var(--sp-8); }
.foot__top { padding: var(--sp-7) 0 var(--sp-6); }
.foot__grid { display: grid; grid-template-columns: 1.6fr repeat(3, 1fr); gap: var(--sp-6); }
@media (max-width: 900px) { .foot__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .foot__grid { grid-template-columns: 1fr; } }

.foot h4 {
  color: #fff; font-size: var(--step-0); text-transform: uppercase;
  letter-spacing: 0.07em; margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-2); border-bottom: 1px solid rgba(255,255,255,.14);
}
.foot p { font-size: var(--step--1); line-height: 1.65; }
.foot ul { list-style: none; margin: 0; padding: 0; }
.foot li { margin-bottom: var(--sp-2); }
.foot a { color: #A9BDD6; font-size: var(--step--1); }
.foot a:hover { color: #fff; }
.foot__brand { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-4); }
.foot__brand .brand__mark { background: transparent; }
.foot__brand .brand__name { color: #fff; }

.foot__disclaimer {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: var(--sp-5) 0; font-size: 0.75rem; line-height: 1.7; color: #8FA9C7;
}
.foot__bar {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: var(--sp-4) 0; display: flex; flex-wrap: wrap; gap: var(--sp-4);
  align-items: center; justify-content: space-between;
  font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.03em;
}
.foot__bar ul { display: flex; flex-wrap: wrap; gap: var(--sp-4); }
.foot__bar li { margin: 0; }

/* ==========================================================================
   17. UTILITIES / WP CORE
   ========================================================================== */

.alignleft  { float: left;  margin: 0 var(--sp-5) var(--sp-4) 0; }
.alignright { float: right; margin: 0 0 var(--sp-4) var(--sp-5); }
.aligncenter { display: block; margin: var(--sp-5) auto; }
.wp-caption { max-width: 100%; }
.wp-caption-text, .wp-block-image figcaption {
  font-size: var(--step--1); color: var(--ink-mute); text-align: center; margin-top: var(--sp-2);
}
.sticky .reg-row { background: var(--amber-wash); }

.empty {
  background: var(--paper); border: 1px dashed var(--rule);
  border-radius: var(--radius); padding: var(--sp-7) var(--sp-5); text-align: center;
}
.empty h2 { font-size: var(--step-2); }
.empty p { color: var(--ink-mute); max-width: 52ch; margin-left: auto; margin-right: auto; }

.btn {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  background: var(--seal); color: #fff; border: 1px solid var(--seal);
  padding: 11px var(--sp-5); border-radius: var(--radius);
  font-family: var(--display); font-weight: 600; font-size: var(--step-0);
}
.btn:hover { background: var(--seal-dark); border-color: var(--seal-dark); color: #fff; text-decoration: none; }
.btn--ghost { background: transparent; color: var(--seal); }
.btn--ghost:hover { background: var(--seal-wash); color: var(--seal-dark); }

/* print */
@media print {
  .strip, .hubnav, .masthead__search, .masthead__cta, .side, .foot__top, .board { display: none; }
  body { background: #fff; }
  .entry { border: 0; padding: 0; }
}

/* ==========================================================================
   18. ELEMENTOR COMPATIBILITY
   ========================================================================== */

/* Builder pages use the same .agj-prose > .entry > .entry__content wrapper as
   block-editor pages, so almost nothing is needed here. The rules below only
   raise specificity above Elementor's global kit, which loads after the theme
   stylesheet and would otherwise win on ties.

   Every selector is 0,2,x or higher and targets plain elements rather than
   Elementor classes, so it works regardless of Elementor's internal DOM —
   including when "optimized DOM output" removes .elementor-widget-container. */

/* Elementor wraps content in section/column/widget layers, each of which can
   carry its own padding. On an imported page that stacks up and fights the
   card's own padding, so zero it out. A section the user has deliberately
   padded overrides this, because Elementor keys those rules to the element ID. */
.agj-builder-page .entry__content > .elementor,
.agj-builder-page .elementor-section-boxed > .elementor-container { max-width: none; }

/* Zero the padding Elementor's own layers add. The card already supplies it, so
   leaving these in place double-pads the content and changes the text measure —
   which showed up as a 50px height difference against the block-editor path on
   tablet and mobile. Covers both the legacy section/column structure and the
   newer flex container. */
.agj-builder-page .entry__content .elementor-section > .elementor-container,
.agj-builder-page .entry__content .elementor-widget-wrap.elementor-element-populated,
.agj-builder-page .entry__content .e-con,
.agj-builder-page .entry__content .e-con-inner {
  padding-inline: 0;
  padding-left: 0;
  padding-right: 0;
}
.agj-builder-page .entry__content .e-con { --container-max-width: none; }

/* Trailing and leading margins, so the card padding is exactly the card padding
   in both editors. */
.agj-builder-page .entry__content > .elementor > :first-child { margin-top: 0; }
.agj-builder-page .entry__content .elementor-widget:last-child { margin-bottom: 0; }
.agj-builder-page .entry__content .elementor-widget-text-editor > :last-child,
.agj-builder-page .entry__content .elementor-widget-container > :last-child { margin-bottom: 0; }
.entry .entry__content > :last-child { margin-bottom: 0; }

/* First and last child spacing, so the card padding is not doubled. */
.agj-builder-page .entry__content > :first-child { margin-top: 0; }
.agj-builder-page .entry__content h2:first-child,
.agj-builder-page .entry__content h3:first-child { margin-top: 0; }

/* Wide tables inside builder content must scroll rather than break the card.
   The the_content table wrapper does not run on Elementor output, so this is the
   safety net. */
/* Applies to both editors: a wide table scrolls inside the card rather than
   pushing the layout out. The the_content wrapper does not run on Elementor
   output, so this is the safety net for both paths. */
.entry .entry__content table { max-width: 100%; }
@media (max-width: 699px) {
  .entry .entry__content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* Media can never exceed the card. */
.agj-builder-page .entry__content img,
.agj-builder-page .entry__content iframe,
.agj-builder-page .entry__content video { max-width: 100%; height: auto; }

/* Escape hatch: add the CSS class "agj-no-card" to your outermost Elementor
   container (Advanced > CSS Classes) on a page you have designed yourself.
   Strips the card, the padding and the reading measure. */
.agj-prose:has(.agj-no-card) { max-width: none; }
.agj-builder-page:has(.agj-no-card) {
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
.agj-builder-page:has(.agj-no-card) .entry__title { display: none; }

/* Theme sections used inside a Govt Jobs widget shouldn't add outer margin —
   Elementor's own spacing controls handle that. */
.elementor-widget-agj-job-listings .sec,
.elementor-widget-agj-hub-grid .sec { margin-bottom: 0; }

/* The deadline board is normally a full-bleed band. Inside an Elementor
   container it becomes a self-contained panel. */
.elementor-widget-agj-deadline-board .board {
  padding: var(--sp-5);
  border-radius: var(--radius);
}
.elementor-widget-agj-deadline-board .board .wrap {
  max-width: none;
  padding: 0;
}

/* Elementor zeroes heading margins globally; restore them for theme prose. */
.elementor-page .entry__content h2 { margin-top: var(--sp-7); }
.elementor-page .entry__content h3,
.elementor-page .entry__content h4 { margin-top: var(--sp-6); }
.elementor-page .entry__content > :first-child { margin-top: 0; }

/* Elementor Pro header templates sit where the theme header would. */
.elementor-location-header { position: relative; z-index: 20; }

/* Explicit full-width template only. */
.page-template-template-full-width .wrap { max-width: none; padding: 0; }

/* ==========================================================================
   19. NAVIGATION MENU WIDGET
   ========================================================================== */

.agj-menu__list {
  display: flex; flex-wrap: wrap; list-style: none;
  margin: 0; padding: 0; align-items: center;
}
.agj-menu { display: flex; }
.agj-menu__list > li { margin: 0; }
.agj-menu__list a { display: block; text-decoration: none; }
.agj-menu__list a:hover { text-decoration: none; }

/* Hub bar — matches the site's own navigation. */
.agj-menu--bar { background: var(--ink); width: 100%; }
.agj-menu--bar .agj-menu__list > li > a {
  padding: 12px 13px; color: #D6E1F0;
  font-size: 0.8125rem; font-weight: 500; white-space: nowrap;
  border-right: 1px solid rgba(255,255,255,.07);
}
.agj-menu--bar .agj-menu__list > li > a:hover,
.agj-menu--bar .agj-menu__list > li.current-menu-item > a {
  background: rgba(255,255,255,.09); color: #fff;
}
.agj-menu--bar .agj-menu__list > li.current-menu-item > a { box-shadow: inset 0 -3px 0 var(--stamp); }

/* Inline links. */
.agj-menu--inline .agj-menu__list { gap: var(--sp-4); }
.agj-menu--inline .agj-menu__list > li > a {
  color: var(--ink-soft); font-size: var(--step-0); font-weight: 500; padding: 4px 0;
}
.agj-menu--inline .agj-menu__list > li > a:hover { color: var(--seal); }

/* Stacked list. */
.agj-menu--stack { width: 100%; }
.agj-menu--stack .agj-menu__list { flex-direction: column; align-items: stretch; width: 100%; }
.agj-menu--stack .agj-menu__list > li { border-bottom: 1px dashed var(--rule-soft); }
.agj-menu--stack .agj-menu__list > li:last-child { border-bottom: 0; }
.agj-menu--stack .agj-menu__list > li > a {
  padding: 10px 0; color: var(--ink-soft); font-size: var(--step--1);
}
.agj-menu--stack .agj-menu__list > li > a:hover { color: var(--seal); }

/* Chips. */
.agj-menu--chips .agj-menu__list { gap: var(--sp-2); }
.agj-menu--chips .agj-menu__list > li > a {
  background: var(--paper); border: 1px solid var(--rule); border-radius: 2px;
  padding: 7px var(--sp-3); font-size: var(--step--1);
  color: var(--ink-soft); font-weight: 500;
}
.agj-menu--chips .agj-menu__list > li > a:hover {
  border-color: var(--seal); color: var(--seal); background: var(--seal-wash);
}

/* Sub-menus: kept simple and always visible in stacked/chip layouts. */
.agj-menu__list .sub-menu {
  list-style: none; margin: 0; padding: 0 0 0 var(--sp-4);
}
.agj-menu--bar .agj-menu__list .sub-menu,
.agj-menu--inline .agj-menu__list .sub-menu { display: none; }

/* ==========================================================================
   20. HUB SOURCE BANNER
   ========================================================================== */

/* Shown only to logged-in editors, at the top of a hub content page. Visitors
   are redirected to the hub and never see this URL. */
.agj-source-banner {
  background: var(--amber-wash);
  border: 1px solid #F0D6A8;
  border-left: 3px solid var(--amber);
  border-radius: 0 var(--radius) var(--radius) 0;
  padding: var(--sp-4) var(--sp-5);
  margin: var(--sp-5) 0 0;
}
.agj-source-banner p { margin: 0 0 var(--sp-3); font-size: var(--step--1); color: #6B3F0A; line-height: 1.6; }
.agj-source-banner p:last-child { margin-bottom: 0; }
.agj-source-banner strong { color: var(--amber); }
.agj-source-banner .btn { background: var(--amber); border-color: var(--amber); font-size: var(--step--1); padding: 9px var(--sp-4); }
.agj-source-banner .btn:hover { background: #92400E; border-color: #92400E; }
