/**
 * Base — resets, typography, semantic defaults.
 */

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

body {
	background: var(--bz-paper);
	color: var(--bz-ink);
	font-family: var(--bz-font-body);
	font-size: var(--bz-fs-base);
	line-height: var(--bz-lh-normal);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.woocommerce-page,
body.archive,
body.single-product {
	background: var(--bz-paper);
}

::selection {
	background: var(--bz-accent);
	color: #fff;
}

a {
	color: var(--bz-accent);
	text-decoration: none;
	transition: color var(--bz-duration-fast) var(--bz-ease);
}
a:hover,
a:focus {
	color: var(--bz-ink);
}

:focus-visible {
	outline: 2px solid var(--bz-gold);
	outline-offset: 2px;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4,
.nv-title,
.entry-title,
.woocommerce-Price-amount + .product_title,
.product_title,
.page-title {
	font-family: var(--bz-font-display);
	font-weight: 500;
	line-height: var(--bz-lh-tight);
	letter-spacing: -0.01em;
	color: var(--bz-ink);
}

h1, .h1 { font-size: clamp(2rem, 1.5rem + 2vw, var(--bz-fs-4xl)); }
h2, .h2 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, var(--bz-fs-3xl)); }
h3, .h3 { font-size: clamp(1.25rem, 1.1rem + 0.8vw, var(--bz-fs-xl)); }
h4, .h4 { font-size: var(--bz-fs-lg); }

p {
	line-height: var(--bz-lh-relaxed);
	color: var(--bz-ink-soft);
}

.container,
.nv-container,
.woocommerce-page .content-area,
body:not(.woocommerce-page) #primary {
	max-width: var(--bz-container);
}

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

hr {
	border: none;
	border-top: 1px solid var(--bz-border);
	margin: var(--bz-space-6) 0;
}

/* Eyebrow / kicker label used above section headings */
.bz-eyebrow {
	display: inline-block;
	font-family: var(--bz-font-body);
	font-size: var(--bz-fs-xs);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bz-gold);
	margin-bottom: var(--bz-space-2);
}

/* Utility: visually-hidden but accessible (skip links, form labels) */
.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
	height: 1px;
	width: 1px;
}
