/* ==========================================================================
   02 — Base: reset, typography
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 16px);
}

body {
	margin: 0;
	font-family: var(--font);
	font-size: var(--fs-md);
	line-height: 1.85;
	color: var(--ink);
	background: var(--cream);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body.is-locked { overflow: hidden; }

h1, h2, h3, h4, h5, h6 { margin: 0; line-height: 1.35; font-weight: 800; color: var(--green-deep); letter-spacing: -.005em; }
p { margin: 0; }
a { color: inherit; text-decoration: none; }
img, svg, video { display: block; max-width: 100%; height: auto; }
ul, ol { margin: 0; padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
button { background: none; border: 0; padding: 0; cursor: pointer; }
dl, dd, figure { margin: 0; }
table { border-collapse: collapse; width: 100%; }
[hidden] { display: none !important; }
::selection { background: var(--gold-light); color: var(--green-deep); }

:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; border-radius: 6px; }

.sr-only, .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip { position: fixed; top: -80px; right: 16px; z-index: 999; padding: 10px 16px; background: var(--green); color: #fff; border-radius: var(--r-sm); transition: top var(--t); }
.skip:focus { top: 12px; }

.ico { width: 22px; height: 22px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.num, .price, .amount { font-feature-settings: "ss01"; }
