    /* ── Jump nav ── */
    .jump-label { font-weight: 700; margin-bottom: 0.4rem; font-size: 0.95rem; }
    .jump-nav {
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1rem;
      margin-bottom: 2rem;
      padding: 1rem 0;
    }
 
    /* ── Section headings ── */
    .programs h3 { font-size: 1.5rem; margin: 2.5rem 0 0.5rem; border-bottom: 2px solid #ff6600; padding-bottom: 0.4rem; color: #003366; }
    .programs h4 { font-size: 1.15rem; margin: 1.5rem 0 0.75rem; color: #444; }
 
    /* ── Table wrapper ── */
    .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1.5rem; }
 
    /* ── Table base styles ── */
    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 0.95rem;
    }
    caption {
      caption-side: top;
      text-align: left;
      font-size: 0.85rem;
      color: #555;
      margin-bottom: 0.4rem;
      font-style: italic;
    }
    thead th {
      background-color: #003b71;
      color: #fff;
      text-align: left;
      padding: 0.65rem 0.85rem;
      font-weight: 600;
      white-space: nowrap;
    }
    tbody tr:nth-child(odd)  { background-color: #f5f8fc; }
    tbody tr:nth-child(even) { background-color: #fff; }
    tbody tr:focus-within    { outline: 2px solid #005fac; outline-offset: -2px; }
    td {
      padding: 0.6rem 0.5rem;
      vertical-align: top;
      border-bottom: 1px solid #d8e2ee;
      line-height: 1.4;
    }
 
    /* ── Mobile: card layout ── */
    @media (max-width: 640px) {
      table, thead, tbody, th, td, tr { display: block; }
 
      thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
      }
 
      tbody tr {
        border: 1px solid #c5d3e0;
        border-radius: 6px;
        margin-bottom: 1rem;
        padding: 0.5rem 0;
        background: #fff;
        box-shadow: 0 1px 3px rgba(0,0,0,0.07);
      }
 
      td {
        border: none;
        border-bottom: 1px solid #eef1f5;
        padding: 0.5rem 0.85rem;
        display: flex;
        gap: 0.5rem;
      }
      td:last-child { border-bottom: none; }
 
      /* Data label injected via data-label attribute */
      td::before {
        content: attr(data-label);
        font-weight: 700;
        color: #003b71;
        min-width: 9rem;
        flex-shrink: 0;
        font-size: 0.85rem;
        padding-top: 0.05rem;
      }
    }
 
    /* ── Note ── */
    .pathway-note {
      font-size: 0.9rem;
      color: #555;
      font-style: italic;
      margin-bottom: 1rem;
    }
    .flag {
      font-size: 0.8rem;
      color: #555;
      display: block;
      margin-top: 0.2rem;
    }