/* ==========================================================================
   BKA 2026 v5 · 2/8 BASE – reset, elements, typography.
   Element rules use :where() so any single class overrides them.
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: calc(var(--v5-header-h) + 1rem);
	background: var(--v5-white);
}

@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

body {
	margin: 0;
	min-height: 100vh;
	background: var(--v5-white);
	color: var(--v5-ink);
	font-family: var(--v5-font-text);
	font-size: var(--v5-fs-body);
	font-weight: var(--v5-w-text);
	line-height: var(--v5-lh-body);
	font-synthesis: none;
	font-kerning: normal;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

/* Kriszta 10-06: nothing is ever italic on the site. */
:where(em, i, cite, var, dfn, address, blockquote, q) { font-style: normal; }
:where(em, i) { font-weight: var(--v5-w-bold); }

:where(h1, h2, h3, h4, h5, h6) {
	margin: 0 0 .5em;
	font-family: var(--v5-font-display);
	font-weight: var(--v5-w-display);
	font-synthesis: none;
	line-height: var(--v5-lh-heading);
	letter-spacing: 0;
	color: var(--v5-ink);
	text-wrap: balance;
	overflow-wrap: break-word;
	hyphens: manual;
}
:where(h1) { font-size: var(--v5-fs-hero); line-height: var(--v5-lh-tight); }
:where(h2) { font-size: var(--v5-fs-h2); }
:where(h3) { font-size: var(--v5-fs-h3); }
:where(h4) { font-size: var(--v5-fs-h4); }
:where(h5, h6) { font-size: 1.0625rem; }

:where(p, ul, ol, dl, blockquote, figure, table, pre) { margin: 0 0 1.15em; }
:where(p) { text-wrap: pretty; }
:where(ul, ol) { padding-left: 1.25em; }
:where(li + li) { margin-top: .35em; }
:where(strong, b) { font-weight: var(--v5-w-bold); }
:where(small) { font-size: var(--v5-fs-small); }
:where(hr) { height: 1px; margin: 2.5rem 0; border: 0; background: var(--v5-line); }

:where(a) {
	color: var(--v5-red);
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
	transition: color var(--v5-dur) var(--v5-ease), text-decoration-color var(--v5-dur) var(--v5-ease);
}
:where(a:hover) { color: var(--v5-red-600); text-decoration-thickness: 2px; }

:where(img, svg, video, canvas, iframe) { display: block; max-width: 100%; }
:where(img, video) { height: auto; }
:where(svg) { flex: none; }
:where(figure) { margin: 0; }

:where(button, input, select, textarea) { font: inherit; color: inherit; }
:where(button) { cursor: pointer; }
:where(button:disabled) { cursor: not-allowed; }
:where(table) { width: 100%; border-collapse: collapse; }
:where(th, td) { padding: .65rem .75rem; border-bottom: 1px solid var(--v5-line); text-align: left; vertical-align: top; }

:where(:focus-visible) { outline: none; box-shadow: var(--v5-focus); border-radius: 4px; }

::selection { background: var(--v5-red-200); color: var(--v5-ink); }

[hidden] { display: none !important; } /* the only !important: the HTML hidden contract must never lose to a component display rule */

.screen-reader-text,
.v5-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.v5-skip-link {
	position: fixed;
	z-index: 1000;
	top: .75rem;
	left: .75rem;
	padding: .75rem 1.25rem;
	border-radius: var(--v5-radius-pill);
	background: var(--v5-red);
	color: #fff;
	font-weight: var(--v5-w-bold);
	text-decoration: none;
	transform: translateY(-200%);
	transition: transform var(--v5-dur) var(--v5-ease);
}
.v5-skip-link:focus { transform: none; color: #fff; }

/* Icons */
.v5-icon { width: 1.25em; height: 1.25em; }
.v5-icon--illustration { width: 3rem; height: 3rem; }

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .001ms;
		animation-iteration-count: 1;
		transition-duration: .001ms;
		scroll-behavior: auto;
	}
}
