/* util.css — statische, handgeschreven utility-laag die de runtime Tailwind-CDN
 * vervangt op de kosmische pagina's. Géén build-pipeline (CLAUDE.md: lage op-last):
 * exact de utilities die de templates gebruiken, met de Tailwind-schaal (1 unit =
 * 0.25rem). Laadt vóór cosmic.css zodat `.cosmic …`-regels (hogere specificiteit)
 * altijd winnen. Licht-thema-utilities (slate/emerald) zitten bewust NIET hier —
 * die hoorden bij de dode base.html, die geen enkele geserveerde pagina extend't.
 *
 * Bij een NIEUWE Tailwind-utility in een template: voeg 'm hier toe (de UAT vangt
 * geen ontbrekende utility — dit bestand is de bron).
 */

/* margin-top */
.mt-1 { margin-top: 0.25rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-8 { margin-top: 2rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-14 { margin-top: 3.5rem; }
.mt-16 { margin-top: 4rem; }
.mt-20 { margin-top: 5rem; }

/* margin-bottom */
.mb-1 { margin-bottom: 0.25rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-8 { margin-bottom: 2rem; }

/* margin-inline auto */
.mx-auto { margin-left: auto; margin-right: auto; }

/* padding-bottom */
.pb-16 { padding-bottom: 4rem; }
.pb-20 { padding-bottom: 5rem; }
.pb-24 { padding-bottom: 6rem; }

/* padding x/y */
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }

/* flexbox */
.flex { display: flex; }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1 1 0%; }
.items-center { align-items: center; }
.items-start { align-items: flex-start; }
.items-end { align-items: flex-end; }
.justify-between { justify-content: space-between; }
.justify-center { justify-content: center; }

/* gap */
.gap-2 { gap: 0.5rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }

/* vertical rhythm (space-y-*) */
.space-y-3 > :not([hidden]) ~ :not([hidden]) { margin-top: 0.75rem; }
.space-y-4 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem; }
.space-y-5 > :not([hidden]) ~ :not([hidden]) { margin-top: 1.25rem; }

/* sizing */
.w-full { width: 100%; }
.min-w-0 { min-width: 0; }
.max-w-lg { max-width: 32rem; }
.max-w-xl { max-width: 36rem; }
.max-w-4xl { max-width: 56rem; }

/* typografie-helpers (de cosmic-fonts/kleuren komen uit cosmic.css) */
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-center { text-align: center; }
.font-semibold { font-weight: 600; }
.tracking-tight { letter-spacing: -0.025em; }

/* randen (kleur volgt de kosmische lijn-token) */
.border-t { border-top: 1px solid var(--line); }
.border-b { border-bottom: 1px solid var(--line); }

/* a11y: visueel verborgen, leesbaar voor screenreaders */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
