.hero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.hero-shade{z-index:1}
.hero-motion{position:absolute;z-index:3;right:5vw;top:130px;background:#161616b3;color:#efeeea;border:1px solid #efeeea80;padding:.65rem 1rem;font:inherit;font-size:14px;cursor:pointer}
.hero-motion:focus-visible{outline:3px solid #e27a32;outline-offset:3px}
.hero-video[hidden],.hero-motion[hidden]{display:none}
@media(max-width:850px){.hero-motion{top:92px}}

/* Responsive safeguards for phones, tablets and short landscape screens. */
html{scroll-padding-top:125px}
main section{scroll-margin-top:1rem}
.hero{height:auto;min-height:max(720px,94svh);padding-top:190px}
.hero-copy{transform:none}
.hero>img{inset:0;width:100%;height:100%;transform:none;will-change:auto;object-position:center}
.hero-rule{display:none}
.hero-motion{min-height:44px;min-width:100px}
.contact{grid-template-columns:minmax(0,2fr) minmax(0,1.2fr);gap:2rem}
.contact>*,.jobber-form>*,.service-split article{min-width:0}
.contact-link{overflow-wrap:anywhere;gap:1rem;line-height:1.6;min-height:44px}
.contact-link b{flex-shrink:0}
footer a{overflow-wrap:anywhere}
.jobber-form iframe{display:block;width:100%;max-width:100%;border:0}
.mobile-menu{overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(2rem,env(safe-area-inset-bottom))}
.menu-toggle{min-height:44px;min-width:80px;justify-content:flex-end}
a:focus-visible,button:focus-visible{outline:3px solid var(--clay);outline-offset:5px}
@media(max-width:1120px){.coordinates{display:none}}
@media(max-width:850px){
  html{scroll-padding-top:95px}
  .hero{min-height:max(680px,100svh);padding-top:158px}
  .contact{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:520px){
  .hero-copy{padding-bottom:2rem}
  .hero h1{font-size:clamp(2.85rem,14.5vw,4.7rem)}
  .hero-actions{gap:1rem;margin-top:1.5rem}
  .hero-actions a{min-height:44px;align-items:center;display:inline-flex}
  .in-house h2{font-size:clamp(2.1rem,10vw,3.25rem)}
  .jobber-form{padding:1rem .5rem}
  .jobber-form-heading{padding-inline:.5rem}
  .contact-meta{margin-top:2rem}
  .process-lockup{max-width:100%}
}
@media(max-height:600px) and (orientation:landscape){
  .hero{min-height:640px}
  .mobile-menu{padding-top:7rem}
  .mobile-menu a{padding:.8rem 0}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
