/* Larger, clearer text and touch targets for visitors of all ages. */
body {
  font-size: 18px;
  line-height: 1.72;
}

p, li {
  max-width: 72ch;
}

.eyebrow {
  font-size: 13px;
  letter-spacing: .16em;
}

.hero-copy,
.page-banner > p:last-child,
.section-heading > p,
.area-copy > p:not(.eyebrow),
.quote-intro > p:not(.eyebrow),
.about-panel > p:not(.eyebrow) {
  font-size: 19px;
  line-height: 1.75;
}

.button {
  min-height: 52px;
  padding: 15px 27px;
  font-size: 16px;
}

.nav-toggle {
  min-width: 52px;
  min-height: 52px;
  padding: 10px;
}

.nav-toggle span:not(.sr-only) {
  width: 29px;
  height: 2px;
}

.site-nav {
  width: min(410px, calc(100vw - 30px));
}

.site-nav a,
.site-nav a:not(.nav-cta) {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 12px 15px;
  font-size: 17px;
}

.site-nav .nav-cta {
  justify-content: center;
}

.service-card p,
.specialty-grid p,
.clean-plan li {
  font-size: 17px;
  line-height: 1.7;
}

.service-card ul,
.best-for,
.addon-strip > p {
  font-size: 16px;
}

.area-list span {
  font-size: clamp(20px, 2vw, 25px);
}

.about-badges span {
  padding: 11px 15px;
  font-size: 12px;
}

.faq-list summary {
  min-height: 72px;
  align-items: center;
  padding: 22px 8px;
  font-size: 20px;
  line-height: 1.45;
}

.faq-list summary span {
  display: grid;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(216, 173, 88, .48);
  border-radius: 50%;
  font-size: 27px;
}

.faq-list details p {
  margin: 0 58px 28px 8px;
  color: #c3bfb7;
  font-size: 18px;
  line-height: 1.8;
}

.quote-form label {
  font-size: 14px;
}

.quote-form input,
.quote-form select,
.quote-form textarea {
  min-height: 54px;
  padding: 15px;
  font-size: 18px;
}

.quote-form .option-group label {
  min-height: 54px;
  font-size: 16px;
}

.quote-form .option-group input {
  width: 23px;
  min-width: 23px;
  height: 23px;
}

.option-help,
.form-helper,
.quote-note p,
.form-result > p {
  font-size: 15px;
}

footer {
  font-size: 14px;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
  outline: 3px solid #f3d592;
  outline-offset: 4px;
}

@media (max-width: 700px) {
  body { font-size: 17px; }
  .hero-copy,
  .page-banner > p:last-child,
  .section-heading > p,
  .area-copy > p:not(.eyebrow),
  .quote-intro > p:not(.eyebrow),
  .about-panel > p:not(.eyebrow) { font-size: 18px; }
  .faq-list summary { min-height: 76px; font-size: 19px; }
  .faq-list details p { margin-right: 8px; font-size: 18px; }
  .site-nav { right: 15px; width: calc(100vw - 30px); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
