* { box-sizing: border-box; letter-spacing: 0 !important; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; overflow-x: visible; }
[hidden] { display: none !important; }
img { max-width: 100%; }
input, textarea, select { min-width: 0; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid #315c42; outline-offset: 4px; }
.washed { filter: none !important; }
.site-header .nav { flex-wrap: nowrap !important; }
.site-header img { width: 64px !important; height: 64px !important; object-fit: contain; }
.mobile-menu-toggle, .mobile-leads { display: none; }
.page-eyebrow { font: 700 14px/1.5 var(--font-body); text-transform: uppercase; color: var(--color-accent-700); }
main h1 { font-size: 64px !important; overflow-wrap: anywhere; }
main h2 { font-size: 40px !important; overflow-wrap: anywhere; }
main h4 { font-size: 24px !important; }
[data-screen-label="Form"] h2 { font-size: 28px !important; }
[data-screen-label="Hero"] h1 { margin-left: 0 !important; }
[data-screen-label="FAQ"] { grid-template-columns: minmax(0,1fr) minmax(0,1.6fr) !important; }
[data-screen-label="FAQ"] > h2 { position: static !important; }
[data-screen-label="FAQ"] > div { grid-column: auto !important; }
.faq { background: var(--color-surface); border-radius: 8px; min-width: 0; }
.faq summary { padding: 20px 24px; font: 20px/1.4 var(--font-heading); cursor: pointer; overflow-wrap: anywhere; }
.faq summary::marker { color: var(--color-accent-700); }
.faq p { padding: 0 24px 24px !important; }
.field > label { font-size: 14px; }
.field .input { min-height: 44px; background: var(--color-neutral-100) !important; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(100%); }
.form-status { grid-column: 1/-1; font: 16px/1.5 var(--font-body); }
.form-status:empty { display: none; }
.form-status[data-error] { color: #9c251d; }
.form-status[data-success] { color: #245732; }
form button:disabled { cursor: wait; opacity: .65; }
form { scroll-margin-top: 110px; }
footer > div { padding-bottom: 100px !important; }
footer { overflow-wrap: anywhere; }
dialog#contact-dialog { border: 0; padding: 0; width: min(440px,calc(100% - 32px)); max-height: calc(100dvh - 32px); border-radius: 8px; background: var(--color-surface); color: var(--color-text); overflow: auto; }
dialog#contact-dialog:not([open]) { display: none; }
dialog#contact-dialog::backdrop { background: rgb(0 0 0 / .55); }
#contact-dialog > .dialog { max-width: 100% !important; box-shadow: none; border-radius: 8px; }
#contact-dialog h5 { font-size: 26px !important; }
#contact-dialog h6 { font-size: 17px !important; }
.error-page { max-width: 760px; margin: 0 auto; padding: 80px 24px; font: 18px/1.6 system-ui,sans-serif; }
.error-page img { width: 100px; height: 100px; object-fit: contain; margin-bottom: 24px; }
.error-page h1 { font: 700 36px/1.2 system-ui,sans-serif; margin-bottom: 18px; }
.error-page a { color: #315c42; }
@media (max-width: 900px) {
  html { scroll-padding-top: 20px; scroll-padding-bottom: 90px; }
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom,0px)); }
  .utility-bar { display: none; }
  .site-header { position: relative !important; }
  .site-header .nav { padding: 10px 20px !important; gap: 10px !important; flex-wrap: wrap !important; }
  .mobile-menu-toggle { display: flex; min-height: 44px; align-items: center; justify-content: center; padding: 8px 16px; font: 600 16px/1.2 var(--font-body); color: var(--color-text); border: 1px solid var(--color-divider); border-radius: 6px; background: transparent; cursor: pointer; }
  .site-menu { display: none !important; width: 100%; border-radius: 8px !important; flex-direction: column; align-items: stretch !important; gap: 0 !important; }
  .has-js .nav.is-open .site-menu, html:not(.has-js) .site-menu { display: flex !important; }
  .site-menu a { border-radius: 6px !important; padding: 12px 16px !important; min-height: 44px; }
  .floating-call { display: none !important; }
  .mobile-leads { position: fixed; z-index: 30; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom,0px)); background: var(--color-bg); border-top: 1px solid var(--color-divider); }
  .mobile-leads a { display: flex; align-items: center; justify-content: center; min-height: 44px; gap: 8px; padding: 10px 8px; border-radius: 6px; font: 600 15px/1.3 var(--font-body); text-decoration: none; color: #fff; }
  .mobile-call { background: #315c42; }
  .mobile-estimate { background: var(--color-accent-700); }
  .mobile-leads a:hover { filter: brightness(.94); }
  main h1 { font-size: 44px !important; }
  main h2 { font-size: 32px !important; }
  [data-screen-label="FAQ"] { grid-template-columns: minmax(0,1fr) !important; }
  [data-screen-label="FAQ"] > div { width: 100%; }
  footer > div { padding-bottom: 32px !important; }
  form { scroll-margin-top: 24px; }
}
@media (max-width: 600px) {
  main h1 { font-size: 40px !important; }
  main h2 { font-size: 30px !important; }
  .faq summary { font-size: 18px; padding: 18px; }
  .faq p { padding: 0 18px 18px !important; }
  [data-screen-label="Form"] > div:first-child { padding: 24px !important; border-radius: 8px !important; }
  [data-screen-label="Form"] h2 { font-size: 26px !important; }
  [data-screen-label="CTA"] > div { border-radius: 8px !important; margin-bottom: 0 !important; }
  [data-screen-label="CTA"] { padding-bottom: 32px !important; }
  #contact-dialog > .dialog { padding: 28px 20px !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
