/* Institution Result — frontend styles
   Homepage redesigned to match the single-page BND design system
   -------------------------------------------------------------------- */

.ir-root {
  /* ── GREEN scale ── */
  --g-900      : #033d2d;
  --g-700      : #06694d;
  --g-500      : #0c8a64;
  --g-300      : #34a882;
  /* ── BLUE scale ── */
  --b-700      : #1a4fd6;
  --b-500      : #2563eb;
  /* ── RED scale ── */
  --r-700      : #be1b26;
  --r-500      : #e23b46;
  /* ── Neutrals ── */
  --ink        : #18222f;
  --body       : #3a4654;
  --muted      : #5a6a7d;
  --hint       : #8390a1;
  --placeholder: #7b8799;
  --page       : #f2f5f9;
  --surface    : #ffffff;
  --line       : rgba(24,34,47,0.09);
  --line-soft  : rgba(24,34,47,0.07);
  --shadow-sm  : 0 1px 4px rgba(24,34,47,0.06), 0 1px 2px rgba(24,34,47,0.04);
  --shadow     : 0 12px 26px -16px rgba(24,34,47,0.26), 0 4px 10px rgba(24,34,47,0.06);
  --r          : 15px;
  --r-sm       : 12px;
  --r-lg       : 20px;
  --font       : -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

  font-family : var(--font);
  color       : var(--ink);
  line-height : 1.6;
  background  : var(--page);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ── DIRECTORY ───────────────────────────────────────────────────────── */

.ir-dir-wrap {
  max-width  : 900px;
  margin     : 0 auto;
  padding    : 0 24px 72px;
  box-sizing : border-box;
}

/* ── HERO — matches single-page hero style ── */
.ir-dir-hero {
  padding      : 52px 0 32px;
  text-align   : center;
}
.ir-dir-hero-eyebrow {
  display      : inline-flex;
  align-items  : center;
  gap          : 6px;
  background   : rgba(6,105,77,0.08);
  border       : 1px solid rgba(6,105,77,0.2);
  border-radius: 999px;
  padding      : 5px 14px;
  font-size    : 12px;
  font-weight  : 600;
  color        : var(--g-900);
  letter-spacing:.04em;
  text-transform:uppercase;
  margin-bottom: 16px;
}
.ir-dir-hero-dot {
  width       : 6px;
  height      : 6px;
  background  : var(--g-700);
  border-radius:50%;
  animation   : ir-pulse 2s infinite;
}
@keyframes ir-pulse { 0%,100%{opacity:1} 50%{opacity:.3} }

.ir-dir-title {
  font-size     : clamp(24px, 4vw, 42px);
  font-weight   : 800;
  letter-spacing: -.03em;
  line-height   : 1.1;
  color         : var(--ink);
  margin        : 0 0 10px;
}
.ir-dir-sub {
  font-size  : 15px;
  color      : var(--muted);
  margin     : 0;
  font-weight: 500;
}

/* ── SEARCH + FILTER CARD — elevated card like single-page inst-card ── */
.ir-dir-filter-card {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow   : var(--shadow-sm);
  overflow     : hidden;
  margin-bottom: 20px;
}
.ir-dir-filter-head {
  display    : flex;
  align-items: center;
  gap        : 10px;
  padding    : 15px 22px 14px;
  border-bottom: 1px solid var(--line);
}
.ir-dir-filter-head-title {
  font-size  : 13px;
  font-weight: 700;
  color      : var(--ink);
  letter-spacing:.01em;
}
.ir-dir-filter-body {
  padding: 18px 22px 20px;
}

/* Filter form */
.ir-dir-form {
  display    : flex;
  flex-wrap  : wrap;
  gap        : 10px;
  align-items: center;
}
.ir-dir-search {
  flex         : 1 1 200px;
  min-width    : 0;
  padding      : 11px 14px;
  border       : 1.5px solid var(--line);
  border-radius: var(--r-sm);
  font-family  : var(--font);
  font-size    : 14px;
  color        : var(--ink);
  background   : var(--page);
  box-shadow   : inset 0 1px 2px rgba(24,34,47,.04);
  transition   : border-color .2s, box-shadow .2s;
  box-sizing   : border-box;
}
.ir-dir-search::placeholder { color:var(--placeholder); }
.ir-dir-search:focus {
  outline     : none;
  border-color: rgba(6,105,77,.5);
  box-shadow  : 0 0 0 4px rgba(6,105,77,.1);
  background  : var(--surface);
}
.ir-dir-filter {
  appearance        : none;
  -webkit-appearance: none;
  background        : var(--page) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2306694d' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 11px center;
  border            : 1.5px solid var(--line);
  border-radius     : var(--r-sm);
  font-family       : var(--font);
  font-size         : 13px;
  font-weight       : 600;
  color             : var(--ink);
  padding           : 11px 32px 11px 14px;
  cursor            : pointer;
  transition        : border-color .2s;
  box-sizing        : border-box;
}
.ir-dir-filter:focus {
  outline     : none;
  border-color: rgba(6,105,77,.5);
  box-shadow  : 0 0 0 4px rgba(6,105,77,.1);
}
.ir-dir-btn {
  padding      : 11px 22px;
  background   : linear-gradient(135deg, var(--g-700) 0%, var(--g-500) 100%);
  color        : #fff;
  border       : none;
  border-radius: var(--r-sm);
  font-family  : var(--font);
  font-size    : 13.5px;
  font-weight  : 700;
  cursor       : pointer;
  transition   : opacity .15s, transform .15s;
  box-shadow   : 0 6px 16px -6px rgba(6,105,77,.55);
  white-space  : nowrap;
  display      : inline-flex;
  align-items  : center;
  gap          : 6px;
}
.ir-dir-btn:hover { opacity:.9; transform:translateY(-1px); }
.ir-dir-btn:active { transform:translateY(0); }

.ir-dir-reset {
  font-size      : 13px;
  color          : var(--muted);
  text-decoration: none;
  padding        : 11px 6px;
  white-space    : nowrap;
  font-weight    : 500;
  transition     : color .2s;
}
.ir-dir-reset:hover { color:var(--r-500); }

/* ── COUNT ROW ── */
.ir-dir-count-row {
  display      : flex;
  align-items  : center;
  justify-content: space-between;
  margin-bottom: 14px;
  gap          : 12px;
}
.ir-dir-count { font-size:13px; color:var(--muted); font-weight:500; margin:0; }
.ir-dir-count strong { color:var(--ink); }

/* ── INSTITUTION LIST — card-style like single page ── */
.ir-dir-list {
  list-style   : none;
  margin       : 0;
  padding      : 0;
  display      : flex;
  flex-direction: column;
  gap          : 8px;
}

/* anchor id for scroll */
#ir-dir-results { scroll-margin-top:20px; }

.ir-dir-row {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r);
  box-shadow   : var(--shadow-sm);
  overflow     : hidden;
  transition   : border-color .2s, box-shadow .2s, transform .2s;
  position     : relative;
}
.ir-dir-row::before {
  content   : '';
  position  : absolute;
  top: 0; left:0; right:0;
  height    : 3px;
  background: linear-gradient(90deg, var(--g-700), var(--g-300));
  opacity   : 0;
  transition: opacity .2s;
}
.ir-dir-row:hover {
  border-color: rgba(6,105,77,.3);
  box-shadow  : var(--shadow);
  transform   : translateY(-2px);
}
.ir-dir-row:hover::before { opacity:1; }

.ir-dir-row-link {
  display        : flex;
  align-items    : center;
  gap            : 14px;
  padding        : 16px 20px;
  text-decoration: none;
  color          : var(--ink);
}
.ir-dir-row-link:hover { text-decoration:none; color:var(--ink); }

.ir-dir-row-icon {
  width        : 38px;
  height       : 38px;
  flex-shrink  : 0;
  background   : rgba(6,105,77,.08);
  border       : 1px solid rgba(6,105,77,.18);
  border-radius: 10px;
  display      : flex;
  align-items  : center;
  justify-content: center;
  color        : var(--g-700);
  transition   : background .2s;
}
.ir-dir-row:hover .ir-dir-row-icon {
  background   : rgba(6,105,77,.14);
}

.ir-dir-row-info { flex:1; min-width:0; }
.ir-dir-row-name {
  font-size  : 14px;
  font-weight: 700;
  color      : var(--ink);
  line-height: 1.3;
  display    : block;
  margin-bottom:3px;
}
.ir-dir-row-meta {
  display    : flex;
  flex-wrap  : wrap;
  align-items: center;
  gap        : 8px;
  font-size  : 11px;
  color      : var(--muted);
  font-weight: 500;
}
.ir-dir-meta-eiin {
  display    : inline-flex;
  align-items: center;
  gap        : 3px;
  background : rgba(6,105,77,.06);
  border     : 1px solid rgba(6,105,77,.15);
  border-radius: 6px;
  padding    : 2px 7px;
  color      : var(--g-900);
  font-size  : 11px;
  font-weight: 500;
  white-space: nowrap;
}
.ir-dir-meta-eiin strong { font-weight:700; }
.ir-dir-meta-loc {
  display    : inline-flex;
  align-items: center;
  gap        : 3px;
  color      : var(--muted);
  font-size  : 11px;
}

.ir-dir-row-badges {
  display    : flex;
  align-items: center;
  gap        : 6px;
  flex-shrink: 0;
}
.ir-dir-row-badge {
  font-size     : 11px;
  font-weight   : 700;
  letter-spacing: .07em;
  text-transform: uppercase;
  background    : rgba(6,105,77,.08);
  color         : var(--g-900);
  border        : 1px solid rgba(6,105,77,.2);
  border-radius : 999px;
  padding       : 4px 11px;
  white-space   : nowrap;
}
.ir-dir-row-badge.ir-badge-blue {
  background: rgba(26,79,214,.07);
  color     : var(--b-700);
  border-color: rgba(26,79,214,.2);
}
.ir-dir-row-arrow {
  color     : var(--hint);
  font-size : 18px;
  flex-shrink: 0;
  transition: color .2s, transform .2s;
}
.ir-dir-row:hover .ir-dir-row-arrow {
  color    : var(--g-700);
  transform: translateX(3px);
}

.ir-dir-empty {
  text-align : center;
  padding    : 60px 24px;
  color      : var(--hint);
}
.ir-dir-empty svg { margin-bottom:14px; opacity:.35; }
.ir-dir-empty p { font-size:14px; color:var(--muted); }

/* ── PAGINATION — matches single-page filter-btn style ── */
.ir-dir-pager { display:flex; flex-wrap:wrap; gap:6px; margin-top:24px; }
.ir-pager-btn {
  padding        : 9px 16px;
  border         : 1.5px solid var(--line);
  border-radius  : var(--r-sm);
  background     : var(--surface);
  font-family    : var(--font);
  font-size      : 13px;
  font-weight    : 600;
  text-decoration: none;
  color          : var(--muted);
  transition     : border-color .15s, background .15s, color .15s;
  box-shadow     : var(--shadow-sm);
}
.ir-pager-btn:hover  { border-color:rgba(6,105,77,.45); color:var(--g-700); }
.ir-pager-btn.active {
  background   : linear-gradient(135deg, var(--g-700) 0%, var(--g-500) 100%);
  color        : #fff;
  border-color : var(--g-700);
  box-shadow   : 0 6px 14px -6px rgba(6,105,77,.5);
}

/* ── SINGLE PAGE ─────────────────────────────────────────────────────── */

.ir-wrap {
  max-width  : 1100px;
  margin     : 0 auto;
  padding    : 0 20px 60px;
  box-sizing : border-box;
}

/* Hero */
.ir-hero { padding:40px 0 24px; text-align:center; }
.ir-hero-school {
  font-size     : clamp(20px, 4vw, 36px);
  font-weight   : 800;
  letter-spacing: -.025em;
  line-height   : 1.15;
  color         : var(--ink);
  margin        : 0 0 8px;
}
.ir-hero-result { font-size:17px; color:var(--muted); margin:0; font-weight:500; }

/* Institution card */
.ir-inst-card {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow   : var(--shadow-sm);
  overflow     : hidden;
  margin-top   : 18px;
}
.ir-inst-head {
  display    : flex;
  align-items: center;
  gap        : 10px;
  padding    : 15px 20px 13px;
}
.ir-inst-head h2 {
  font-size    : 16px;
  font-weight  : 700;
  color        : var(--ink);
  margin       : 0;
}
.ir-inst-divider { height:1px; background:var(--line); margin:0; }
.ir-inst-body {
  display               : grid;
  grid-template-columns : repeat(auto-fill, minmax(220px,1fr));
}
.ir-inst-cell {
  display       : flex;
  flex-direction: column;
  gap           : 4px;
  padding       : 13px 20px;
  border-bottom : 1px solid var(--line-soft);
  border-right  : 1px solid var(--line-soft);
  transition    : background .15s;
}
.ir-inst-cell:hover { background:rgba(6,105,77,.03); }
.ir-inst-label {
  font-size     : 10px;
  font-weight   : 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color         : var(--hint);
}
.ir-inst-val { font-size:13px; font-weight:600; color:var(--body); line-height:1.3; }
.ir-inst-val-highlight { color:var(--g-700); font-weight:700; }

/* Year tabs */
.ir-year-tabs {
  padding   : 13px 20px;
  display   : flex;
  flex-wrap : wrap;
  gap       : 8px;
  border-top: 1px solid var(--line-soft);
}
.ir-year-tab {
  font-size    : 13px;
  font-weight  : 600;
  padding      : 6px 16px;
  border-radius: 999px;
  border       : 1px solid var(--line);
  background   : var(--surface);
  color        : var(--muted);
  cursor       : pointer;
  transition   : all .18s;
  box-shadow   : var(--shadow-sm);
}
.ir-year-tab:hover  { border-color:rgba(6,105,77,.45); color:var(--g-900); }
.ir-year-tab.active {
  background  : linear-gradient(135deg, var(--g-700) 0%, var(--g-500) 100%);
  border-color: var(--g-700);
  color       : #fff;
  box-shadow  : 0 6px 14px -6px rgba(6,105,77,.5);
}

/* Controls bar */
.ir-ctrl-bar {
  display    : flex;
  flex-wrap  : wrap;
  gap        : 10px;
  margin-top : 18px;
  align-items: center;
}
.ir-ctrl-input {
  flex         : 1 1 180px;
  min-width    : 0;
  padding      : 10px 14px;
  border       : 1px solid var(--line);
  border-radius: var(--r-sm);
  font-family  : var(--font);
  font-size    : 14px;
  color        : var(--ink);
  background   : var(--surface);
  box-shadow   : var(--shadow-sm);
  transition   : border-color .2s, box-shadow .2s;
  box-sizing   : border-box;
}
.ir-ctrl-input::placeholder { color:var(--placeholder); }
.ir-ctrl-input:focus {
  outline     : none;
  border-color: rgba(6,105,77,.45);
  box-shadow  : 0 0 0 4px rgba(6,105,77,.12), var(--shadow-sm);
}
.ir-ctrl-sel {
  appearance        : none;
  -webkit-appearance: none;
  background        : var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238390a1' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 10px center;
  border            : 1px solid var(--line);
  border-radius     : var(--r-sm);
  font-family       : var(--font);
  font-size         : 13px;
  color             : var(--ink);
  padding           : 10px 30px 10px 13px;
  cursor            : pointer;
  box-shadow        : var(--shadow-sm);
  transition        : border-color .2s;
  box-sizing        : border-box;
}
.ir-ctrl-sel:focus {
  outline     : none;
  border-color: rgba(6,105,77,.45);
  box-shadow  : 0 0 0 4px rgba(6,105,77,.12), var(--shadow-sm);
}
.ir-ctrl-sel option { background:#fff; color:var(--ink); }

/* Overview sub-head */
.ir-section { margin-top:24px; }
.ir-sub-head { display:flex; align-items:center; gap:12px; margin:0 0 14px; }
.ir-sub-head-pill {
  display       : inline-flex;
  align-items   : center;
  gap           : 6px;
  padding       : 5px 13px;
  border-radius : 999px;
  font-size     : 12px;
  font-weight   : 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  background    : rgba(6,105,77,.08);
  color         : var(--g-900);
  border        : 1px solid rgba(6,105,77,.22);
  white-space   : nowrap;
}
.ir-sub-head-line  { flex:1; height:1px; background:var(--line); }
.ir-sub-head-count { font-size:12px; color:var(--hint); font-weight:500; }

/* Stats grid */
.ir-stats-grid {
  display               : grid;
  grid-template-columns : repeat(auto-fit, minmax(130px, 1fr));
  gap                   : 10px;
  margin-bottom         : 24px;
}
.ir-stat-card {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r);
  padding      : 18px 14px;
  text-align   : center;
  box-shadow   : var(--shadow-sm);
  transition   : border-color .2s, box-shadow .2s, transform .2s;
  cursor       : default;
}
.ir-stat-card:hover { border-color:rgba(6,105,77,.32); box-shadow:var(--shadow); transform:translateY(-2px); }
.ir-stat-val { font-size:26px; font-weight:800; line-height:1; margin-bottom:4px; letter-spacing:-.02em; }
.ir-stat-lbl { font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-weight:500; }

/* Group sections */
.ir-group        { margin-bottom:32px; }
.ir-group-hidden { display:none; }
.ir-group-head {
  display    : flex;
  align-items: center;
  gap        : 12px;
  padding    : 10px 0 12px;
}
.ir-group-pill {
  display       : inline-flex;
  align-items   : center;
  padding       : 5px 13px;
  border-radius : 999px;
  font-size     : 12px;
  font-weight   : 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space   : nowrap;
}
.ir-group-line  { flex:1; height:1px; background:var(--line); }
.ir-group-count { font-size:12px; color:var(--hint); font-weight:500; white-space:nowrap; }

/* Cards grid */
.ir-cards-grid {
  display               : grid;
  grid-template-columns : repeat(auto-fill, minmax(145px, 1fr));
  gap                   : 10px;
}
.ir-card {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r);
  padding      : 15px 12px;
  display      : flex;
  flex-direction: column;
  align-items  : center;
  gap          : 6px;
  text-align   : center;
  position     : relative;
  overflow     : hidden;
  box-shadow   : var(--shadow-sm);
  transition   : all .2s;
  cursor       : default;
}
.ir-card::before {
  content   : '';
  position  : absolute;
  top: 0; left:0; right:0;
  height    : 3px;
  background: var(--ir-accent, var(--line));
  opacity   : 0;
  transition: opacity .2s;
}
.ir-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:rgba(6,105,77,.32); }
.ir-card:hover::before { opacity:1; }
.ir-card-hidden { display:none !important; }
.ir-card-accent { display:none; }
.ir-card-roll   { font-size:11px; font-weight:700; color:var(--muted); letter-spacing:.03em; }
.ir-card-gpa    { font-size:24px; font-weight:800; line-height:1; letter-spacing:-.02em; }
.ir-card-grade  {
  font-size     : 11px;
  font-weight   : 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding       : 2px 8px;
  border-radius : 6px;
}

/* GPA colours */
.ir-gpa-5    { color:var(--g-700); }
.ir-gpa-4    { color:var(--g-500); }
.ir-gpa-3h   { color:var(--g-500); }
.ir-gpa-3    { color:var(--b-500); }
.ir-gpa-lo   { color:var(--b-700); }
.ir-gpa-fail { color:var(--r-700); }

/* Grade badge colours */
.ir-g-ap { background:rgba(6,105,77,.1);    color:var(--g-700); }
.ir-g-a  { background:rgba(12,138,100,.1);  color:var(--g-700); }
.ir-g-am { background:rgba(52,168,130,.12); color:var(--g-700); }
.ir-g-b  { background:rgba(37,99,235,.1);   color:var(--b-500); }
.ir-g-c  { background:rgba(26,79,214,.1);   color:var(--b-700); }
.ir-g-d  { background:rgba(131,144,161,.12);color:var(--hint);  }
.ir-g-f  { background:rgba(226,59,70,.08);  color:var(--r-700); }

.ir-card-fail   { background:rgba(226,59,70,.04);   border-color:rgba(226,59,70,.15); }
.ir-card-absent { background:rgba(131,144,161,.05); border-color:rgba(131,144,161,.15); opacity:.5; }

/* Stat value colours */
.ir-v-total { color:var(--ink);   }
.ir-v-pass  { color:var(--g-700); }
.ir-v-fail  { color:var(--r-500); }
.ir-v-gpa5  { color:var(--g-700); }
.ir-v-rate  { color:var(--g-500); }
.ir-v-avg   { color:var(--b-500); }

/* Section heads (How to Check / FAQ) */
.ir-section-head-row {
  display      : flex;
  align-items  : center;
  gap          : 14px;
  margin-bottom: 14px;
}
.ir-section-head-row span {
  display       : flex;
  align-items   : center;
  gap           : 8px;
  font-size     : 15px;
  font-weight   : 700;
  color         : var(--ink);
  letter-spacing: -.01em;
  white-space   : nowrap;
}
.ir-section-line { flex:1; height:1px; background:var(--line); }

/* Steps */
.ir-steps-grid { display:grid; grid-template-columns:1fr; gap:10px; }
.ir-step-card {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r-sm);
  padding      : 16px 18px;
  display      : flex;
  align-items  : flex-start;
  gap          : 14px;
  box-shadow   : var(--shadow-sm);
  transition   : border-color .2s, box-shadow .2s, transform .2s;
}
.ir-step-card:hover { border-color:rgba(6,105,77,.32); box-shadow:var(--shadow); transform:translateY(-1px); }
.ir-step-num {
  width        : 34px;
  height       : 34px;
  flex-shrink  : 0;
  background   : linear-gradient(135deg, var(--g-700) 0%, var(--g-500) 100%);
  border-radius: 10px;
  display      : flex;
  align-items  : center;
  justify-content: center;
  font-size    : 13px;
  font-weight  : 700;
  color        : #fff;
  box-shadow   : 0 6px 13px -7px rgba(6,105,77,.6);
}
.ir-step-title { font-size:14px; font-weight:700; color:var(--ink); margin-bottom:2px; line-height:1.3; }
.ir-step-desc  { font-size:13px; color:var(--muted); line-height:1.55; }

/* FAQ */
.ir-faqs { display:flex; flex-direction:column; gap:8px; }
.ir-faq {
  background   : var(--surface);
  border       : 1px solid var(--line);
  border-radius: var(--r-sm);
  overflow     : hidden;
  box-shadow   : var(--shadow-sm);
  transition   : border-color .2s;
}
.ir-faq[open] { border-color:rgba(6,105,77,.35); }
.ir-faq-q {
  padding        : 15px 17px;
  font-size      : 13px;
  font-weight    : 600;
  color          : var(--ink);
  cursor         : pointer;
  display        : flex;
  justify-content: space-between;
  align-items    : center;
  gap            : 12px;
  list-style     : none;
  line-height    : 1.4;
  transition     : color .2s;
}
.ir-faq-q::-webkit-details-marker { display:none; }
.ir-faq-q:hover { color:var(--g-900); }
.ir-faq-chevron { transition:transform .25s; flex-shrink:0; color:var(--hint); display:inline-flex; }
.ir-faq[open] .ir-faq-chevron { transform:rotate(180deg); color:var(--g-700); }
.ir-faq-a {
  padding    : 0 17px 15px;
  font-size  : 13px;
  color      : var(--muted);
  line-height: 1.65;
  border-top : 1px solid var(--line-soft);
}

/* ── ADMIN META BOX ──────────────────────────────────────────────────── */
.ir-metabox-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; }
.ir-field label  { display:block; font-size:11px; font-weight:600; color:#555; margin-bottom:3px; text-transform:uppercase; letter-spacing:.06em; }
.ir-field input[type="text"],
.ir-field input[type="number"],
.ir-field textarea,
.ir-field select {
  width:100%; box-sizing:border-box; padding:7px 10px;
  border:1px solid #ddd; border-radius:4px; font-size:13px; font-family:inherit; color:#333;
  background:#fff; transition:border-color .15s;
}
.ir-field input:focus, .ir-field textarea:focus, .ir-field select:focus {
  outline:none; border-color:var(--g-700); box-shadow:0 0 0 2px rgba(6,105,77,.1);
}
.ir-field textarea { min-height:70px; resize:vertical; }
.ir-year-block { border:1px solid #ddd; border-radius:6px; padding:16px 18px; margin-bottom:16px; background:#fafbfc; }
.ir-year-block-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; flex-wrap:wrap; gap:8px; }
.ir-year-block-header strong { font-size:14px; color:#0f1a14; }
.ir-year-block-actions { display:flex; gap:10px; align-items:center; }
.ir-year-stats { display:flex; flex-wrap:wrap; gap:10px 18px; font-size:12px; color:#555; margin-bottom:10px; padding:8px 12px; background:#fff; border:1px solid #e2e8e5; border-radius:5px; }
.ir-parse-btn { padding:5px 12px; font-size:12px; font-weight:600; background:var(--g-700); color:#fff; border:none; border-radius:4px; cursor:pointer; }
.ir-parse-btn:hover { background:var(--g-900); }
.button-link-delete { color:#b32d2e !important; font-size:12px !important; cursor:pointer; background:none; border:none; padding:0; }
.button-link-delete:hover { color:#861c1d !important; text-decoration:underline; }
.ir-parse-msg    { font-size:12px; margin-left:8px; }
.ir-parse-preview { margin-top:8px; }
.ir-add-year-block { border-top:2px dashed #ddd; margin-top:8px; padding-top:4px; }
.ir-metabox-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:10px; }
.ir-stat-tile { background:#f8f9fa; border:1px solid #e2e6ea; border-radius:6px; padding:10px 12px; text-align:center; }
.ir-stat-tile strong { display:block; font-size:20px; font-weight:800; color:var(--g-700); line-height:1; }
.ir-stat-tile span   { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:#888; }

/* ── RESPONSIVE ──────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .ir-dir-wrap  { padding:0 16px 48px; }
  .ir-wrap      { padding:0 16px 48px; }
  .ir-stats-grid { grid-template-columns:repeat(3, 1fr); }
  .ir-cards-grid { grid-template-columns:repeat(auto-fill, minmax(130px, 1fr)); }
}

@media (max-width: 600px) {
  .ir-dir-wrap  { padding:0 14px 40px; }
  .ir-dir-hero  { padding:32px 0 24px; }
  .ir-dir-title { font-size:26px; }
  .ir-dir-filter-body { padding:14px 16px 16px; }
  .ir-dir-filter-head { padding:12px 16px; }
  .ir-dir-form  { flex-direction:column; align-items:stretch; }
  .ir-dir-search,
  .ir-dir-filter,
  .ir-dir-btn   { width:100%; box-sizing:border-box; }
  .ir-dir-reset { text-align:center; padding:6px 0; }
  .ir-dir-row-link { padding:13px 14px; gap:10px; }
  .ir-dir-row-icon { display:none; }
  .ir-dir-row-badges { gap:4px; }
  .ir-dir-row-badge { display:none; }
  .ir-dir-row-badge:first-child { display:inline-flex; }

  .ir-wrap          { padding:0 14px 40px; }
  .ir-hero          { padding:24px 0 18px; }
  .ir-hero-school   { font-size:20px; }
  .ir-hero-result   { font-size:15px; }
  .ir-inst-body     { grid-template-columns:1fr 1fr; }
  .ir-inst-cell     { border-right:none; padding:11px 14px; }
  .ir-inst-head     { padding:13px 14px 11px; }
  .ir-year-tabs     { padding:11px 14px; gap:6px; }
  .ir-year-tab      { padding:5px 13px; font-size:12px; }
  .ir-ctrl-bar      { flex-direction:column; align-items:stretch; }
  .ir-ctrl-input,
  .ir-ctrl-sel      { width:100%; box-sizing:border-box; }
  .ir-stats-grid    { grid-template-columns:repeat(2, 1fr); gap:8px; }
  .ir-stat-card     { padding:14px 10px; }
  .ir-stat-val      { font-size:22px; }
  .ir-cards-grid    { grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:8px; }
  .ir-card          { padding:12px 10px; }
  .ir-card-gpa      { font-size:21px; }
  .ir-step-card     { padding:13px 14px; gap:11px; }
  .ir-step-num      { width:30px; height:30px; font-size:12px; border-radius:8px; }
  .ir-section-head-row span { white-space:normal; }
  .ir-group-head    { flex-wrap:wrap; }

  .ir-metabox-grid  { grid-template-columns:1fr; }
  .ir-metabox-stats { grid-template-columns:repeat(2,1fr); }
}

@media (max-width: 380px) {
  .ir-dir-wrap  { padding:0 12px 32px; }
  .ir-wrap      { padding:0 12px 32px; }
  .ir-inst-body { grid-template-columns:1fr; }
  .ir-stats-grid { grid-template-columns:repeat(2, 1fr); }
  .ir-cards-grid { grid-template-columns:repeat(2, 1fr); gap:6px; }
}

/* Screen-reader only utility */
.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;
}

/* ══════════════════════════════════════════════════════════════════════
   NAVBAR  (shared: archive + single pages)
   ══════════════════════════════════════════════════════════════════════ */

.ir-navbar {
  position      : sticky;
  top           : 0;
  z-index       : 9990;
  background    : #ffffff;
  border-bottom : 1px solid rgba(24,34,47,.1);
  box-shadow    : 0 1px 8px rgba(24,34,47,.06);
  font-family   : -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* push sticky navbar below WP admin bar */
.admin-bar .ir-navbar { top: 32px; }
@media screen and (max-width:782px){ .admin-bar .ir-navbar { top:46px; } }

.ir-navbar-inner {
  display     : flex;
  align-items : center;
  gap         : 8px;
  max-width   : 1140px;
  margin      : 0 auto;
  padding     : 0 24px;
  height      : 56px;
}

/* Brand */
.ir-navbar-brand {
  display         : flex;
  align-items     : center;
  gap             : 8px;
  text-decoration : none;
  color           : #06694d;
  font-size       : 15px;
  font-weight     : 700;
  letter-spacing  : -.02em;
  flex-shrink     : 0;
  transition      : opacity .15s;
}
.ir-navbar-brand:hover { opacity: .78; }
.ir-navbar-brand svg   { flex-shrink: 0; }

/* Links */
.ir-navbar-links {
  display     : flex;
  align-items : center;
  gap         : 2px;
  list-style  : none;
  margin      : 0 0 0 auto;
  padding     : 0;
}
.ir-navbar-links li { margin:0; padding:0; }
.ir-navbar-links a {
  display         : inline-block;
  padding         : 7px 14px;
  border-radius   : 8px;
  text-decoration : none;
  font-size       : 13.5px;
  font-weight     : 600;
  color           : #3a4654;
  white-space     : nowrap;
  transition      : background .15s, color .15s;
}
.ir-navbar-links a:hover {
  background : rgba(6,105,77,.09);
  color      : #06694d;
}

/* Hamburger (mobile) */
.ir-navbar-toggle {
  display          : none;
  flex-direction   : column;
  justify-content  : center;
  gap              : 5px;
  width            : 38px;
  height           : 38px;
  padding          : 7px 8px;
  background       : transparent;
  border           : 1.5px solid rgba(24,34,47,.16);
  border-radius    : 8px;
  cursor           : pointer;
  margin-left      : auto;
  flex-shrink      : 0;
  transition       : border-color .15s;
}
.ir-navbar-toggle:hover { border-color: #06694d; }
.ir-navbar-toggle span {
  display       : block;
  width         : 100%;
  height        : 2px;
  background    : #3a4654;
  border-radius : 2px;
  transition    : transform .22s, opacity .22s;
}
.ir-navbar-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.ir-navbar-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.ir-navbar-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width:680px) {
  .ir-navbar-toggle { display: flex; }

  .ir-navbar-links {
    display        : none;
    position       : fixed;
    top            : 56px;
    left           : 0;
    right          : 0;
    flex-direction : column;
    align-items    : stretch;
    gap            : 0;
    background     : #fff;
    border-bottom  : 1px solid rgba(24,34,47,.1);
    box-shadow     : 0 8px 24px rgba(24,34,47,.12);
    padding        : 8px 16px 16px;
    z-index        : 9989;
    margin         : 0;
  }
  .admin-bar .ir-navbar-links { top: calc(56px + 46px); }
  .ir-navbar-links.ir-navbar-open { display: flex; }
  .ir-navbar-links a { padding: 12px 14px; font-size: 15px; border-radius: 10px; }
}
@media (max-width:680px) and (min-width:601px) {
  .admin-bar .ir-navbar-links { top: calc(56px + 32px); }
}

/* ── LOAD MORE ── */

.ir-dir-loaded-count {
  font-size   : 13px;
  color       : var(--muted, #5a6a7d);
  margin      : 0;
  font-weight : 500;
}

.ir-load-more-wrap {
  text-align  : center;
  margin-top  : 28px;
  padding-bottom: 8px;
}

.ir-load-more-btn {
  display       : inline-flex;
  align-items   : center;
  gap           : 8px;
  padding       : 12px 30px;
  background    : #ffffff;
  color         : #06694d;
  border        : 2px solid #06694d;
  border-radius : 12px;
  font-family   : -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  font-size     : 14px;
  font-weight   : 700;
  cursor        : pointer;
  transition    : background .18s, color .18s, transform .15s, box-shadow .18s;
  box-shadow    : 0 2px 10px rgba(6,105,77,.12);
}
.ir-load-more-btn:hover:not(:disabled) {
  background  : #06694d;
  color       : #fff;
  box-shadow  : 0 6px 20px rgba(6,105,77,.28);
  transform   : translateY(-1px);
}
.ir-load-more-btn:active:not(:disabled) { transform: translateY(0); }
.ir-load-more-btn:disabled {
  opacity : .65;
  cursor  : not-allowed;
}

@keyframes ir-spin { to { transform: rotate(360deg); } }
