
/* Sferra v10: mobile layout rescue, touch navigation polish, and overflow protection. */
html,body{max-width:100%!important;overflow-x:hidden!important;}
body{word-break:normal!important;}
img,video,iframe,svg{max-width:100%!important;}
.container,.nav-shell,.hero-grid,.hero-copy,.hero-form,.quote-form,.content-section,.two-col,.service-grid,.county-grid,.gallery-grid,.footer-grid{min-width:0!important;}

/* Keep the true supplied logo readable without stretching it. */
.site-header .brand{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important;min-width:0!important;max-width:none!important;width:auto!important;gap:0!important;overflow:visible!important;}
.site-header .brand img,.site-header .brand img.brand-mark-img{display:block!important;width:clamp(142px,14vw,188px)!important;max-width:clamp(142px,14vw,188px)!important;height:auto!important;max-height:none!important;aspect-ratio:288/101!important;object-fit:contain!important;object-position:left center!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;filter:none!important;flex:0 0 auto!important;}
.site-header .brand span,.site-header .brand .brand-text,.site-header .brand .brand-type{display:none!important;}
.site-header .nav-shell{justify-content:space-between!important;}

/* Mega menus: remove the dead hover gap and make desktop dropdowns easier to reach. */
@media (min-width:1081px){
  .has-menu,.mega-item{padding-top:10px!important;padding-bottom:22px!important;margin-top:-10px!important;margin-bottom:-22px!important;}
  .mega-menu{top:calc(100% - 1px)!important;padding-top:1px!important;}
  .mega-panel{max-height:min(72vh,720px)!important;overflow:auto!important;overscroll-behavior:contain!important;}
}

/* Universal hero reset for tablets and phones. This prevents the form from sitting off-screen beside the headline. */
@media (max-width:1080px){
  html{scroll-padding-top:92px!important;}
  .top-strip-inner{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:.12rem!important;text-align:center!important;line-height:1.25!important;}
  .site-header{position:sticky!important;top:0!important;z-index:4000!important;background:#f8f4eb!important;}
  .site-header .nav-shell{min-height:68px!important;padding:.52rem 0!important;gap:.75rem!important;}
  .site-header .brand img,.site-header .brand img.brand-mark-img{width:clamp(150px,42vw,186px)!important;max-width:clamp(150px,42vw,186px)!important;}
  .nav-toggle{display:block!important;margin-left:auto!important;width:46px!important;height:46px!important;flex:0 0 46px!important;border:0!important;background:transparent!important;}
  .nav-toggle span{background:#101820!important;height:3px!important;margin:7px 5px!important;}
  .nav-cta{display:none!important;}
  .main-nav{position:fixed!important;left:14px!important;right:14px!important;top:112px!important;width:auto!important;max-height:calc(100dvh - 132px)!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important;background:#fffefa!important;border:1px solid #dcca9d!important;border-radius:22px!important;padding:.85rem!important;box-shadow:0 24px 72px rgba(0,0,0,.25)!important;z-index:4200!important;}
  .main-nav>ul{display:grid!important;grid-template-columns:1fr!important;gap:.45rem!important;align-items:stretch!important;}
  .main-nav .nav-link,.main-nav>ul>li>a{width:100%!important;justify-content:space-between!important;color:#101820!important;background:#f5eedc!important;border:1px solid #e2d6b5!important;border-radius:16px!important;min-height:44px!important;padding:.72rem .85rem!important;}
  .mega-menu{position:static!important;width:100%!important;max-width:100%!important;transform:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;padding:0!important;margin:.4rem 0 .2rem!important;color:#101820!important;}
  .mega-panel{display:block!important;width:100%!important;max-height:none!important;overflow:visible!important;padding:.68rem!important;border-radius:18px!important;box-shadow:none!important;background:#fff!important;border:1px solid #e0d0aa!important;}
  .mega-intro{padding:.82rem!important;border-radius:15px!important;margin-bottom:.55rem!important;}
  .mega-intro strong{font-size:1rem!important;}
  .mega-intro p{font-size:.84rem!important;margin:.25rem 0 0!important;}
  .mega-service-grid,.mega-county-grid{display:grid!important;grid-template-columns:1fr!important;gap:.45rem!important;}
  .mega-card{min-height:auto!important;border-radius:14px!important;padding:.68rem!important;}

  .hero-section,.home-hero{overflow:hidden!important;min-height:auto!important;}
  .hero-section .hero-grid,.home-hero .hero-grid,.hero-section:not(.home-hero) .hero-grid{display:flex!important;flex-direction:column!important;grid-template-columns:1fr!important;width:100%!important;max-width:100%!important;min-width:0!important;min-height:auto!important;margin:0 auto!important;align-items:stretch!important;justify-content:flex-start!important;gap:1rem!important;padding:clamp(1.25rem,3vw,2.1rem) 0 clamp(1.75rem,4vw,2.6rem)!important;}
  .hero-section .hero-copy,.home-hero .hero-copy,.hero-section:not(.home-hero) .hero-copy,.hero-section .hero-form,.home-hero .hero-form,.hero-section:not(.home-hero) .hero-form{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;align-self:stretch!important;grid-column:auto!important;grid-row:auto!important;}
  .hero-section .hero-copy{background:linear-gradient(135deg,rgba(2,8,12,.93),rgba(8,17,23,.88))!important;border:1px solid rgba(240,223,150,.36)!important;border-radius:24px!important;padding:1.1rem!important;box-shadow:0 18px 54px rgba(0,0,0,.28)!important;}
  .hero-section .hero-form .quote-form,.home-hero .hero-form .quote-form,.hero-section:not(.home-hero) .hero-form .quote-form{width:100%!important;max-width:100%!important;margin:0!important;padding:1rem!important;border-radius:22px!important;background:#fff!important;box-shadow:0 18px 50px rgba(0,0,0,.22)!important;}
  .hero-section .hero-media img,.home-hero .hero-media img,.hero-section:not(.home-hero) .hero-media img{opacity:.38!important;object-position:center center!important;filter:saturate(1.04) contrast(1.08)!important;}
  .hero-section:before,.home-hero:before,.hero-section:not(.home-hero):before{background:linear-gradient(110deg,rgba(2,8,12,.98),rgba(2,8,12,.88) 58%,rgba(2,8,12,.64))!important;}
  .hero-section h1,.home-hero h1,.hero-section:not(.home-hero) h1{max-width:100%!important;font-size:clamp(2.05rem,7.2vw,3.35rem)!important;line-height:1.02!important;letter-spacing:-.055em!important;text-wrap:balance!important;overflow-wrap:normal!important;}
  .hero-copy p,.home-hero .hero-copy p,.hero-section:not(.home-hero) .hero-copy p{max-width:100%!important;font-size:clamp(.98rem,2.2vw,1.08rem)!important;line-height:1.48!important;color:#f0f5f7!important;}
  .hero-actions{display:flex!important;gap:.65rem!important;flex-wrap:wrap!important;margin-top:.9rem!important;}
  .hero-actions .button{flex:1 1 220px!important;min-width:0!important;white-space:normal!important;}
  .trust-row{margin-top:.75rem!important;gap:.45rem!important;}
  .trust-row span{font-size:.78rem!important;padding:.38rem .56rem!important;}
  .quote-form .form-grid,.home-hero .hero-form .form-grid,.hero-section:not(.home-hero) .hero-form .form-grid{grid-template-columns:1fr!important;gap:.65rem!important;}
  .quote-form .form-grid .wide{grid-column:1!important;}
  .quote-form label{font-size:.78rem!important;}
  .quote-form input,.quote-form select,.quote-form textarea{min-width:0!important;width:100%!important;font-size:16px!important;padding:.72rem .78rem!important;border-radius:13px!important;}
  .quote-form textarea{min-height:96px!important;max-height:none!important;}
  .quote-form .consent{font-size:.75rem!important;line-height:1.32!important;display:flex!important;align-items:flex-start!important;}
  .quote-form .button{min-height:48px!important;font-size:.96rem!important;}
  .form-note{font-size:.86rem!important;}
}

@media (max-width:700px){
  :root{--container:min(100% - 28px,1180px)!important;}
  html{scroll-padding-top:82px!important;}
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom))!important;}
  .top-strip{font-size:.78rem!important;}
  .top-strip-inner{padding:.34rem 0!important;}
  .site-header .nav-shell{min-height:74px!important;padding:.55rem 0!important;}
  .site-header .brand img,.site-header .brand img.brand-mark-img{width:min(62vw,186px)!important;max-width:min(62vw,186px)!important;}
  .main-nav{top:118px!important;left:12px!important;right:12px!important;max-height:calc(100dvh - 138px)!important;}
  .hero-section .hero-grid,.home-hero .hero-grid,.hero-section:not(.home-hero) .hero-grid{padding:1rem 0 1.35rem!important;gap:.82rem!important;}
  .hero-section .hero-copy{padding:.95rem!important;border-radius:20px!important;}
  .eyebrow{font-size:.66rem!important;letter-spacing:.12em!important;line-height:1.5!important;gap:.45rem!important;}
  .eyebrow:before{width:28px!important;}
  .hero-section h1,.home-hero h1,.hero-section:not(.home-hero) h1{font-size:clamp(2rem,10.2vw,2.82rem)!important;line-height:1.035!important;letter-spacing:-.052em!important;margin-bottom:.78rem!important;}
  .hero-copy p,.home-hero .hero-copy p,.hero-section:not(.home-hero) .hero-copy p{font-size:.98rem!important;line-height:1.48!important;margin-bottom:0!important;}
  .hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:.55rem!important;margin-top:.85rem!important;}
  .hero-actions .button{width:100%!important;min-height:46px!important;padding:.72rem .9rem!important;font-size:.95rem!important;}
  .home-hero .trust-row{display:none!important;}
  .hero-section .hero-form .quote-form,.home-hero .hero-form .quote-form,.hero-section:not(.home-hero) .hero-form .quote-form{padding:.9rem!important;border-radius:19px!important;}
  .form-head{margin-bottom:.65rem!important;}
  .form-head strong{font-size:1.16rem!important;line-height:1.08!important;}
  .form-head small{font-size:.9rem!important;line-height:1.28!important;}
  .form-kicker{font-size:.64rem!important;letter-spacing:.12em!important;}
  .quote-form label{font-size:.77rem!important;gap:.18rem!important;}
  .quote-form input,.quote-form select{min-height:47px!important;}
  .quote-form textarea{min-height:88px!important;}
  .quote-form .consent input{flex:0 0 auto!important;margin-top:.12rem!important;}
  .content-section{padding:3rem 0!important;}
  .section-intro{text-align:left!important;margin-bottom:1.4rem!important;}
  .section-intro h2{font-size:clamp(1.9rem,8.2vw,2.45rem)!important;}
  .two-col,.two-col.reverse,.service-grid,.county-grid,.process-grid,.testimonial-grid,.video-grid,.gallery-grid,.gallery-grid.compact,.location-faq-services .service-grid{display:grid!important;grid-template-columns:1fr!important;gap:1rem!important;}
  .service-card .card-img,.location-faq-services .service-card .card-img{height:200px!important;}
  .faq-list details{padding:.88rem!important;border-radius:16px!important;}
  .faq-list summary{font-size:.98rem!important;line-height:1.3!important;}
  .location-list{columns:1!important;}
  .map-embed iframe,.location-map-section iframe{width:100%!important;min-height:300px!important;}
  .floating-quote{display:none!important;}
  .mobile-sticky{position:fixed!important;display:grid!important;grid-template-columns:1fr 1.35fr!important;left:0!important;right:0!important;bottom:0!important;z-index:5000!important;background:#071016!important;border-top:1px solid rgba(255,255,255,.14)!important;padding-bottom:env(safe-area-inset-bottom)!important;box-shadow:0 -18px 40px rgba(0,0,0,.25)!important;}
  .mobile-sticky a{display:flex!important;align-items:center!important;justify-content:center!important;min-height:62px!important;padding:.7rem .82rem!important;text-align:center!important;font-weight:950!important;font-size:.96rem!important;color:#fff!important;}
  .mobile-sticky a:last-child{background:linear-gradient(135deg,var(--gold),var(--gold-2))!important;color:#071016!important;}
}

@media (max-width:420px){
  .site-header .brand img,.site-header .brand img.brand-mark-img{width:min(58vw,172px)!important;max-width:min(58vw,172px)!important;}
  .hero-section h1,.home-hero h1,.hero-section:not(.home-hero) h1{font-size:clamp(1.88rem,9.7vw,2.55rem)!important;}
  .top-strip-inner{font-size:.74rem!important;}
  .hero-actions .button{font-size:.91rem!important;}
  .quote-form input,.quote-form select,.quote-form textarea{padding:.68rem .72rem!important;}
}
