/* ==========================================================================
   Base — reset + základní typografie (mobile-first)
   ========================================================================== */

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

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

body {
	margin: 0;
	font-family: var(--font-base);
	font-size: var(--fs-body);
	font-weight: var(--fw-regular);
	line-height: var(--lh-body);
	color: var(--color-fg);
	background-color: var(--color-bg);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--space-s);
	color: var(--color-heading);
	font-weight: var(--fw-bold);
	line-height: var(--lh-heading);
	letter-spacing: var(--ls-heading);
}

h1 { font-size: var(--fs-h1); letter-spacing: var(--ls-h1); line-height: 1; }
h2 { font-size: var(--fs-h2); font-weight: var(--fw-medium); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5 { font-size: var(--fs-h5); font-weight: var(--fw-medium); }

p { margin: 0 0 var(--space-s); }

a { color: var(--color-link); text-decoration: none; transition: color var(--transition); }
a:hover { text-decoration: underline; }

img, svg, video { max-width: 100%; height: auto; display: block; }

ul, ol { margin: 0 0 var(--space-s); padding-left: 1.25rem; }

button { font: inherit; cursor: pointer; }

:focus-visible { outline: 2px solid var(--c-blue); outline-offset: 3px; }
