/* Site-wide heading system: Montserrat structure, Cormorant editorial accents. */
.hero #hero-title,
.section-heading h2,
.why-copy #why-title,
.hours .section-heading h2,
.estimate-intro #estimate-title,
.service-card h3,
.trust-title,
.footer-top > div > p {
  font-family: "Montserrat", Arial, sans-serif;
  font-weight: 400;
  font-style: normal;
}

.editorial-accent {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-style: italic;
  color: inherit;
}

/* Functional responsive and overflow safeguards. */
.estimate-intro address a {
  overflow-wrap: anywhere;
}

@media (max-width: 850px) {
  .site-nav {
    visibility: hidden;
    pointer-events: none;
  }

  .site-nav.open {
    visibility: visible;
    pointer-events: auto;
  }
}

/* Approved outlined treatment for primary calls to action. */
.site-header .brand {
  width: 128px;
}

.site-footer .footer-brand {
  width: 170px;
  height: 110px;
  background: transparent;
}

.nav-email,
.button.button-dark {
  border: 1px solid #111;
  border-radius: 999px;
  background: transparent;
  color: #111;
  font-family: "Montserrat", Arial, sans-serif;
  box-shadow: none;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.nav-email:hover,
.button.button-dark:hover {
  border-color: #111;
  background: #111;
  color: #fff;
}

.site-footer .button.button-light {
  border: 1px solid #fff;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  font-family: "Montserrat", Arial, sans-serif;
  box-shadow: none;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 180ms ease;
}

.site-footer .button.button-light:hover {
  border-color: #fff;
  background: #fff;
  color: #111;
}

.button:disabled {
  cursor: wait;
  opacity: 0.65;
}

@media (max-width: 850px) {
  .site-header .brand {
    width: 112px;
  }
}

/* Keep homepage fragment targets clear of the existing header. */
html {
  scroll-padding-top: 0;
}

#services {
  scroll-margin-top: 112px;
}

#why,
#hours,
#estimate {
  scroll-margin-top: 0;
}

@media (max-width: 850px) {
  #services {
    scroll-margin-top: 95px;
  }

  #why,
  #hours,
  #estimate {
    scroll-margin-top: 0;
  }
}
