/* Shared readability improvements across the website */
body {
  font-size: 17px;
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

main p,
main li {
  line-height: 1.75;
}

small,
.note,
.form-status {
  font-size: 14px !important;
  line-height: 1.6 !important;
}

input,
select,
textarea,
button {
  font-size: 16px;
}

.hero h1::before {
  font-weight: 600 !important;
}

h1 {
  font-size: 70px !important;
  font-weight: 600 !important;
  line-height: 1.08 !important;
}

/* Consistent button sizing across every page. */
body .btn,
body button:not(.menu),
body input[type="submit"],
body input[type="button"] {
  width: auto;
  max-width: 100%;
  min-height: 46px !important;
  padding: 10px 18px !important;
  font-size: 14px !important;
  line-height: 1.25 !important;
  white-space: normal;
  text-align: center;
}
/* Keep section content static: no card lift, glow, underline sweep or icon motion. */
main section :where(
  .content-list li,
  .property-list li,
  .property-notes p,
  .service-card,
  .process-card,
  .card,
  .quick-grid p,
  .quick-answer > .wrap,
  .service-grid article,
  .process-grid article,
  .need-grid p,
  .weather-copy p,
  .why-grid article,
  .city-grid span
),
main section :where(
  .content-list li,
  .property-list li,
  .property-notes p,
  .service-card,
  .process-card,
  .card,
  .quick-grid p,
  .quick-answer > .wrap,
  .service-grid article,
  .process-grid article,
  .need-grid p,
  .weather-copy p,
  .why-grid article,
  .city-grid span
):hover {
  transform: none !important;
  transition: none !important;
  filter: none !important;
}

main section :where(
  .content-list li,
  .property-list li,
  .service-card,
  .process-card,
  .service-grid article,
  .process-grid article,
  .need-grid p,
  .weather-copy p,
  .why-grid article,
  .city-grid span
):hover {
  border-color: #dfe4e7 !important;
}

main section :where(
  .content-list li,
  .property-list li,
  .process-card,
  .service-grid article,
  .process-grid article,
  .need-grid p,
  .weather-copy p,
  .why-grid article,
  .city-grid span
)::after,
main section :where(
  .content-list li,
  .property-list li,
  .process-card,
  .service-grid article,
  .process-grid article,
  .need-grid p,
  .weather-copy p,
  .why-grid article,
  .city-grid span
):hover::after {
  width: 0 !important;
  transform: scaleX(0) !important;
  transition: none !important;
}

main section :where(
  .content-list li,
  .property-list li,
  .service-card,
  .process-card,
  .service-grid article,
  .process-grid article,
  .need-grid p
):hover::before,
main section :where(.service-grid article, .process-grid article):hover > span {
  transform: none !important;
  box-shadow: none !important;
  transition: none !important;
}

main section.process-section .process-grid article:hover > span {
  transform: translateX(-50%) !important;
}
/* Service-card photos stay visible while their hover zoom remains disabled. */
main section .service-card::after,
main section .service-card:hover::after {
  width: auto !important;
  transform: none !important;
  transition: none !important;
}
@media (max-width: 580px) {
  body {
    font-size: 16px;
    line-height: 1.68;
  }

  main p,
  main li {
    line-height: 1.72;
  }

  h1 {
    font-size: min(70px, 14vw) !important;
  }

  body .btn,
  body button:not(.menu),
  body input[type="submit"] {
    width: auto;
    max-width: 100%;
    min-height: 44px !important;
    padding: 10px 16px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    white-space: normal;
    text-align: center;
  }

  .hero-actions,
  .actions {
    gap: 10px;
  }
}