/* DOB Starter Theme | css/02-base.css | v0.1.0 | 2026-04-30 | Generated by Claude, DOB-S2 */
/* Reset, body defaults, heading defaults, link defaults. */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--c-cream);
	color: var(--c-ink);
	font-family: var(--f-body);
	font-size: var(--fs-body);
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'cv11', 'ss01';
}

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

a {
	color: var(--c-brick);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--c-brick-dark);
}

button {
	font: inherit;
}

h1, h2, h3, h4 {
	font-family: var(--f-display);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0 0 var(--s-4);
	color: var(--c-ink);
	font-optical-sizing: auto;
}

h1 {
	font-size: var(--fs-h1-m);
	letter-spacing: -0.035em;
}

@media (min-width: 768px) {
	h1 { font-size: var(--fs-h1-d); }
}

h2 {
	font-size: var(--fs-h2);
	letter-spacing: -0.025em;
}

h3 {
	font-size: var(--fs-h3);
	font-weight: 600;
	letter-spacing: -0.015em;
}

p {
	margin: 0 0 var(--s-3);
}

em {
	font-style: italic;
	color: var(--c-brick-dark);
}

.lede {
	font-size: var(--fs-lede);
	line-height: 1.5;
	max-width: 38rem;
}

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