/* ═════════════════════════════════════════════════════════════════
   RESET & BASE ELEMENT STYLES
   ═════════════════════════════════════════════════════════════════ */

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

body {
	margin: 0;
	background: var(--cream);
	color: var(--ink);
	font-family: var(--f-sans);
	font-size: var(--fs-body);
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

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

a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; background: none; border: 0; padding: 0; }

h1,h2,h3,h4,h5,h6 { margin: 0; font-weight: 500; }

/* ── Accessibility helpers ── */
.screen-reader-text {
	position: absolute !important;
	clip: rect(1px,1px,1px,1px);
	width: 1px; height: 1px; overflow: hidden;
}
.skip-link { position: fixed; left: 1rem; top: 1rem; z-index: 10000; padding: .75rem 1rem; background: var(--ink); color: var(--cream); }
.skip-link:not(:focus) { clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; }
