/* ================================================================
   NRIT kennisplatform — thema op Bootstrap 5.3
   Laadvolgorde: bootstrap.min.css → nrit.css
   Opbouw:
   1. Variabelen (merk + Bootstrap-overrides)
   2. Basis
   3. Typogrammen  (herbruikbare tekststijlen, prefix .t-)
   4. Thema's per onderwerp (.thema-*)
   5. Layout: merkbalk, header, nav, zijkolom, footer
   6. Componenten
   7. Bootstrap-componenten bijsturen
   8. Generieke blokken (multisite)
   9. Lijstpagina's (kennisbank, agenda — AJAX via main.js)
  10. Leeshulpen lange artikelen (artikel.js)
  11. Informatiepagina's (over, contact, privacy)
  12. Print
   Oude opmaakcodes uit de CMS-content (#arko): zie nrit-legacy.css
   ================================================================ */

/* ── 1. Variabelen ──────────────────────────────────────────── */
:root,
[data-bs-theme="light"] {
  /* merk (uit het NRIT-logo) */
  --nrit-oranje:         #EF7D0C;
  --nrit-oranje-donker:  #B35600;   /* tekst/links: voldoende contrast */
  --nrit-cyaan:          #1BA9CC;
  --nrit-cyaan-donker:   #0B7390;
  --nrit-groen:          #4DAA57;
  --nrit-groen-donker:   #2E7A37;
  --nrit-magenta:        #D0043C;
  --nrit-magenta-donker: #B00333;

  /* neutralen */
  --nrit-inkt:        #1f1a17;
  --nrit-inkt-2:      #4a423b;
  --nrit-inkt-3:      #2c2520;   /* lange leestekst */
  --nrit-grijs:       #6b6259;
  --nrit-grijs-licht: #8a8075;
  --nrit-grijs-zacht: #a0968a;
  --nrit-papier:      #faf7f2;
  --nrit-wit:         #ffffff;
  --nrit-vlak:        #f1ebe1;
  --nrit-lijn:        #e8e1d6;
  --nrit-lijn-kader:  #ece6dc;
  --nrit-lijn-sterk:  #ddd4c6;

  /* fonts */
  --nrit-font-ui:    'Instrument Sans', system-ui, sans-serif;
  --nrit-font-tekst: 'Source Serif 4', Georgia, serif;

  /* maten */
  --nrit-header-h:   4.5rem;   /* voor sticky offsets */
  --nrit-beeld-w:    474px;    /* max. breedte bestaande foto's (474×319) */
  --nrit-beeld-ratio: 474 / 319;
  --nrit-thumb-w:    200px;

  /* Bootstrap */
  --bs-body-font-family:  var(--nrit-font-ui);
  --bs-body-font-size:    1rem;
  --bs-body-line-height:  1.55;
  --bs-body-color:        #1f1a17;
  --bs-body-color-rgb:    31, 26, 23;
  --bs-body-bg:           #faf7f2;
  --bs-emphasis-color:    #1f1a17;
  --bs-secondary-color:   #6b6259;
  --bs-border-color:      #e8e1d6;
  --bs-primary:           #1f1a17;
  --bs-primary-rgb:       31, 26, 23;
  --bs-link-color:        #1f1a17;
  --bs-link-color-rgb:    31, 26, 23;
  --bs-link-hover-color:  #B35600;
  --bs-link-hover-color-rgb: 179, 86, 0;
  --bs-link-decoration:   none;
  --bs-border-radius:     4px;
  --bs-border-radius-sm:  3px;
  --bs-border-radius-lg:  6px;
  --bs-border-radius-pill: 50rem;
  --bs-focus-ring-color:  rgba(239, 125, 12, .35);
}

/* ── 2. Basis ───────────────────────────────────────────────── */
body { text-wrap: pretty; -webkit-font-smoothing: antialiased; }

a { text-decoration: none; transition: color .15s; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--nrit-font-ui);
  font-weight: 600;
  color: var(--nrit-inkt);
  margin: 0;
}

.container { max-width: 1280px; }
@media (min-width: 576px) { .container { padding-inline: 2rem; } }

/* ── 3. Typogrammen ─────────────────────────────────────────── */
/* Koppen — los van het HTML-niveau te gebruiken */
.t-kop-1 { font-size: clamp(2rem, 1.4rem + 2.2vw, 3rem);    line-height: 1.05; letter-spacing: -.02em; text-wrap: balance; margin-bottom: 1.25rem; }
.t-kop-2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);    line-height: 1.1;  letter-spacing: -.02em; text-wrap: balance; }
.t-kop-3 { font-size: 1.3125rem; line-height: 1.2;  letter-spacing: -.01em; }
.t-kop-4 { font-size: 1.1875rem; line-height: 1.22; }
.t-kop-5 { font-size: 1rem;      line-height: 1.25; font-weight: 600; }
.t-subtitel { font-family: var(--nrit-font-ui); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); font-weight: 500; line-height: 1.3; letter-spacing: -.01em; color: var(--nrit-inkt-2); text-wrap: balance; max-width: 40ch; margin: 0 0 1.25rem;
  .t-kop-1 + & { margin-top: -.5rem; }
}

/* Lopende tekst */
.t-lead  { font-family: var(--nrit-font-tekst); font-size: clamp(1.1875rem, 1.1rem + .4vw, 1.375rem); line-height: 1.5; color: var(--nrit-inkt-2); max-width: 62ch; }
.t-intro { font-family: var(--nrit-font-tekst); font-size: 1rem; line-height: 1.5; color: var(--nrit-inkt-2); margin: 0;
  &.t-intro--groot  { font-size: 1.0625rem; }
  &.t-intro--2regels { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
}
.t-leestekst {
  max-width: 680px;
  font-family: var(--nrit-font-tekst);
  font-size: 1.1875rem;
  line-height: 1.72;
  color: var(--nrit-inkt-3);
  display: flex; flex-direction: column; gap: 1.375rem;
  & p { margin: 0; }
  & h2, & h3 { font-family: var(--nrit-font-ui); font-size: 1.5625rem; line-height: 1.2; letter-spacing: -.01em; margin-top: 1.125rem; }
  & blockquote { border-left: 4px solid var(--nrit-oranje); padding: .25rem 0 .25rem 1.5rem; font-size: 1.5rem; line-height: 1.4; font-style: italic; color: var(--nrit-inkt); margin: 0; }
  & .t-leestekst__noot { color: var(--nrit-grijs); }
  & ul, & ol { margin: 0; padding-left: 1.375rem; display: flex; flex-direction: column; gap: .375rem; }
  & a { color: var(--nrit-oranje-donker); text-decoration: underline; text-underline-offset: 2px; &:hover { color: var(--nrit-inkt); } }
}

/* Labels en metadata */
.t-kicker {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  font-size: .75rem; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
  color: var(--thema-donker, var(--nrit-grijs));
  & .t-kicker__sep  { color: var(--nrit-grijs-zacht); }
  & .t-kicker__type { color: var(--nrit-grijs); }
  &.t-kicker--neutraal { color: var(--nrit-grijs); }
}
.t-label {
  display: block;
  font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--nrit-grijs-licht);
  margin-bottom: .75rem;
  &.t-label--accent { color: var(--nrit-oranje-donker); margin-bottom: .375rem; }
}
.t-meta    { font-size: .8125rem; color: var(--nrit-grijs-licht); display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.t-kruimel { font-size: .8125rem; color: var(--nrit-grijs-licht); margin-bottom: 1.5rem;
  & a { color: inherit; &:hover { color: var(--nrit-oranje-donker); } }
}
.t-meer { font-size: .875rem; font-weight: 600; color: var(--nrit-oranje-donker); white-space: nowrap;
  &:hover { color: var(--nrit-inkt); }
}

/* ── 4. Thema's per onderwerp ───────────────────────────────── */
/* Zet .thema-* op een item; stip, kicker en beeldvlak volgen automatisch. */
.thema-cyaan   { --thema: var(--nrit-cyaan);   --thema-donker: var(--nrit-cyaan-donker);   --thema-tint: #e1f2f7; }
.thema-groen   { --thema: var(--nrit-groen);   --thema-donker: var(--nrit-groen-donker);   --thema-tint: #e5f2e6; }
.thema-magenta { --thema: var(--nrit-magenta); --thema-donker: var(--nrit-magenta-donker); --thema-tint: #f8e2e7; }
.thema-oranje  { --thema: var(--nrit-oranje);  --thema-donker: var(--nrit-oranje-donker);  --thema-tint: #fcecdb; }

.stip { display: inline-block; flex: none; width: .45rem; height: .45rem; border-radius: 50%; background: var(--thema, var(--nrit-oranje)); }

/* ── 5. Layout ──────────────────────────────────────────────── */
.nrit-merkbalk {
  display: grid; grid-template-columns: repeat(4, 1fr); height: 5px;
  & span:nth-child(1) { background: var(--nrit-cyaan); }
  & span:nth-child(2) { background: var(--nrit-groen); }
  & span:nth-child(3) { background: var(--nrit-magenta); }
  & span:nth-child(4) { background: var(--nrit-oranje); }
}

.nrit-header {
  position: sticky; top: 0; z-index: 1020;
  background: var(--nrit-wit);
  border-bottom: 1px solid var(--nrit-lijn-kader);
}
.nrit-logo {
  display: flex; align-items: center; gap: 1rem;
  & img { display: block; height: 34px; width: auto; }
  & .nrit-logo__tagline { font-size: .8125rem; line-height: 1.3; color: var(--nrit-grijs); border-left: 1px solid var(--nrit-lijn-sterk); padding-left: 1rem; }
}
.nrit-nav {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.875rem;
  & .nrit-nav__link {
    font-size: .9375rem; font-weight: 500; color: var(--nrit-inkt-2);
    padding: .375rem 0; border-bottom: 2px solid transparent;
    &:hover { color: var(--nrit-inkt); }
    &.is-actief { color: var(--nrit-inkt); border-bottom-color: var(--nrit-oranje); }
  }
}
.nrit-zoek {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .875rem; color: var(--nrit-grijs);
  background: #f4efe7; border-radius: var(--bs-border-radius-pill); padding: .5rem 1rem;
  &:hover { color: var(--nrit-inkt); }
}

.zijkolom {
  display: flex; flex-direction: column; gap: 2.5rem;
  & .zijkolom__sticky { position: sticky; top: calc(var(--nrit-header-h) + 1.5rem); }
}
@media (min-width: 992px) { .zijkolom { max-width: 340px; } }

.nrit-footer {
  background: var(--nrit-inkt); color: #c9bfb2; margin-top: 2rem;
  & .t-label { color: var(--nrit-grijs-licht); }
  & a { color: #c9bfb2; &:hover { color: var(--nrit-wit); } }
  & .nrit-footer__merk  { font-size: 1.375rem; font-weight: 700; color: var(--nrit-oranje); letter-spacing: .02em; margin-bottom: .5rem; }
  & .nrit-footer__tekst { font-size: .875rem; }
  & .nrit-footer__lijst { font-size: .875rem; display: flex; flex-direction: column; gap: .5rem; }
  & .nrit-footer__onder { border-top: 1px solid #3a322b; padding: 1.125rem 0; font-size: .8125rem; color: var(--nrit-grijs-licht); }
}

/* ── 6. Componenten ─────────────────────────────────────────── */
/* Sectiekop: titel + "alles →" op een zware lijn */
.sectiekop {
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  border-bottom: 2px solid var(--nrit-inkt);
  padding-bottom: .625rem; margin-bottom: 1.5rem;
  & .sectiekop__titel { font-size: 1.5rem; }
  .zijkolom & { margin-top: .5rem; margin-bottom: .25rem; & .sectiekop__titel { font-size: 1.125rem; } }
}

/* Beeld: nooit breder dan de bronfoto (474×319) */
.beeld {
  display: block; width: 100%; max-width: var(--nrit-beeld-w);
  aspect-ratio: var(--nrit-beeld-ratio); object-fit: cover;
  border-radius: var(--bs-border-radius);
  background-color: var(--thema-tint, var(--nrit-vlak));
  &.beeld--thumb {
    width: var(--nrit-thumb-w); flex: none;
    @media (max-width: 575.98px) { width: 100%; }   /* mobiel: schermbreed (max. 474px) */
  }
  /* nieuwe, grote foto's: volle kolombreedte, eigen verhouding (width/height in de HTML) */
  &.beeld--groot { max-width: 100%; height: auto; aspect-ratio: auto; }
  &.beeld--leeg {
    background-image: repeating-linear-gradient(45deg, transparent 0 9px, rgba(31, 26, 23, .04) 9px 10px);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--bs-font-monospace); font-size: .6875rem; color: rgba(31, 26, 23, .4);
  }
}

/* Items */
.nieuws-lead { display: block; padding-bottom: 1.75rem; margin-bottom: 1.75rem; border-bottom: 1px solid var(--nrit-lijn); color: inherit; }
.nieuws-lead:hover .t-kop-2,
.kaart:hover .t-kop-4,
.lijst-item:hover .t-kop-3,
.event-rij:hover .t-kop-3,
a.zij-item:hover .t-kop-5,
a.zij-event:hover .t-kop-5,
a.zij-event:hover .t-kop-4 { color: var(--nrit-oranje-donker); }

.kaart { display: flex; flex-direction: column; gap: .625rem; color: inherit; }

.lijst-item {
  display: flex; flex-wrap: wrap; gap: 1.5rem;
  padding: 1.5rem 0; border-bottom: 1px solid var(--nrit-lijn); color: inherit;
  & .lijst-item__tekst { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: .5rem; }
}

.zij-item  { display: block; padding: .875rem 0; border-bottom: 1px solid var(--nrit-lijn); color: inherit; & .t-meta { margin-bottom: .25rem; } }
.zij-event {
  display: flex; gap: .875rem; padding: .875rem 0; border-bottom: 1px solid var(--nrit-lijn); color: inherit;
  & .t-meta { margin-top: .2rem; }
  &.zij-event--groot { gap: 1.25rem; align-items: center; }
}

/* Datumblok (agenda) */
.datumblok {
  width: 76px; flex: none; text-align: center; padding: .625rem .25rem;
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-kader); border-top: 4px solid var(--thema, var(--nrit-oranje));
  border-radius: var(--bs-border-radius);
  display: flex; flex-direction: column;
  & .datumblok__weekdag { font-size: .6875rem; color: var(--nrit-grijs-licht); text-transform: uppercase; letter-spacing: .06em; }
  & .datumblok__dag     { font-size: 1.625rem; font-weight: 700; line-height: 1.1; white-space: nowrap; }
  & .datumblok__maand   { font-size: .75rem; font-weight: 600; text-transform: uppercase; color: var(--nrit-oranje-donker); }
  &.datumblok--klein {
    width: 44px; padding: 0; background: none; border: 0;
    & .datumblok__dag   { font-size: 1.375rem; line-height: 1; }
    & .datumblok__maand { font-size: .6875rem; margin-top: .2rem; }
  }
}

.event-groep { margin-top: 2.25rem;
  & .event-groep__kop { padding-bottom: .5rem; border-bottom: 1px solid var(--nrit-lijn-sterk); margin: 0; }
}
.event-rij {
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1.5rem;
  padding: 1.5rem 0; border-bottom: 1px solid var(--nrit-lijn); color: inherit;
  & .event-rij__tekst { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: .45rem; }
}

.badge-status {
  font-size: .6875rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  padding: .2rem .5rem; border-radius: var(--bs-border-radius-pill);
  &.badge-status--nu      { background: #e5f2e6; color: var(--nrit-groen-donker); }
  &.badge-status--voorbij { background: var(--nrit-vlak); color: var(--nrit-grijs); }
}
.badge-bron {
  background: var(--nrit-inkt); color: var(--nrit-wit);
  padding: .2rem .6rem; border-radius: var(--bs-border-radius-pill); letter-spacing: .04em;
}

/* Feitenlijst (evenement) */
.feiten {
  margin: 0;
  & .feiten__rij { padding: .75rem 0; border-bottom: 1px solid var(--nrit-lijn-sterk); }
  & dt { margin-bottom: .2rem; }
  & dd { margin: 0; font-weight: 500; }
}

/* Artikelkop */
.artikelkop { max-width: 760px;
  & .t-kicker { margin-bottom: 1rem; }
}
.metabalk {
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
  padding: .875rem 0; margin-bottom: 2rem;
  border-block: 1px solid var(--nrit-lijn);
  font-size: .875rem; color: var(--nrit-grijs);
  & a { color: inherit; &:hover { color: var(--nrit-oranje-donker); } }
}

.tagbalk {
  max-width: 680px; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem;
  margin-top: 2.25rem; padding-top: 1.5rem; border-top: 1px solid var(--nrit-lijn);
  & .t-meta { margin-right: .375rem; }
}
.tag {
  font-size: .875rem; font-weight: 500; color: var(--nrit-inkt);
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-sterk);
  padding: .375rem .875rem; border-radius: var(--bs-border-radius-pill);
  &:hover { border-color: var(--nrit-inkt); }
}

/* Uitgave-blok: artikel uit R&T / Vrijetijdstudies */
.uitgave-blok {
  max-width: 760px; margin-top: 2.75rem; padding: 1.75rem;
  display: flex; flex-wrap: wrap; gap: 1.75rem;
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-kader); border-top: 4px solid var(--nrit-oranje);
  border-radius: var(--bs-border-radius);
  & .uitgave-blok__cover {
    width: 170px; aspect-ratio: 3 / 4; flex: none;
    background: #fcecdb repeating-linear-gradient(45deg, transparent 0 9px, rgba(31, 26, 23, .04) 9px 10px);
    border: 1px solid var(--nrit-lijn-kader); box-shadow: 0 8px 20px rgba(31, 26, 23, .12);
    display: flex; align-items: center; justify-content: center; text-align: center;
    font-family: var(--bs-font-monospace); font-size: .6875rem; color: rgba(31, 26, 23, .45);
    & img { width: 100%; height: 100%; object-fit: cover; }
  }
  & .uitgave-blok__tekst { flex: 1 1 280px; min-width: 0; }
  & .uitgave-blok__lijst {
    margin: 0;
    & a { display: flex; align-items: baseline; gap: .625rem; padding: .625rem 0; border-bottom: 1px solid var(--nrit-vlak); color: inherit;
      &:hover .t-kop-5 { color: var(--nrit-oranje-donker); } }
    & .stip { transform: translateY(-2px); }
  }
}

/* Kennispartners */
.partnerlogos { display: flex; flex-direction: column; gap: .625rem; margin-top: .875rem; }
.partnerlogo {
  height: 76px; display: flex; align-items: center; justify-content: center; padding: .75rem;
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-kader); border-radius: var(--bs-border-radius);
  font-size: .9375rem; font-weight: 600; color: var(--nrit-grijs);
  & img { max-height: 100%; max-width: 100%; object-fit: contain; }
  &:hover { border-color: #cfc4b3; color: var(--nrit-inkt); }
}

/* Advertenties (IAB-formaten) */
.advertentie {
  display: flex; flex-direction: column; align-items: center; gap: .375rem;
  &::before { content: 'Advertentie'; font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--nrit-grijs-zacht); }
  & .advertentie__vlak {
    width: 100%; display: flex; align-items: center; justify-content: center;
    background: var(--nrit-vlak); border: 1px dashed #cfc4b3;
    font-family: var(--bs-font-monospace); font-size: .75rem; color: var(--nrit-grijs-licht);
    & img { display: block; width: 100%; height: 100%; object-fit: cover; }
  }
  & .adv-300x250 { max-width: 300px; height: 250px; }
  & .adv-300x600 { max-width: 300px; height: 600px; }
  & .adv-728x90  { max-width: 728px; height: 90px; }
  & .adv-970x250 { max-width: 970px; height: 250px; }
  &.advertentie--inline { padding: 1.5rem 0; border-bottom: 1px solid var(--nrit-lijn); }
  .t-leestekst &.advertentie--inline { border: 0; padding: .75rem 0; font-family: var(--nrit-font-ui); }
}

/* Banners (afbeelding + link)
   Eén blok met meerdere banners onder elkaar, zoals de kennispartners.
   Template: {{#banners}} <section class="banners"> … <a class="banner"><img></a> … */
.banners {
  display: flex; flex-direction: column; align-items: center; gap: .75rem;
  &::before { content: 'Advertentie'; font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--nrit-grijs-zacht); margin-bottom: -.375rem; }
}
.banner {
  display: block; width: 100%; max-width: 300px; overflow: hidden;
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-kader); border-radius: var(--bs-border-radius);
  transition: border-color .15s ease;
  & img { display: block; width: 100%; height: auto; }
  &:hover { border-color: #cfc4b3; }
}

/* Zoeken en filters */
.zoekveld {
  display: flex; align-items: center; gap: .75rem; max-width: 720px;
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-sterk); border-radius: var(--bs-border-radius-lg);
  padding: .875rem 1.125rem; color: var(--nrit-grijs-licht);
  &:focus-within { border-color: var(--nrit-oranje); box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); }
  & .zoekveld__input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 1.0625rem; color: var(--nrit-inkt); }
}
.filters {
  display: flex; flex-direction: column; gap: 1.75rem;
  & .filters__groep .t-label { margin-bottom: .625rem; }
}
@media (min-width: 992px) { .filters { max-width: 300px; } }

.filter-check {
  display: flex; align-items: center; gap: .625rem; padding: .4rem 0; margin: 0; min-height: 0;
  & .form-check-input { float: none; margin: 0; width: 1.125rem; height: 1.125rem; border: 1.5px solid #c9bfb2; border-radius: 3px;
    &:checked { background-color: var(--thema, var(--nrit-oranje)); border-color: var(--thema, var(--nrit-oranje)); }
    &:focus   { box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); border-color: var(--thema, var(--nrit-oranje)); }
  }
  & .form-check-label   { flex: 1; font-size: .9375rem; cursor: pointer; }
  & .filter-check__aantal { font-size: .8125rem; color: var(--nrit-grijs-licht); }
}

.filter-pill {
  --bs-btn-padding-y: .4rem; --bs-btn-padding-x: .875rem; --bs-btn-font-size: .875rem; --bs-btn-font-weight: 500;
  --bs-btn-color: var(--nrit-inkt); --bs-btn-bg: var(--nrit-wit); --bs-btn-border-color: var(--nrit-lijn-sterk);
  --bs-btn-hover-color: var(--nrit-inkt); --bs-btn-hover-bg: var(--nrit-wit); --bs-btn-hover-border-color: var(--nrit-inkt);
  --bs-btn-active-color: var(--nrit-wit); --bs-btn-active-bg: var(--nrit-inkt); --bs-btn-active-border-color: var(--nrit-inkt);
  --bs-btn-border-radius: var(--bs-border-radius-pill);
}

.resultatenbalk {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem;
  padding-bottom: .875rem; border-bottom: 2px solid var(--nrit-inkt);
}
.actieve-filters { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding-top: .875rem;
  &:empty { display: none; }
}
.filterchip {
  font-size: .8125rem; font-weight: 500; color: #8a4200; background: #fdeede;
  padding: .375rem .75rem; border-radius: var(--bs-border-radius-pill);
  &:hover { color: var(--nrit-inkt); }
  &.filterchip--wis { background: none; color: var(--nrit-grijs); text-decoration: underline; padding-inline: .25rem; }
}

/* Tabs met lijn (agenda) */
.tabs-lijn {
  gap: 1.5rem;
  & .nav-link {
    padding: .25rem 0; font-size: 1rem; font-weight: 600; color: var(--nrit-grijs-licht);
    border-bottom: 2px solid transparent;
    & span { font-weight: 400; color: var(--nrit-grijs-licht); }
    &:hover { color: var(--nrit-inkt); }
    &.active { color: var(--nrit-inkt); border-bottom-color: var(--nrit-oranje); }
  }
}

/* ── 7. Bootstrap-componenten bijsturen ─────────────────────── */
.btn-inkt {
  --bs-btn-padding-y: .625rem; --bs-btn-padding-x: 1.125rem; --bs-btn-font-size: .875rem; --bs-btn-font-weight: 600;
  --bs-btn-color: var(--nrit-wit); --bs-btn-bg: var(--nrit-inkt); --bs-btn-border-color: var(--nrit-inkt);
  --bs-btn-hover-color: var(--nrit-wit); --bs-btn-hover-bg: var(--nrit-oranje-donker); --bs-btn-hover-border-color: var(--nrit-oranje-donker);
  --bs-btn-active-bg: var(--nrit-oranje-donker); --bs-btn-active-border-color: var(--nrit-oranje-donker); --bs-btn-active-color: var(--nrit-wit);
  --bs-btn-border-radius: var(--bs-border-radius-pill);
}
.btn-lijn {
  --bs-btn-padding-y: .625rem; --bs-btn-padding-x: 1.125rem; --bs-btn-font-size: .875rem; --bs-btn-font-weight: 600;
  --bs-btn-color: var(--nrit-inkt); --bs-btn-bg: var(--nrit-wit); --bs-btn-border-color: var(--nrit-inkt);
  --bs-btn-hover-color: var(--nrit-wit); --bs-btn-hover-bg: var(--nrit-inkt); --bs-btn-hover-border-color: var(--nrit-inkt);
  --bs-btn-active-bg: var(--nrit-inkt); --bs-btn-active-color: var(--nrit-wit);
  --bs-btn-border-radius: var(--bs-border-radius-pill);
}

.form-select {
  --bs-border-color: var(--nrit-lijn-sterk);
  font-size: .875rem; background-color: var(--nrit-wit);
  &:focus { border-color: var(--nrit-oranje); box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); }
}

.weergave .btn {
  --bs-btn-font-size: .8125rem; --bs-btn-font-weight: 500;
  --bs-btn-color: var(--nrit-inkt); --bs-btn-bg: var(--nrit-wit); --bs-btn-border-color: var(--nrit-lijn-sterk);
  --bs-btn-hover-bg: var(--nrit-vlak); --bs-btn-hover-border-color: var(--nrit-lijn-sterk);
  --bs-btn-active-color: var(--nrit-wit); --bs-btn-active-bg: var(--nrit-inkt); --bs-btn-active-border-color: var(--nrit-inkt);
}

.pagination {
  --bs-pagination-gap: .375rem;
  --bs-pagination-color: var(--nrit-inkt);
  --bs-pagination-bg: var(--nrit-wit);
  --bs-pagination-border-color: var(--nrit-lijn-sterk);
  --bs-pagination-hover-color: var(--nrit-inkt);
  --bs-pagination-hover-bg: var(--nrit-vlak);
  --bs-pagination-hover-border-color: var(--nrit-lijn-sterk);
  --bs-pagination-focus-box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color);
  --bs-pagination-active-bg: var(--nrit-inkt);
  --bs-pagination-active-border-color: var(--nrit-inkt);
  --bs-pagination-disabled-color: #c9bfb2;
  --bs-pagination-disabled-bg: var(--nrit-wit);
  --bs-pagination-font-size: .875rem;
  gap: var(--bs-pagination-gap); flex-wrap: wrap;
  & .page-link { border-radius: var(--bs-border-radius) !important; min-width: 2.5rem; text-align: center; font-weight: 600; margin: 0 !important; }
}

/* ── 8. Generieke blokken (multisite) ───────────────────────── */
/* B03 · kruimelpad — generieke markup, NRIT-opmaak gelijk aan .t-kruimel */
.container-xl { max-width: 1280px; }
@media (min-width: 576px) { .container-xl { padding-inline: 2rem; } }

.b03-kruimelpad {
  & .breadcrumb {
    --bs-breadcrumb-margin-bottom: 0;
    --bs-breadcrumb-font-size: .8125rem;
    --bs-breadcrumb-item-padding-x: .375rem;
    --bs-breadcrumb-divider: '/';
    --bs-breadcrumb-divider-color: var(--nrit-grijs-zacht);
    --bs-breadcrumb-item-active-color: var(--nrit-grijs-licht);
    color: var(--nrit-grijs-licht);
  }
  & a { color: var(--nrit-grijs-licht); &:hover { color: var(--nrit-oranje-donker); } }
  /* kruimelpad is op mobiel verborgen (d-none d-md-block): dan de normale ruimte boven main houden */
  @media (min-width: 768px) { & + main { padding-top: 1rem !important; } }
}

/* ── 9. Lijstpagina's (CMS): kennisbank + agenda ─────────────── */

/* Onderwerp-filter als knoppen (één onderwerp tegelijk, AJAX via main.js) */
.filter-opties { display: flex; flex-direction: column; }
.filter-optie {
  display: flex; align-items: center; gap: .625rem; width: 100%;
  padding: .45rem .5rem; margin: 0 -.5rem; width: calc(100% + 1rem);
  border: 0; border-radius: var(--bs-border-radius); background: none;
  font-size: .9375rem; text-align: left; color: var(--nrit-inkt); cursor: pointer;
  & .stip { flex: none; }
  & .filter-optie__label { flex: 1; }
  & .filter-optie__aantal { font-size: .8125rem; color: var(--nrit-grijs-licht); }
  &:hover { background: var(--nrit-vlak); }
  &.active, &[aria-pressed="true"] { background: var(--thema-tint, var(--nrit-vlak)); font-weight: 600; color: var(--thema-donker, var(--nrit-inkt)); }
  &:focus-visible { outline: 2px solid var(--nrit-oranje); outline-offset: 1px; }
}

/* Weergave-knoppen: ook via aria-pressed (main.js) */
.weergave .btn[aria-pressed="true"] { color: var(--nrit-wit); background: var(--nrit-inkt); border-color: var(--nrit-inkt); }

/* Agenda: maandkoppen in één doorlopende lijst */
.event-groep .event-groep__kop:not(:first-child) { margin-top: 2.25rem; }

/* Geen resultaten */
.leeg-melding { padding: 3rem 0; text-align: center; max-width: 520px; margin: 0 auto; }

/* Laden (AJAX) */
[data-nrit-blok].is-laden [data-nrit-resultaten],
[data-nrit-blok].is-laden .event-groep { opacity: .45; transition: opacity .15s ease; pointer-events: none; }

/* Filterblokken (kennisbank): wit vlak met gekleurde bovenrand (de vier logokleuren) */
.filters__groep--partners,
.filters__groep--uitgaven,
.filters__groep--onderwerpen,
.filters__groep--jaar {
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-kader); border-top: 4px solid var(--nrit-oranje);
  border-radius: var(--bs-border-radius); padding: 1rem 1.125rem .875rem;
}
.filters__groep--uitgaven    { border-top-color: var(--nrit-cyaan); }
.filters__groep--onderwerpen { border-top-color: var(--nrit-groen); }
.filters__groep--jaar        { border-top-color: var(--nrit-magenta); }
/* partners en uitgaven hebben geen themakleur: neutrale selectie */
.filters__groep--partners,
.filters__groep--uitgaven {
  & .filter-optie { --thema-tint: var(--nrit-vlak); --thema-donker: var(--nrit-inkt); font-weight: 500; }
}

/* "Alle … / Minder …" onder een lange lijst (knop wordt door main.js geplaatst) */
.filters__meer {
  display: inline-flex; align-items: center; gap: .375rem;
  margin-top: .375rem; padding: 0; border: 0; background: none;
  font-size: .875rem; font-weight: 600; color: var(--nrit-oranje-donker);
  &::after { content: '▾'; transition: transform .2s; }
  & .filters__meer-dicht { display: none; }
  &[aria-expanded="true"] {
    &::after { transform: rotate(180deg); }
    & .filters__meer-open  { display: none; }
    & .filters__meer-dicht { display: inline; }
  }
  &:hover { color: var(--nrit-inkt); }
}

/* Filterchips als knop (main.js bouwt ze op) */
button.filterchip { border: 0; line-height: inherit; cursor: pointer; }
.actieve-filters[hidden] { display: none; }

/* ── 10. Leeshulpen lange artikelen (artikel.js) ──────────────
   A08 in het kort · A09 inhoudsopgave · A10 leesvoortgang · A11 naar boven */

/* hidden wint altijd, ook van d-lg-block */
[data-inhoud][hidden], [data-leesvoortgang][hidden], [data-naar-boven][hidden] { display: none !important; }

/* koppen niet onder de rand laten verdwijnen bij springen */
.t-leestekst :is(h2, h3, h4) { scroll-margin-top: 1.5rem; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* A08 · In het kort */
.in-het-kort {
  max-width: 680px;
  margin: 0 0 2rem;
  padding: 1.25rem 1.5rem 1.375rem;
  background: var(--thema-tint, var(--nrit-vlak));
  border-left: 4px solid var(--thema, var(--nrit-oranje));
  border-radius: 0 var(--bs-border-radius) var(--bs-border-radius) 0;
  & .in-het-kort__kop {
    margin: 0 0 .625rem;
    font-family: var(--nrit-font-ui); font-size: .75rem; font-weight: 600;
    letter-spacing: .07em; text-transform: uppercase;
    color: var(--thema-donker, var(--nrit-oranje-donker));
  }
  & ul { margin: 0; padding-left: 1.125rem; display: flex; flex-direction: column; gap: .5rem; }
  & li {
    font-family: var(--nrit-font-ui); font-size: 1rem; line-height: 1.5; color: var(--nrit-inkt);
    &::marker { color: var(--thema-donker, var(--nrit-oranje-donker)); }
  }
}

/* A09 · Inhoudsopgave */
.inhoud {
  font-family: var(--nrit-font-ui);
  & ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
  & a {
    display: block; padding: .4rem 0 .4rem .875rem;
    border-left: 2px solid var(--nrit-lijn);
    font-size: .875rem; line-height: 1.35; color: var(--nrit-inkt-2);
    &:hover { color: var(--nrit-inkt); border-left-color: var(--nrit-lijn-sterk); }
    &.is-actief { color: var(--nrit-inkt); font-weight: 600; border-left-color: var(--thema, var(--nrit-oranje)); }
  }
  & .inhoud__sub a { padding-left: 1.625rem; font-size: .8125rem; }
}
/* desktop: laatste blok in de zijkolom, blijft staan */
.inhoud--zij {
  position: sticky; top: 1.5rem;
  max-height: calc(100vh - 3rem); overflow-y: auto;
  & .inhoud__kop {
    padding-bottom: .625rem; margin-bottom: .5rem; border-bottom: 2px solid var(--nrit-inkt);
    font-size: 1.125rem; font-weight: 700; color: var(--nrit-inkt);
  }
}
/* de themakleur van het artikel doorgeven aan de zijkolom */
.row:has(> div > article.thema-cyaan)   .inhoud { --thema: var(--nrit-cyaan); }
.row:has(> div > article.thema-groen)   .inhoud { --thema: var(--nrit-groen); }
.row:has(> div > article.thema-magenta) .inhoud { --thema: var(--nrit-magenta); }
.row:has(> div > article.thema-oranje)  .inhoud { --thema: var(--nrit-oranje); }

/* mobiel: uitklapbaar boven de tekst */
.inhoud--mobiel {
  margin: 0 0 2rem;
  background: var(--nrit-wit);
  border: 1px solid var(--nrit-lijn-kader); border-radius: var(--bs-border-radius);
  & summary {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    padding: .875rem 1.125rem; cursor: pointer; list-style: none;
    font-size: .9375rem; font-weight: 600; color: var(--nrit-inkt);
    &::-webkit-details-marker { display: none; }
    &::after { content: '▾'; color: var(--nrit-grijs); transition: transform .2s ease; }
  }
  &[open] summary::after { transform: rotate(180deg); }
  & ol { padding: 0 1.125rem 1rem; }
}

/* A10 · Leesvoortgang */
.leesvoortgang {
  position: fixed; inset: 0 0 auto 0; z-index: 1030; height: 3px;
  background: transparent; pointer-events: none;
  & span {
    display: block; height: 100%; width: 100%;
    background: var(--nrit-oranje);
    transform-origin: 0 50%;
    transform: scaleX(var(--voortgang, 0));
  }
}

/* A11 · Terug naar boven */
.naar-boven {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1020;
  display: flex; align-items: center; justify-content: center;
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  background: var(--nrit-inkt); color: var(--nrit-wit);
  box-shadow: 0 6px 18px rgba(31, 26, 23, .2);
  &:hover { background: var(--nrit-oranje-donker); color: var(--nrit-wit); }
  &:focus-visible { outline: 2px solid var(--nrit-oranje); outline-offset: 2px; }
}


/* ── 11. Informatiepagina's: over, contact, privacy ─────────── */

/* Kader: wit vlak met gekleurde bovenrand (logokleuren) */
.kader {
  background: var(--nrit-wit); border: 1px solid var(--nrit-lijn-kader); border-top: 4px solid var(--nrit-oranje);
  border-radius: var(--bs-border-radius); padding: 1.375rem;
  &.kader--cyaan   { border-top-color: var(--nrit-cyaan); }
  &.kader--groen   { border-top-color: var(--nrit-groen); }
  &.kader--magenta { border-top-color: var(--nrit-magenta); }
}

/* Informatiepagina's: over, contact, privacy */
.cover {
  width: 100%; max-width: 200px; aspect-ratio: 3 / 4;
  background: var(--thema-tint, #fcecdb) repeating-linear-gradient(45deg, transparent 0 9px, rgba(31, 26, 23, .04) 9px 10px);
  border: 1px solid var(--nrit-lijn-kader); box-shadow: 0 8px 20px rgba(31, 26, 23, .1);
  display: flex; align-items: center; justify-content: center; text-align: center;
  font-family: var(--bs-font-monospace); font-size: .6875rem; color: rgba(31, 26, 23, .45);
  & img { width: 100%; height: 100%; object-fit: cover; }
}
.uitgave-kaart { display: flex; flex-direction: column; gap: .625rem; }

.partner-rij {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem;
  padding: 1.125rem 0; border-bottom: 1px solid var(--nrit-lijn);
  & .partnerlogo { width: 160px; height: 72px; flex: none; }
  & > div:last-child { flex: 1 1 260px; min-width: 0; }
  & .t-kop-5 { margin-bottom: .25rem; font-size: 1.125rem; }
}
.colofon {
  max-width: 680px; margin: 0;
  & .colofon__rij { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; padding: .75rem 0; border-bottom: 1px solid var(--nrit-lijn); }
  & dt { width: 160px; margin: 0; padding-top: .2rem; }
  & dd { flex: 1; margin: 0; }
}

.adres { font-style: normal; font-size: .9375rem; line-height: 1.6; color: var(--nrit-inkt-2); margin: 0; }
.contactlijst {
  margin: 0;
  & > div { padding: .75rem 0; border-bottom: 1px solid var(--nrit-vlak); &:last-child { border-bottom: 0; } }
  & dt { margin-bottom: .2rem; }
  & dd { margin: 0; font-size: .9375rem; }
}
.adres a, .contactlijst a { color: var(--nrit-oranje-donker); &:hover { color: var(--nrit-inkt); } }

.formulier {
  & .form-label { font-size: .875rem; font-weight: 600; margin-bottom: .375rem; }
  & .form-control, & .form-select {
    --bs-border-color: var(--nrit-lijn-sterk);
    padding: .75rem .875rem; font-size: 1rem; background-color: var(--nrit-wit);
    &:focus { border-color: var(--nrit-oranje); box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); }
  }
  & textarea.form-control { line-height: 1.5; resize: vertical; }
  & .form-check-input {
    width: 1.125rem; height: 1.125rem; border: 1.5px solid #c9bfb2;
    &:checked { background-color: var(--nrit-inkt); border-color: var(--nrit-inkt); }
    &:focus   { box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); border-color: var(--nrit-oranje); }
  }
  & .form-check-label { font-size: .9375rem; & a { color: var(--nrit-oranje-donker); text-decoration: underline; } }
}

.statement {
  & h2 { font-size: 1.375rem; margin-top: .75rem; }
  & .statement__deel { margin: 2rem 0 0; padding-bottom: .625rem; border-bottom: 2px solid var(--nrit-inkt); font-family: var(--nrit-font-ui); scroll-margin-top: calc(var(--nrit-header-h) + 1.5rem); &:first-child { margin-top: 0; } }
  & h2[id] { scroll-margin-top: calc(var(--nrit-header-h) + 1.5rem); }
}
.inhoud-nav {
  position: sticky; top: calc(var(--nrit-header-h) + 1.5rem);
  & .t-label { margin-bottom: .5rem; }
  & ol { margin: 0; }
  & .inhoud-nav__kop { font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--nrit-oranje-donker); padding: .75rem 0 .25rem; &:first-child { padding-top: 0; } }
  & a { display: block; font-size: .875rem; line-height: 1.3; padding: .3rem 0; }
}

.tabel-wrap { overflow-x: auto; font-family: var(--nrit-font-ui); }
.tabel {
  width: 100%; min-width: 520px; border-collapse: collapse; font-size: .9375rem; line-height: 1.45;
  & th { text-align: left; padding: .625rem .75rem; border-bottom: 2px solid var(--nrit-inkt); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--nrit-grijs-licht); }
  & td { padding: .75rem; border-bottom: 1px solid var(--nrit-lijn); vertical-align: top; }
  & th:first-child, & td:first-child { padding-left: 0; }
  & td:first-child { font-weight: 600; }


/* ── 12. Print ──────────────────────────────────────────────── */
@media print {
  .nrit-header, .nrit-merkbalk, .b03-kruimelpad, .zijkolom,
  .advertentie, .banners, .nrit-footer,
  .leesvoortgang, .naar-boven, .inhoud, .inhoud-nav { display: none !important; }
}
