/**
 * Base — resets, typography, layout primitives.
 */

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

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

body {
	margin: 0;
	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;
}

::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 {
	font-family: var(--bz-font-display);
	font-weight: 500;
	line-height: var(--bz-lh-tight);
	letter-spacing: -0.01em;
	color: var(--bz-ink);
	margin: 0 0 var(--bz-space-3);
}
h1 { font-size: clamp(2rem, 1.5rem + 2vw, var(--bz-fs-4xl)); }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.4vw, var(--bz-fs-3xl)); }
h3 { font-size: clamp(1.25rem, 1.1rem + 0.8vw, var(--bz-fs-xl)); }

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

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

ul, ol { padding-left: 1.25em; }

.container {
	max-width: var(--bz-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--bz-space-5);
	padding-right: var(--bz-space-5);
}
.container--narrow { max-width: var(--bz-container-narrow); }

.site-main { display: block; padding-bottom: var(--bz-space-8); }
.site-main.bz-home { padding-bottom: 0; }

.bz-eyebrow {
	display: inline-block;
	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);
}

.bz-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--bz-space-4);
	margin-bottom: var(--bz-space-6);
	flex-wrap: wrap;
}
.bz-section-heading h2 { margin: 0; }
.bz-section-heading--center { justify-content: center; text-align: center; flex-direction: column; align-items: center; }
.bz-view-all { font-weight: 600; font-size: var(--bz-fs-sm); white-space: nowrap; }

.page-title { margin-bottom: var(--bz-space-6); }

.bz-breadcrumbs {
	font-size: var(--bz-fs-xs);
	color: var(--bz-muted);
	margin: var(--bz-space-5) 0;
}
.bz-breadcrumbs a { color: var(--bz-muted); }
.bz-breadcrumbs a:hover { color: var(--bz-accent); }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
	height: 1px;
	width: 1px;
	word-wrap: normal !important;
}
.skip-link {
	position: fixed;
	top: -100px;
	left: 1rem;
	z-index: 999;
	background: var(--bz-ink);
	color: #fff;
	padding: var(--bz-space-3) var(--bz-space-4);
	border-radius: var(--bz-radius-sm);
	transition: top var(--bz-duration-fast) var(--bz-ease);
}
.skip-link:focus {
	top: 1rem;
	clip: auto !important;
	height: auto;
	width: auto;
	position: fixed;
}

/* ---- Generic page / single post content ---- */
.bz-page__content,
.bz-single-post__content {
	line-height: var(--bz-lh-relaxed);
}
.bz-page__content h2,
.bz-single-post__content h2 { margin-top: var(--bz-space-7); font-size: var(--bz-fs-xl); }
.bz-page__content h3,
.bz-single-post__content h3 { margin-top: var(--bz-space-6); font-size: var(--bz-fs-lg); }
.bz-page__content ul,
.bz-single-post__content ul { line-height: var(--bz-lh-relaxed); }

/* ---- Blog loop ---- */
.bz-post-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--bz-space-6);
	margin: var(--bz-space-6) 0;
}
.bz-post-card__thumb img { aspect-ratio: 1; object-fit: cover; border-radius: var(--bz-radius-md); }
.bz-post-card__meta { font-size: var(--bz-fs-xs); color: var(--bz-muted); margin: var(--bz-space-3) 0 var(--bz-space-1); }
.bz-post-card__title { font-size: var(--bz-fs-md); margin: 0 0 var(--bz-space-2); }
.bz-post-card__link { font-size: var(--bz-fs-xs); font-weight: 600; }

.bz-404 { text-align: center; padding: var(--bz-space-9) 0; }
.bz-404 .bz-search-form { margin: var(--bz-space-6) auto; max-width: 420px; }
