/* Shared usability improvements for every page except the home page */
html{scroll-padding-top:24px}
body:not(:has(> main > .hero)){
  overflow-x:clip;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.about-page main,
.services-page main,
.areas-page main,
.blog-page main,
.contact-page main,
.service-detail-page main{overflow:clip}

/* Shared hero image for every page except Home */
.about-page .about-hero,
.services-page .services-hero,
.areas-page .areas-hero,
.blog-page .blog-hero,
.contact-page .contact-hero,
.service-detail-page .detail-hero{
  background:
    linear-gradient(110deg,rgba(14,61,47,.88) 0%,rgba(22,112,84,.76) 48%,rgba(5,36,29,.68) 100%),
    url("assets/all sections.jpg") center/cover no-repeat!important;
}
.about-page .about-hero-glow{
  background:
    radial-gradient(circle at 8% 18%,rgba(255,232,0,.24),transparent 22%),
    radial-gradient(circle at 75% 20%,rgba(255,255,255,.12),transparent 24%);
}
.about-page section[id],
.services-page section[id],
.areas-page section[id],
.blog-page section[id],
.contact-page section[id],
.service-detail-page section[id]{scroll-margin-top:28px}

/* Visible keyboard navigation */
.about-page a:focus-visible,.about-page button:focus-visible,.about-page input:focus-visible,.about-page textarea:focus-visible,
.services-page a:focus-visible,.services-page button:focus-visible,
.areas-page a:focus-visible,.areas-page button:focus-visible,.areas-page input:focus-visible,.areas-page textarea:focus-visible,
.blog-page a:focus-visible,.blog-page button:focus-visible,
.contact-page a:focus-visible,.contact-page button:focus-visible,.contact-page input:focus-visible,.contact-page select:focus-visible,.contact-page textarea:focus-visible,
.service-detail-page a:focus-visible,.service-detail-page button:focus-visible{
  outline:3px solid #080808;
  outline-offset:3px;
}
.about-page .site-header a:focus-visible,.services-page .site-header a:focus-visible,.areas-page .site-header a:focus-visible,
.blog-page .site-header a:focus-visible,.contact-page .site-header a:focus-visible,.service-detail-page .site-header a:focus-visible{
  outline-color:#edd601;
}

/* More reliable header layout with six navigation links */
@media(min-width:901px){
  .about-page .site-header,.services-page .site-header,.areas-page .site-header,
  .blog-page .site-header,.contact-page .site-header,.service-detail-page .site-header{
    width:min(1180px,calc(100% - 80px));
    height:82px;
    padding-left:24px;
    padding-right:24px;
    border-radius:999px;
    background:#fff;
    box-shadow:0 7px 0 #edd601,0 16px 36px rgba(25,101,75,.16);
  }
  .about-page .site-header nav,.services-page .site-header nav,.areas-page .site-header nav,
  .blog-page .site-header nav,.contact-page .site-header nav,.service-detail-page .site-header nav{gap:27px}
  .about-page .site-header nav>a:not(.nav-cta),.services-page .site-header nav>a:not(.nav-cta),.areas-page .site-header nav>a:not(.nav-cta),
  .blog-page .site-header nav>a:not(.nav-cta),.contact-page .site-header nav>a:not(.nav-cta),.service-detail-page .site-header nav>a:not(.nav-cta),
  .about-page .site-header .nav-services>a,.services-page .site-header .nav-services>a,.areas-page .site-header .nav-services>a,
  .blog-page .site-header .nav-services>a,.contact-page .site-header .nav-services>a,.service-detail-page .site-header .nav-services>a{
    font-size:15px;
    font-weight:700;
    color:#080808;
    white-space:nowrap;
  }
  .about-page .site-header .nav-cta,.services-page .site-header .nav-cta,.areas-page .site-header .nav-cta,
  .blog-page .site-header .nav-cta,.contact-page .site-header .nav-cta,.service-detail-page .site-header .nav-cta{
    min-width:154px;
    padding:16px 22px;
    border-radius:999px;
    background:#edd601;
    color:#050505;
    font-size:13px;
    font-weight:800;
    justify-content:center;
  }
}
@media(min-width:901px) and (max-width:1180px){
  .about-page .nav-support,.services-page .nav-support,.areas-page .nav-support,
  .blog-page .nav-support,.contact-page .nav-support,.service-detail-page .nav-support{display:none}
  .about-page .site-header nav,.services-page .site-header nav,.areas-page .site-header nav,
  .blog-page .site-header nav,.contact-page .site-header nav,.service-detail-page .site-header nav{gap:19px}
  .about-page .site-header nav>a:not(.nav-cta),.services-page .site-header nav>a:not(.nav-cta),.areas-page .site-header nav>a:not(.nav-cta),
  .blog-page .site-header nav>a:not(.nav-cta),.contact-page .site-header nav>a:not(.nav-cta),.service-detail-page .site-header nav>a:not(.nav-cta),
  .about-page .site-header .nav-services>a,.services-page .site-header .nav-services>a,.areas-page .site-header .nav-services>a,
  .blog-page .site-header .nav-services>a,.contact-page .site-header .nav-services>a,.service-detail-page .site-header .nav-services>a{font-size:13px}
}

/* Comfortable reading and dependable clickable areas */
.about-page main a,.services-page main a,.areas-page main a,.blog-page main a,.contact-page main a,.service-detail-page main a,
.about-page main button,.services-page main button,.areas-page main button,.blog-page main button,.contact-page main button,.service-detail-page main button{
  -webkit-tap-highlight-color:transparent;
}
.about-btn,.svc-btn,.area-btn,.blog-btn,.contact-btn,.detail-btn,
.talk-form button,.availability-form button,.hero-estimate-form button{
  min-height:46px;
}
.about-page main p,.services-page main p,.areas-page main p,.blog-page main p,.contact-page main p,.service-detail-page main p{
  max-width:75ch;
}
.about-page h2,.services-page h2,.areas-page h2,.blog-page h2,.contact-page h2,.service-detail-page h2{
  text-wrap:balance;
}
.about-page h3,.services-page h3,.areas-page h3,.blog-page h3,.contact-page h3,.service-detail-page h3{
  text-wrap:pretty;
}

/* Forms remain clear at every width */
.talk-form input,.talk-form textarea,
.availability-form input,.availability-form textarea,
.hero-estimate-form input,.hero-estimate-form select,.hero-estimate-form textarea{
  min-height:46px;
  font-size:14px;
}
.talk-form textarea,.availability-form textarea,.hero-estimate-form textarea{min-height:110px}
.talk-form input::placeholder,.talk-form textarea::placeholder,
.availability-form input::placeholder,.availability-form textarea::placeholder,
.hero-estimate-form input::placeholder,.hero-estimate-form textarea::placeholder{
  color:#69716c;
  opacity:1;
}

/* Contact page form — matches the final CTA card used across the site. */
.contact-page-form{max-width:510px!important;padding:24px 26px!important;border-radius:23px!important;background:#fff!important;box-shadow:0 20px 48px rgba(8,25,20,.18)!important}
.contact-page-form .contact-form-kicker{display:inline-flex;align-items:center;gap:9px;width:max-content;margin-bottom:19px;padding:9px 15px;border-radius:999px;background:#f3f5ef;color:#111;font-size:11px;font-weight:800;letter-spacing:0;text-transform:none}
.contact-page-form .contact-form-kicker i{width:11px;height:11px;border-radius:50%;background:#eed800}
.contact-page-form h3{margin:0!important;font-size:27px!important;line-height:1.12!important;letter-spacing:-.04em!important}
.contact-page-form .contact-form-rule{display:block;width:4px;height:4px;margin:10px 0 6px;background:#e6cf00}
.contact-page-form h4{margin:0 0 13px;font-size:18px;line-height:1.2}
.contact-page-form input,.contact-page-form select{height:46px!important;margin-bottom:0!important;padding-inline:15px!important;font-size:13px!important}
.contact-page-form textarea{min-height:92px!important;margin:0!important;padding:14px 15px!important;font-size:13px!important}
.contact-page-form .form-two{gap:10px;margin-bottom:10px}
.contact-page-form>select{margin-bottom:10px!important}
.contact-page-form>button{width:max-content!important;min-height:46px!important;margin-top:14px!important;padding:0 19px!important;font-size:13px!important}
@media(max-width:650px){.contact-page-form{padding:27px 22px!important}.contact-page-form h3{font-size:30px!important}.contact-page-form .form-two{grid-template-columns:1fr}.contact-page-form>button{width:100%!important;font-size:14px!important}}
.talk-form button:disabled,.availability-form button:disabled,.hero-estimate-form button:disabled{
  cursor:default;
  opacity:.78;
}

/* Consistent card feedback without layout jumps */
.about-page article,.services-page article,.areas-page article,.blog-page article,.contact-page article,.service-detail-page article{
  will-change:transform;
}
.shared-faq summary{min-height:58px}

/* Tablet layouts avoid cramped multi-column copy */
@media(min-width:651px) and (max-width:1000px){
  .about-shell,.svc-shell,.area-shell,.blog-shell,.contact-shell,.detail-shell{
    width:calc(100% - 40px);
  }
  .about-intro,.property-section,.available-services,.blog-help,.schedule-section,.included-section{
    padding:48px;
  }
}

/* Mobile navigation and content rhythm */
@media(max-width:900px){
  .about-page .site-header,.services-page .site-header,.areas-page .site-header,
  .blog-page .site-header,.contact-page .site-header,.service-detail-page .site-header{
    width:calc(100% - 24px);
    padding-left:18px;
    padding-right:14px;
  }
  .about-page .site-header nav,.services-page .site-header nav,.areas-page .site-header nav,
  .blog-page .site-header nav,.contact-page .site-header nav,.service-detail-page .site-header nav{
    left:0;
    right:0;
    max-height:calc(100vh - 100px);
    overflow-y:auto;
    gap:3px;
    padding:16px;
    border-radius:18px;
  }
  .about-page .site-header nav>a,.services-page .site-header nav>a,.areas-page .site-header nav>a,
  .blog-page .site-header nav>a,.contact-page .site-header nav>a,.service-detail-page .site-header nav>a,
  .about-page .nav-services>a,.services-page .nav-services>a,.areas-page .nav-services>a,
  .blog-page .nav-services>a,.contact-page .nav-services>a,.service-detail-page .nav-services>a{
    min-height:44px;
    padding:11px 12px;
    border-radius:9px;
  }
  .about-page .site-header nav>a:hover,.services-page .site-header nav>a:hover,.areas-page .site-header nav>a:hover,
  .blog-page .site-header nav>a:hover,.contact-page .site-header nav>a:hover,.service-detail-page .site-header nav>a:hover{
    background:#fff9c9;
  }
  .site-header .services-menu a{min-height:40px;padding:10px 12px}
}
@media(max-width:650px){
  .about-page main p,.services-page main p,.areas-page main p,.blog-page main p,.contact-page main p,.service-detail-page main p{
    line-height:1.62!important;
  }
  .about-btn,.svc-btn,.area-btn,.blog-btn,.contact-btn,.detail-btn{
    padding-left:17px;
    padding-right:17px;
  }
  .about-hero-actions,.svc-actions,.area-actions,.help-actions,.contact-actions,.detail-actions{
    align-items:stretch;
  }
  .about-hero-actions>a,.svc-actions>a,.area-actions>a,.help-actions>a,.contact-actions>a,.detail-actions>a{
    flex:1 1 220px;
  }
  .footer-bottom{line-height:1.5}
}
@media(max-width:430px){
  .about-hero-actions>a,.svc-actions>a,.area-actions>a,.help-actions>a,.contact-actions>a,.detail-actions>a{
    width:100%;
    flex-basis:100%;
  }
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .about-page *,.services-page *,.areas-page *,.blog-page *,.contact-page *,.service-detail-page *{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

/* One shared estimate form across Areas, Services, About and service pages. */
.standard-estimate-form,
.detail-estimate-form{
  width:100%!important;
  max-width:570px!important;
  min-height:0!important;
  justify-self:end!important;
  padding:28px 30px!important;
  border:1px solid #d9ddd6!important;
  border-radius:28px!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 22px 48px rgba(14,35,27,.16)!important;
  backdrop-filter:blur(10px);
}

/* The same compact estimate card is used everywhere outside the home page. */
.unified-estimate-form{
  width:100%!important;
  max-width:440px!important;
  min-height:0!important;
  padding:20px!important;
}
.unified-estimate-form h3{
  margin:16px 0 3px!important;
  font-size:24px!important;
  line-height:1.08!important;
}
.unified-estimate-form .final-form-badge{
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  width:auto!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  background:#f4f5ef!important;
  color:#141914!important;
  font-size:9px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.unified-estimate-form .final-form-badge i{
  width:9px!important;
  height:9px!important;
  border-radius:50%!important;
  background:#efd900!important;
}
.unified-estimate-form .final-form-title{
  position:relative!important;
  margin:0 0 10px!important;
  padding-top:11px!important;
  color:#111!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:1.1!important;
}
.unified-estimate-form .final-form-title:before{
  content:"";
  position:absolute;
  top:7px;
  left:0;
  width:4px;
  height:3px;
  background:#efd900;
}
.unified-estimate-form textarea{
  height:78px!important;
  min-height:78px!important;
}
.unified-estimate-form>button{
  width:auto!important;
  min-width:0!important;
  min-height:42px!important;
  padding-inline:18px!important;
  font-size:11px!important;
}
.unified-estimate-form input,
.unified-estimate-form select{
  height:40px!important;
  margin-bottom:7px!important;
  font-size:11px!important;
}
.unified-estimate-form textarea{
  margin-bottom:7px!important;
  font-size:11px!important;
}
.standard-estimate-form .standard-form-label,
.standard-estimate-form .svc-form-label,
.standard-estimate-form .form-label,
.standard-estimate-form .form-eyebrow,
.detail-estimate-form .form-eyebrow{
  display:block!important;
  margin:0 0 12px!important;
  color:#14231e!important;
  font-size:10px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:.18em!important;
}
.standard-estimate-form h2,
.standard-estimate-form h3,
.detail-estimate-form h2{
  margin:0 0 19px!important;
  color:#0d1713!important;
  font-size:29px!important;
  font-weight:800!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
}
.standard-estimate-form .standard-form-two,
.standard-estimate-form .svc-form-two,
.standard-estimate-form .form-two,
.standard-estimate-form .detail-form-grid,
.detail-estimate-form .detail-form-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:11px!important;
  margin:0!important;
}
.standard-estimate-form input,
.standard-estimate-form select,
.standard-estimate-form textarea,
.detail-estimate-form input,
.detail-estimate-form select,
.detail-estimate-form textarea{
  width:100%!important;
  min-width:0!important;
  margin:0 0 11px!important;
  padding:0 15px!important;
  border:1px solid #d9ddd8!important;
  border-radius:11px!important;
  background:#fff!important;
  color:#17211d!important;
  font:500 13px "DM Sans",sans-serif!important;
  outline:none!important;
  box-shadow:none!important;
}
.standard-estimate-form input,
.standard-estimate-form select,
.detail-estimate-form input,
.detail-estimate-form select{height:49px!important}
.standard-estimate-form textarea,
.detail-estimate-form textarea{
  height:112px!important;
  min-height:112px!important;
  padding:14px 15px!important;
  resize:vertical!important;
}
.standard-estimate-form input:focus,
.standard-estimate-form select:focus,
.standard-estimate-form textarea:focus,
.detail-estimate-form input:focus,
.detail-estimate-form select:focus,
.detail-estimate-form textarea:focus{
  border-color:#e1cb00!important;
  box-shadow:0 0 0 4px rgba(242,216,0,.15)!important;
  transform:none!important;
}
.standard-estimate-form>button,
.detail-estimate-form>button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:18px!important;
  width:100%!important;
  min-height:51px!important;
  margin:1px 0 0!important;
  padding:0 22px!important;
  border:0!important;
  border-radius:999px!important;
  background:#f2d900!important;
  color:#101713!important;
  font:800 13px "DM Sans",sans-serif!important;
  cursor:pointer!important;
  transition:transform .24s ease,box-shadow .24s ease,background .24s ease!important;
}
.standard-estimate-form>button:hover,
.detail-estimate-form>button:hover{
  transform:translateY(-3px)!important;
  background:#ffe600!important;
  box-shadow:0 13px 25px rgba(198,176,0,.25)!important;
}
@media(max-width:1000px){
  .standard-estimate-form,.detail-estimate-form{justify-self:center!important}
}
@media(max-width:650px){
  .standard-estimate-form,.detail-estimate-form{max-width:100%!important;padding:23px 18px!important;border-radius:22px!important}
  .standard-estimate-form h2,.standard-estimate-form h3,.detail-estimate-form h2{font-size:25px!important}
  .standard-estimate-form .standard-form-two,.standard-estimate-form .svc-form-two,.standard-estimate-form .form-two,.standard-estimate-form .detail-form-grid,.detail-estimate-form .detail-form-grid{grid-template-columns:1fr!important;gap:0!important}
  .unified-estimate-form{padding:23px 18px!important}
  .unified-estimate-form>button{width:100%!important;min-width:0!important}
}
