/* ---------------------------------------------------------------------------
 * reset.css — basislijn voor alle browsers (baserules 5)
 *
 * Wordt op elke pagina als eerste ingeladen, vóór fonts.css en main.css. Doel
 * is niet "alles op nul" maar: één voorspelbaar vertrekpunt, zodat geen enkele
 * regel in main.css of een template-CSS nog een browserstandaard hoeft te
 * overschrijven.
 * --------------------------------------------------------------------------- */

/* Box-sizing erven, zodat een component het lokaal kan omzetten zonder de
   regel voor de hele boom te doorbreken. */
html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

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

/* Marges van de browser weg. Ritme komt uit de component, niet uit de UA. */
body,
h1, h2, h3, h4, h5, h6,
p,
figure, figcaption,
blockquote,
dl, dd,
ol, ul,
fieldset, legend {
    margin: 0;
    padding: 0;
}

ol, ul {
    list-style: none;
}

/* Koppen erven hun grootte; elk niveau krijgt zijn maat in main.css of in de
   template-CSS. Zo bepaalt de documentstructuur de koppen, niet het ontwerp. */
h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
}

/* Media is blok en krimpt mee. Zonder display:block houdt de browser de
   baseline-ruimte onder een img over. */
img, picture, video, canvas, svg, iframe {
    display: block;
    max-width: 100%;
}

img, video {
    height: auto;
}

/* Formuliervelden erven typografie; browsers gebruiken anders hun eigen font. */
input, button, textarea, select {
    font: inherit;
    color: inherit;
}

button {
    background: none;
    border: 0;
    cursor: pointer;
}

textarea {
    resize: vertical;
}

a {
    color: inherit;
    text-decoration: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
}

th {
    text-align: left;
}

/* Focus blijft altijd zichtbaar — nooit outline:none zonder vervanging. */
:focus-visible {
    outline: 3px solid var(--kleurAccent, #23a892);
    outline-offset: 2px;
}

/* Wie beweging heeft afgezet, krijgt geen beweging. Ook de motion.dev-animaties
   worden in motionInit.js op deze voorkeur gecontroleerd. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
        scroll-behavior: auto !important;
    }
}
