/* Eén nieuwsontwerp voor alle portalthema's. Alleen kleuren en letters komen uit het thema. */
:is(.fr-rubriek-nieuws,.portal-nieuwsartikel) {
    --nieuws-inkt: var(--fr-tekst, #253345);
    --nieuws-stil: var(--fr-stil, #5a6879);
    --nieuws-lijn: var(--fr-rand, #d7dfe7);
    --nieuws-kaart: var(--fr-kaart, #fff);
    --nieuws-vlak: var(--fr-ph, var(--fr-lijn, #edf2f6));
    --nieuws-link: var(--fr-link, var(--fr-blauw, #285779));
    --nieuws-kop: var(--fr-serif, Georgia, serif);
    --nieuws-letter: var(--fr-sans, system-ui, sans-serif);
    color: var(--nieuws-inkt);
    font-family: var(--nieuws-letter);
    min-width: 0;
}
.fr-rubriek-nieuws .fr-rubriek-kop { display: flex; flex-wrap: wrap; align-items: baseline; gap: .6rem 1rem; margin: 0 0 1rem; }
.fr-rubriek-nieuws .fr-rubriek-kop h1 { margin: 0; font: 700 clamp(1.8rem, 3vw, 2.5rem)/1.15 var(--nieuws-kop); color: var(--nieuws-inkt); }
.fr-rubriek-nieuws .fr-rubriek-datum { font: 400 .8rem/1.5 var(--nieuws-letter); color: var(--nieuws-stil); }
.fr-rubriek-nieuws .fr-rubriek-intro { margin: 0 0 1.25rem; max-width: 68ch; font: 400 1rem/1.65 var(--nieuws-letter); color: var(--nieuws-stil); }
.fr-rubriek-nieuws .fr-filters:not(.fr-filters--bron) { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.25rem 0; }
.fr-rubriek-nieuws .fr-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--nieuws-lijn); border-radius: 2rem; background: var(--nieuws-kaart); color: var(--nieuws-inkt); font: 600 .875rem/1.2 var(--nieuws-letter); text-decoration: none; cursor: pointer; white-space: nowrap; }
.fr-rubriek-nieuws .fr-chip:hover { border-color: var(--nieuws-link); }
.fr-rubriek-nieuws .fr-chip.is-aan { background: var(--nieuws-inkt); color: var(--nieuws-kaart); border-color: var(--nieuws-inkt); }
.fr-rubriek-nieuws .fr-rubriek-leeg { color: var(--nieuws-stil); padding: 1rem 0; }
.fr-nieuwslijst { display: flex; flex-direction: column; gap: 1rem; margin-top: 1.25rem; }
.fr-nieuwslijst[hidden], .fr-nieuwskaart[hidden], .fr-rubriek-nieuws [data-fr-filter-leeg][hidden] { display: none !important; }
.fr-nieuwskaart { display: flex; position: relative; gap: 1.1rem; padding: 1rem; background: var(--nieuws-kaart); color: var(--nieuws-inkt); border: 1px solid var(--nieuws-lijn); border-radius: .75rem; }
.fr-nieuwskaart:hover { border-color: var(--nieuws-link); }
.fr-nieuwskaart:focus-within { outline: 2px solid var(--nieuws-link); outline-offset: 3px; }
.fr-nieuwskaart .fr-nieuwskaart-kop { margin: 0; font: 700 1.25rem/1.3 var(--nieuws-kop); color: var(--nieuws-inkt); }
.fr-nieuwskaart-kop a { color: inherit; text-decoration: none; }
.fr-nieuwskaart-kop a::after { content: ''; position: absolute; inset: 0; border-radius: .75rem; }
.fr-nieuwskaart-kop a:focus-visible { outline: none; }
.fr-nieuwskaart:hover .fr-nieuwskaart-kop a { color: var(--nieuws-link); }
.fr-nieuwskaart-figuur { flex: 0 0 200px; width: 200px; max-width: 100%; margin: 0; }
.fr-nieuwskaart-beeld { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: .4rem; background: var(--nieuws-vlak); }
.fr-nieuwskaart-beeld picture, .fr-nieuwskaart-beeld img { display: block; width: 100%; height: 100%; object-fit: cover; }
.fr-nieuwskaart-beeld img.nieuws-bronlogo { object-fit: contain; background: #fff; padding: .75rem; }
.fr-nieuwskaart-beeld.is-eigenvlak { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .2rem; padding: .6rem; text-align: center; box-shadow: inset 0 3px var(--nieuws-link); }
.fr-nieuwskaart-beeld.is-eigenvlak i { font-size: 1.6rem; line-height: 1; color: var(--nieuws-link); }
.fr-nieuwskaart-beeld.is-eigenvlak b { font: 600 .8rem/1.3 var(--nieuws-letter); overflow-wrap: anywhere; }
.fr-nieuwskaart-beeld.is-eigenvlak span { font: 400 .7rem/1.3 var(--nieuws-letter); color: var(--nieuws-stil); }
.fr-nieuwskaart-fotobron { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; margin-top: .3rem; font: 400 .7rem/1.4 var(--nieuws-letter); color: var(--nieuws-stil); }
.fr-nieuwskaart-tekst { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.fr-nieuwskaart .fr-nieuwskaart-lead { margin: .5rem 0 0; max-width: none; color: var(--nieuws-stil); font: 400 .9375rem/1.6 var(--nieuws-letter); }
.fr-nieuwskaart .fr-nieuwskaart-meta { display: flex; flex-wrap: wrap; gap: .25rem .5rem; margin: auto 0 0; padding-top: .7rem; max-width: none; color: var(--nieuws-stil); font: 400 .8rem/1.5 var(--nieuws-letter); }
.fr-nieuwskaart-meta-deel { display: inline-flex; align-items: baseline; }
.fr-nieuwskaart-meta-deel + .fr-nieuwskaart-meta-deel::before { content: '·'; margin-right: .5rem; }
.fr-nieuwskaart-meta time { font-variant-numeric: tabular-nums; }
.portal-nieuwsartikel { width: 100%; max-width: 760px; margin: 0 auto; overflow-wrap: break-word; }
.portal-nieuwsartikel-kruimel { display: flex; flex-wrap: wrap; gap: .4rem .6rem; margin-bottom: 2rem; color: var(--nieuws-stil); font: 400 .8rem/1.5 var(--nieuws-letter); }
.portal-nieuwsartikel a { color: var(--nieuws-link); text-underline-offset: .2em; }
.portal-nieuwsartikel-kruimel a { text-decoration: none; }
.portal-nieuwsartikel-kruimel [aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.portal-nieuwsartikel-label { display: inline-block; margin: 0 0 1rem; padding: .35rem .65rem; border-radius: .3rem; background: var(--nieuws-vlak); color: var(--nieuws-link); font: 600 .8rem/1.3 var(--nieuws-letter); }
.portal-nieuwsartikel .portal-nieuwsartikel-kop h1 { margin: 0 0 1.25rem; font: 700 clamp(2rem, 3.2vw, 2.8rem)/1.15 var(--nieuws-kop); color: var(--nieuws-inkt); text-wrap: balance; }
.portal-nieuwsartikel .portal-nieuwsartikel-lead { margin: 0; max-width: none; color: var(--nieuws-stil); font: 400 1.2rem/1.65 var(--nieuws-letter); }
.portal-nieuwsartikel-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; padding: 1.25rem 0; margin: .5rem 0 1.5rem; border-bottom: 1px solid var(--nieuws-lijn); color: var(--nieuws-stil); font: 400 .875rem/1.4 var(--nieuws-letter); }
.portal-nieuwsartikel-auteur { display: inline-flex; align-items: center; gap: .55rem; color: var(--nieuws-inkt); font-weight: 600; }
.portal-nieuwsartikel-initialen { display: inline-flex; align-items: center; justify-content: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--nieuws-vlak); color: var(--nieuws-link); font-size: .75rem; }
.portal-nieuwsartikel-figuur { margin: 0 0 2rem; }
.portal-nieuwsartikel-beeld { width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: .65rem; background: var(--nieuws-vlak); }
.portal-nieuwsartikel-beeld picture, .portal-nieuwsartikel-beeld img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portal-nieuwsartikel-figuur figcaption { margin: .6rem 0 0; font: 400 .8rem/1.55 var(--nieuws-letter); color: var(--nieuws-stil); }
.portal-nieuwsartikel-tekst { max-width: 68ch; margin: 0 auto; font: 400 1.0625rem/1.7 var(--nieuws-letter); }
.portal-nieuwsartikel-tekst p { max-width: none; margin: 0 0 1.3em; font: inherit; color: inherit; }
.portal-nieuwsartikel-tekst :is(h2,h3) { margin: 1.8em 0 .7em; font: 700 1.55rem/1.3 var(--nieuws-kop); color: var(--nieuws-inkt); }
.portal-nieuwsartikel-tekst h3 { font-size: 1.25rem; }
.portal-nieuwsartikel-tekst :first-child { margin-top: 0; }
.portal-nieuwsartikel-tekst :is(ul,ol) { padding-left: 1.4em; margin: 0 0 1.3em; }
.portal-nieuwsartikel-tekst li + li { margin-top: .45em; }
.portal-nieuwsartikel-tekst img { max-width: 100%; height: auto; }
.portal-nieuwsartikel-tekst :is(a,pre) { overflow-wrap: anywhere; }
.portal-nieuwsartikel-tekst pre { white-space: pre-wrap; }
.portal-nieuwsartikel-bronnen { margin: 2rem 0; padding: 1.25rem 1.4rem; border: 1px solid var(--nieuws-lijn); border-radius: .65rem; background: var(--nieuws-vlak); font: 400 .9rem/1.65 var(--nieuws-letter); }
.portal-nieuwsartikel .portal-nieuwsartikel-bronnen h2 { margin: 0 0 .65rem; font: 600 1rem/1.4 var(--nieuws-letter); color: var(--nieuws-inkt); }
.portal-nieuwsartikel-bronnen :is(ul,ol) { margin: 0; padding-left: 1.2rem; }
.portal-nieuwsartikel-bronnen li + li { margin-top: .5rem; }
.portal-nieuwsartikel-bronnen a { overflow-wrap: anywhere; }
.portal-nieuwsartikel-voet { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem; padding: 1.25rem 0; border-top: 1px solid var(--nieuws-lijn); font: 600 .875rem/1.5 var(--nieuws-letter); }
.portal-nieuwsartikel-verwant { margin: 1.5rem 0 0; padding-top: 1rem; }
.portal-nieuwsartikel .portal-nieuwsartikel-verwant > h2 { margin: 0; font: 700 1.65rem/1.3 var(--nieuws-kop); color: var(--nieuws-inkt); }
.portal-nieuwsartikel .fr-nieuwskaart-kop a { color: var(--nieuws-inkt); }
@media (max-width: 767px) {
    /* Elk stukje metadata verhuist in zijn geheel. Geen los puntje op een nieuwe regel (C20 M-7). */
    .fr-nieuwskaart-meta-deel { flex-basis: 100%; }
    .fr-nieuwskaart-meta-deel + .fr-nieuwskaart-meta-deel::before { content: none; }
}
@media (max-width: 600px) {
    .fr-nieuwskaart { flex-direction: column; gap: .85rem; }
    .fr-nieuwskaart-figuur { flex: none; width: 100%; }
    .fr-nieuwskaart .fr-nieuwskaart-kop { font-size: 1.2rem; }
    .portal-nieuwsartikel-kruimel { margin-bottom: 1.5rem; }
    .portal-nieuwsartikel .portal-nieuwsartikel-lead { font-size: 1.0625rem; }
    .portal-nieuwsartikel-meta { gap: .7rem 1rem; }
    .portal-nieuwsartikel-auteur { flex-basis: 100%; }
    .portal-nieuwsartikel-tekst { font-size: 1rem; }
}

/* De bronkeuze boven het nieuws. Op een breed scherm de rij knoppen hierboven; op een telefoon
   een knop die een keuzevenster opent. Dat venster is een <details>, dus het werkt zonder
   JavaScript en er is geen inline script voor nodig. */
.fr-bronfilter { margin-top: 0.85rem; }
.fr-bronfilter .fr-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
.fr-bronkiezer { display: none; }

@media (max-width: 640px) {
    .fr-bronfilter .fr-filters--bron { display: none; }
    .fr-bronkiezer { display: block; }

    .fr-bronkiezer > summary {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        min-height: 44px;
        padding: 0 0.95rem;
        border: 1px solid var(--nieuws-lijn);
        border-radius: 999px;
        background: var(--nieuws-kaart);
        color: var(--nieuws-inkt);
        font: 600 0.9375rem/1.2 var(--nieuws-letter);
        cursor: pointer;
        list-style: none;
    }

    .fr-bronkiezer > summary::-webkit-details-marker { display: none; }

    .fr-bronkiezer-label {
        font-size: 0.75rem;
        font-weight: 700;
        letter-spacing: 0.04em;
        text-transform: uppercase;
        color: var(--nieuws-stil);
    }

    .fr-bronkiezer-keuze { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .fr-bronkiezer-pijl { flex: 0 0 auto; color: var(--nieuws-stil); }
    .fr-bronkiezer[open] > summary { border-color: var(--nieuws-link); }

    .fr-bronkiezer-paneel {
        margin-top: 0.5rem;
        border: 1px solid var(--nieuws-lijn);
        border-radius: 0.9rem;
        background: var(--nieuws-kaart);
        overflow: hidden;
    }

    .fr-bronkiezer-kop {
        margin: 0;
        padding: 0.7rem 0.95rem 0.45rem;
        font: 700 0.8125rem/1.3 var(--nieuws-letter);
        color: var(--nieuws-stil);
    }

    .fr-bronkiezer-regel {
        display: flex;
        align-items: center;
        gap: 0.6rem;
        min-height: 46px;
        padding: 0 0.95rem;
        border-top: 1px solid var(--nieuws-lijn);
        color: var(--nieuws-inkt);
        text-decoration: none;
        font: 500 0.9375rem/1.3 var(--nieuws-letter);
    }

    .fr-bronkiezer-naam { flex: 1 1 auto; min-width: 0; }
    .fr-bronkiezer-aantal { flex: 0 0 auto; font-size: 0.8125rem; color: var(--nieuws-stil); font-variant-numeric: tabular-nums; }
    .fr-bronkiezer-regel.is-aan { background: var(--nieuws-vlak); font-weight: 700; }
}
