:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #202124; background: #fafafa; }
* { box-sizing: border-box; }
body { margin: 0; }
a { color: inherit; text-underline-offset: .25em; }
a:focus-visible { outline: 3px solid #8c421d; outline-offset: 6px; }
.page { max-width: 1080px; margin: 0 auto; padding: 0 48px; }
header { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 38px 0; border-bottom: 1px solid #d9d9d9; }
.wordmark { font-size: 1.4rem; font-weight: 700; letter-spacing: -.045em; text-decoration: none; }
.wordmark span { color: #8c421d; }
.location, footer { font-size: .875rem; color: #606166; }
.intro { padding: 88px 0 72px; }
.eyebrow { font-size: .875rem; color: #8c421d; margin: 0 0 24px; }
h1 { font-size: clamp(2.75rem, 7vw, 5.5rem); line-height: 1.06; letter-spacing: -.055em; font-weight: 600; margin: 0 0 32px; }
.lead { font-size: 1.25rem; line-height: 1.65; max-width: 660px; margin: 0; color: #505156; }
h2 { font-size: .9375rem; font-weight: 600; margin: 0; }
.services { display: grid; grid-template-columns: 1fr 2.5fr; border-top: 1px solid #d9d9d9; }
.services > h2 { grid-row: span 3; padding-top: 28px; }
.service { padding: 26px 0; border-bottom: 1px solid #d9d9d9; }
.service:last-child { border-bottom: 0; }
h3 { font-size: 1.125rem; font-weight: 500; margin: 0 0 10px; }
.service p, .about p { font-size: 1rem; line-height: 1.7; color: #505156; margin: 0; max-width: 560px; }
.about { display: grid; grid-template-columns: 1fr 2.5fr; gap: 24px; border-top: 1px solid #d9d9d9; padding: 32px 0 64px; }
footer { display: flex; justify-content: space-between; gap: 20px; border-top: 1px solid #d9d9d9; padding: 24px 0 32px; }
.contact { display: grid; grid-template-columns: 1fr 2.5fr; gap: 24px; padding: 0 0 64px; }
.contact p { margin: 0; line-height: 1.8; color: #505156; }
.contact a { color: #202124; overflow-wrap: anywhere; }
.skip-link { position: absolute; top: -100px; left: 20px; padding: 12px; background: white; }
.skip-link:focus { top: 12px; }
@media (max-width: 640px) {
  .page { padding: 0 24px; }
  header { align-items: flex-start; flex-direction: column; gap: 10px; padding: 26px 0; }
  .intro { padding: 56px 0; }
  .lead { font-size: 1.125rem; }
  .services, .about, .contact { grid-template-columns: 1fr; }
  .contact { gap: 16px; padding-bottom: 44px; }
  .services > h2 { grid-row: auto; padding: 24px 0 8px; }
  .about { gap: 16px; padding: 28px 0 44px; }
  footer { flex-direction: column; gap: 8px; }
}
