/* Modern reset — theme-scoped. */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html, body { height: 100%; }
/* Kill any stray horizontal scroll. overflow-x: clip is safer than
   hidden — it doesn't create a scroll container so position: sticky
   (header) and Lenis smooth-scroll keep working. */
html { overflow-x: clip; }
body {
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
	width: 100%;
	max-width: 100vw;
}
img, picture, video, canvas, svg { display: block; max-width: 100%; height: auto; }
input, button, textarea, select { font: inherit; color: inherit; background: none; border: none; }
button { cursor: pointer; }
p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
h1, h2, h3, h4, h5, h6 { line-height: 1.15; text-wrap: balance; }
#root, #__next { isolation: isolate; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
address { font-style: normal; }

.screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	-webkit-clip-path: inset(50%) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	word-wrap: normal !important;
}
.skip-link {
	position: absolute;
	inset: 0 auto auto 0;
	transform: translateY(-120%);
	transition: transform .2s;
	background: #000;
	color: #fff;
	padding: 1rem;
	z-index: 9999;
}
.skip-link:focus { transform: translateY(0); }
