* { box-sizing: border-box; letter-spacing: 0 !important; }
html { scroll-behavior: smooth; }
body { margin: 0; }
img { max-width: 100%; }
input, select, textarea { min-width: 0; width: 100%; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #315c42; outline-offset: 5px; }
[hidden] { display: none !important; }
.washed { filter: none !important; }
.card { border-radius: 8px !important; }
header .nav > a:first-child img { width: 132px !important; height: auto !important; }
.mobile-menu-toggle, .mobile-leads { display: none; }
.site-nav { position: relative; }
.services-menu { padding: 18px 0; margin: -18px 0; }
.menu-panel { display: none; z-index: 30; padding-top: 0 !important; }
html:not(.has-js) .services-menu:focus-within .menu-panel, .services-menu.is-open .menu-panel { display: block; }
.menu-panel a { border-radius: 6px !important; }
.menu-panel a:hover, .menu-panel a:focus-visible { background: var(--color-accent-100) !important; }
.faq { background: var(--color-surface); border-radius: 8px; }
.faq summary { padding: 22px 24px; cursor: pointer; font: 20px/1.4 var(--font-heading); }
.faq summary::marker { color: var(--color-accent-700); }
.faq[open] summary { padding-bottom: 16px; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(100%); }
.form-status { grid-column: 1/-1; font-size: 16px; line-height: 1.5; }
.form-status:empty { display: none; }
.form-status[data-error] { color: #a12826; }
.form-status[data-success] { color: #245732; }
form button:disabled { opacity: .65; cursor: wait; }
.turnstile-slot { min-width: 0; min-height: 65px; }
.verification-retry { border: 1px solid currentColor; background: transparent; border-radius: 6px; cursor: pointer; }
#estimate, #Credit { scroll-margin-top: 24px; }
.preserved-page { max-width: 1000px; margin: 0 auto; padding: 64px 24px 110px; line-height: 1.75; }
.preserved-page h1 { font-size: 44px; margin-bottom: 28px; }
.preserved-page h2, .preserved-page h3 { font-size: 26px; margin: 32px 0 14px; }
.preserved-page p, .preserved-page ul, .preserved-page ol { margin: 0 0 18px; }
.preserved-page img { height: auto; }
main h1 { font-size: 64px !important; }
main h2 { font-size: 42px !important; }
.site-header-shell { background: var(--color-accent-2-900); }
[data-screen-label="Hero"] h1 { font-size: 64px !important; }
[data-screen-label="Hero"] p { font-size: 18px !important; }
[data-screen-label="Hero"] { padding-top: 28px !important; padding-bottom: 36px !important; gap: 22px !important; }
.lead-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.lead-form .full-width { grid-column: 1/-1; }
.lead-form .input { min-height: 46px; background: var(--color-neutral-100); }
.lead-form textarea { border-radius: 8px; padding: 14px; min-height: 130px; }
.lead-form button { padding: 16px; }
.preserved-page .lead-form { max-width: 680px; margin: 28px 0; }
.preserved-page iframe { max-width: 100%; border: 0; }
.preserved-page [class*="elementor"] { min-width: 0; }
footer img { max-width: 100%; height: auto !important; width: 200px !important; }
main [data-screen-label="FAQ"] > div:first-child { position: static !important; }
@media (max-width: 960px) {
  header { position: relative !important; }
  header .nav { gap: 16px !important; }
  header .nav > div { gap: 12px 20px !important; }
  main h1 { font-size: 48px !important; }
  [data-screen-label="Hero"] h1 { font-size: 52px !important; }
  main h2 { font-size: 36px !important; }
}
@media (max-width: 600px) {
  body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  html { scroll-padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  header .site-nav { padding: 10px 20px !important; min-height: 108px; flex-wrap: wrap; }
  header .nav > a:first-child img { width: 88px !important; height: 88px !important; object-fit: contain; }
  .has-js .mobile-menu-toggle { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 14px; background: transparent; color: var(--color-bg); border: 1px solid currentColor; border-radius: 6px; font: inherit; cursor: pointer; }
  .mobile-menu-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
  header .nav > .nav-links { width: 100%; flex-direction: column; align-items: stretch !important; gap: 4px !important; }
  .has-js .site-nav > .nav-links { display: none !important; }
  .has-js .site-nav.is-open > .nav-links { display: flex !important; position: absolute; top: 100%; left: 0; background: var(--color-accent-2-900); padding: 16px 20px 22px; max-height: calc(100dvh - 190px); overflow-y: auto; box-shadow: 0 8px 16px #0003; }
  .nav-links > a, .nav-links .services-menu > button { min-height: 44px; padding: 12px 8px !important; box-sizing: border-box !important; }
  .nav-links .services-menu { padding: 0; margin: 0; }
  .nav-links .services-menu > button { width: 100% !important; }
  .menu-panel { position: static !important; max-width: 100%; }
  .menu-panel > div { min-width: 0 !important; border-radius: 6px !important; }
  .mobile-leads { display: grid; grid-template-columns: 1fr 1fr; position: fixed; inset: auto 0 0; z-index: 40; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); gap: 10px; background: #192b21; box-shadow: 0 -3px 12px #0002; }
  .mobile-leads a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 6px; text-decoration: none; border-radius: 6px; font: 600 16px/1.2 var(--font-body); }
  .mobile-call { color: #fff !important; border: 1px solid #a3b8a5; }
  .mobile-quote { color: #fff !important; background: #8c3d18; }
  .mobile-leads a:focus-visible, .site-header a:focus-visible, .site-header button:focus-visible { outline-color: #fff; }
  [data-screen-label="Hero"] { padding-top: 28px !important; padding-bottom: 36px !important; gap: 20px !important; }
  [data-screen-label="Hero"] h1 { max-width: 100% !important; }
  [data-screen-label="Hero"] > div:last-child { gap: 12px !important; }
  [data-screen-label="Hero"] .btn { padding: 14px 18px !important; font-size: 15px !important; }
  main h1 { font-size: 40px !important; overflow-wrap: anywhere; }
  [data-screen-label="Hero"] h1 { font-size: 40px !important; }
  [data-screen-label="Hero"] p { font-size: 17px !important; }
  .lead-form { grid-template-columns: minmax(0,1fr) !important; }
  main h2 { font-size: 30px !important; overflow-wrap: anywhere; }
  main h4 { font-size: 28px !important; }
  .faq summary { font-size: 18px; padding: 18px; }
  footer { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}
