/* Base styles and typographic rhythm */
html {
	box-sizing: border-box;
	height: 100%;
}
*, *::before, *::after {
	box-sizing: inherit;
}
body {
	margin: 0;
	height: 100%;
	background: var(--cream);
	color: var(--brown-900);
	font-family: var(--font-sans);
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden; /* avoid accidental horizontal scroll on mobile */
}
img {
	max-width: 100%;
	height: auto;
	display: block;
}
a {
	color: var(--toast-500);
	text-decoration: none;
}
a:hover {
	color: var(--toast-600);
}
.container {
	width: min(1120px, 92%);
	margin-left: auto;
	margin-right: auto;
}
.serif {
	font-family: var(--font-serif);
}
.skip-link {
	position: absolute;
	left: -9999px;
	top: -9999px;
	background: var(--white);
	color: var(--brown-900);
	padding: 0.5rem 0.75rem;
	border-radius: 8px;
	box-shadow: var(--shadow-sm);
}
.skip-link:focus {
	left: 1rem;
	top: 1rem;
}

/* Typography scale (editorial feel) */
h1, h2, h3 {
	margin: 0 0 0.5rem 0;
	font-weight: 600;
	color: var(--brown-700);
	line-height: 1.2;
}
h1 { font-size: clamp(2.2rem, 3.2vw + 1.2rem, 3.8rem); }
h2 { font-size: clamp(1.6rem, 1.2vw + 1rem, 2.2rem); }
h3 { font-size: clamp(1.25rem, 0.8vw + 0.9rem, 1.6rem); }
p { margin: 0.25rem 0 1rem; }

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	border-radius: var(--radius);
	padding: 0.85rem 1.1rem;
	font-weight: 600;
	box-shadow: var(--shadow-sm);
	transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
	border: 1px solid transparent;
	min-height: 44px; /* touch-friendly */
}
.btn:active { transform: translateY(1px); }
.btn--primary {
	color: var(--white);
	background: linear-gradient(180deg, var(--toast-500), var(--toast-600));
}
.btn--primary:hover { filter: brightness(1.02); }
.btn--ghost {
	background: rgba(255,255,255,0.6);
	backdrop-filter: blur(2px);
	color: var(--brown-900);
	border-color: rgba(58, 38, 21, 0.15);
}
.btn--ghost:hover {
	background: rgba(255,255,255,0.8);
}

/* Offset main content for fixed header so sections aren't hidden */
html { scroll-padding-top: 96px; }
@media (min-width: 601px) {
  body { padding-top: 96px; }
}
@media (max-width: 600px) {
  body { padding-top: 82px; }
}

/* Mobile-first tweaks */
@media (max-width: 768px) {
  .container { width: 92%; }
  .hero__ctas .btn {
    flex: 1 1 100%;
    width: 100%;
  }
  /* Ensure proper spacing between header and hero */
  main {
    margin-top: 0;
  }
}