/* One consistent, elegant typeface throughout every visitor page. */
:root { --ga-site-font: Georgia, 'Times New Roman', serif; }
html, body, body *, body *::before, body *::after {
  font-family: var(--ga-site-font) !important;
  font-style: normal !important;
}
body { font-size: 18px; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4, h5, h6 { text-wrap: balance; letter-spacing: -.025em; }
h1, h2 { line-height: 1.12; }
h3, h4 { line-height: 1.25; }
p, li { line-height: 1.7; }
button, input, select, textarea { font-size: 1rem; }
.button, .nav-cta, .estimate-send button { font-weight: 700; letter-spacing: .01em; }
.nav-links { font-size: 1rem; }
.hero-message .hero-tagline { font-weight: 400; line-height: 1.3; }
.hero-business-location { letter-spacing: .12em; }
@media (max-width: 820px) {
  body { font-size: 17px; }
  .hero-content { padding-top: 155px; }
  .hero h1 { font-size: clamp(2.75rem, 9.5vw, 4.4rem); line-height: 1.1; }
  .hero-actions .button { font-size: 1rem; }
}
/* Consistent alignment and comfortable spacing between content blocks. */
.section-heading, .featured-result-heading { text-align: center; margin-inline: auto; }
.section-heading > p:last-child { margin-inline: auto; }
.section-heading h2::after { margin-inline: auto; }
.service-card { gap: 0; }
.service-card h3 { margin-bottom: 16px; }
.service-card p { line-height: 1.7; }
.estimate-fields label { line-height: 1.45; }
.detail-copy p, .detail-copy li { line-height: 1.8; }

/* Clear mobile navigation with a distinct estimate action. */
.mobile-menu nav a { border-radius: 7px; }
.mobile-menu nav a:hover { background: #eadecb; }
.mobile-menu nav a.menu-estimate {
  background: #d4a15c; color: #2b211a; font-weight: 700;
  margin-top: 8px; text-align: center; padding: 14px 12px;
}
.mobile-menu nav a.menu-estimate:hover { background: #e2b674; }
.mobile-menu[open] nav { max-height: calc(100dvh - 130px); overflow-y: auto; }
