/* V4 mobile stability fix — prevents horizontal viewport drift on Android/Samsung browsers */
html,body{width:100%;max-width:100%;min-width:0;margin:0;overflow-x:hidden!important}
@supports (overflow:clip){html,body{overflow-x:clip!important}}
body{position:relative;isolation:isolate}
*,*::before,*::after{box-sizing:border-box}
main,header,footer,section,nav,.topline,.site-header,.site-footer,.hero,.hero-tech,.page-hero,.cta-section,.keyword-section,.insight-ticker,.home-article-strip{max-width:100%;min-width:0}
.container,.narrow{box-sizing:border-box;max-width:100%;min-width:0;margin-inline:auto}
img,video,svg,canvas,iframe{max-width:100%}
.hero-content,.tech-grid,.split,.content-split,.article-feature-grid,.type-grid,.type-card,.services-grid,.feature-list,.footer-grid,.repair-cards,.video-gallery,.areas-grid,.articles-grid,.related-grid,.home-types-grid,.hero-bento,.quick-grid,.cta-inner{min-width:0;max-width:100%}
.hero-content>*,.tech-grid>*,.split>*,.content-split>*,.article-feature-grid>*,.type-grid>*,.type-card>*,.services-grid>*,.feature-list>*,.footer-grid>*,.repair-cards>*,.video-gallery>*,.areas-grid>*,.articles-grid>*,.related-grid>*,.home-types-grid>*,.hero-bento>*,.quick-grid>*,.cta-inner>*{min-width:0;max-width:100%}
h1,h2,h3,h4,p,a,span,li,summary,strong{overflow-wrap:anywhere}
.insight-ticker,.home-article-strip{width:100%;max-width:100%;overflow:hidden!important;contain:layout paint}
.ticker-track{max-width:none;will-change:transform}
.mobile-nav{box-sizing:border-box;max-width:calc(100vw - 16px);margin:0;transform:none!important}
.mobile-nav a{min-width:0;overflow-wrap:anywhere}
.static-video-card,.video-card{width:100%;max-width:370px}
.article-video-trigger,.video-preview,.activated-video,.article-figure,.article-figure img{max-width:100%}

@media(max-width:980px){
  .container{width:calc(100% - 28px)!important;max-width:1180px}
  .narrow{width:calc(100% - 28px)!important;max-width:800px}
  .mobile-nav{right:14px!important;left:14px!important;width:auto!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .hero-content,.tech-grid,.split,.content-split,.article-feature-grid,.type-grid{grid-template-columns:minmax(0,1fr)!important;width:100%}
  .related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .insight-ticker,.home-article-strip{overflow:hidden!important;contain:layout paint}
  .ticker-track{animation:none!important;transform:none!important;will-change:auto!important;display:flex!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;gap:16px!important;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .ticker-track::-webkit-scrollbar{display:none}
  .ticker-track a{flex:0 0 min(78vw,520px);max-width:min(78vw,520px);white-space:normal;line-height:1.7;scroll-snap-align:start}
}

@media(max-width:650px){
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  .container,.narrow{width:calc(100% - 22px)!important;max-width:100%!important;margin-inline:auto!important;padding-inline:0}
  .topline{width:100%;max-width:100%;padding-inline:8px!important;gap:8px!important}
  .topline>*{min-width:0;max-width:100%}
  .topline span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .header-inner{width:calc(100% - 22px)!important;max-width:100%!important;margin-inline:auto!important;padding-inline:0!important}
  .site-header{width:100%;max-width:100%;inset-inline:0}
  .brand{width:min(152px,48vw)!important;max-width:48vw;flex:0 1 auto}
  .brand img{width:100%;height:auto;max-width:100%}
  .menu-btn{flex:0 0 auto;margin-inline-start:auto!important;margin-inline-end:0!important}
  .mobile-nav{position:absolute!important;right:8px!important;left:8px!important;width:auto!important;max-width:calc(100% - 16px)!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow-y:auto!important;overflow-x:hidden!important}
  .mobile-nav.open{display:grid!important}
  .hero,.hero-tech,.page-hero{width:100%;max-width:100%;overflow:hidden}
  .hero-content,.tech-grid,.split,.content-split,.article-feature-grid,.type-card,.cta-inner{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr)!important}
  .hero-copy,.article-feature-grid>div,.article-feature-grid>figure{width:100%;max-width:100%;min-width:0}
  .hero h1,.page-hero h1,.article-feature h1{font-size:clamp(28px,9vw,36px)!important;max-width:100%;word-break:normal}
  .hero p,.page-hero p,.article-content-block p{max-width:100%}
  .hero-actions,.article-cta-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}
  .hero-actions .btn,.article-cta-actions .btn{min-width:0;width:100%;white-space:normal;text-align:center}
  .quick-grid,.services-grid,.feature-list,.home-types-grid,.repair-grid,.gallery-grid,.video-gallery,.areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%;max-width:100%}
  .articles-grid,.articles-grid.rich,.repair-cards,.contact-grid,.related-grid,.type-grid,.footer-grid{grid-template-columns:minmax(0,1fr)!important;width:100%;max-width:100%}
  .related-card{width:100%;max-width:100%}
  .type-card{width:100%;max-width:100%}
  .static-video-card,.video-card{width:100%!important;max-width:100%!important;margin-inline:auto!important}
  .gallery-full{max-width:100%;overflow:hidden}
  .keyword-cloud,.area-cloud,.external-links,.developer-bar{max-width:100%;min-width:0}
  .insight-ticker,.home-article-strip{contain:layout paint;overflow:hidden!important}
  .ticker-track a{padding-inline:4px}
  .contact-rail{max-width:calc(100vw - 16px)}
}

@media(max-width:420px){
  .container,.narrow,.header-inner{width:calc(100% - 18px)!important}
  .brand{width:min(142px,46vw)!important}
  .mobile-nav{grid-template-columns:minmax(0,1fr)!important}
  .quick-grid,.services-grid,.feature-list,.home-types-grid,.repair-grid,.gallery-grid,.video-gallery,.areas-grid{grid-template-columns:minmax(0,1fr)!important}
  .hero-actions,.article-cta-actions{grid-template-columns:minmax(0,1fr)!important}
  .topline{font-size:8px!important}
}

/* V5 layout and performance stability */
html{min-height:100%}
body{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
body>main{flex:1 0 auto;width:100%}
body>.keyword-section,body>.site-footer{flex:0 0 auto;width:100%}
.site-footer{margin-top:0}

@media(max-width:980px),(prefers-reduced-motion:reduce){
  .site-header,.gallery-item span{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .shine::after,.btn.primary::after{animation:none!important;display:none!important}
  .service-card,.card-media img,.article-card-img img,.hero-bg img{transition:none!important}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* V6 permanent professional contact rail and article enhancements */
.contact-rail{left:max(10px,env(safe-area-inset-left));right:auto;top:50%;bottom:auto;transform:translateY(-50%);grid-auto-flow:row;z-index:180;gap:9px}
.contact-rail a{width:44px;height:44px;border-radius:15px;border:1px solid rgba(255,255,255,.72);box-shadow:0 8px 22px rgba(0,0,0,.22),inset 0 0 0 2px rgba(255,255,255,.12)}
.contact-rail a:first-child{background:#18a45b!important;color:#fff!important}
.contact-rail a:last-child{background:#b98735!important;color:#fff!important}
.contact-rail svg{width:22px;height:22px}
.article-focus-table{width:100%;border-collapse:collapse;margin:28px 0;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 10px 28px rgba(0,0,0,.06)}
.article-focus-table th,.article-focus-table td{padding:13px 15px;border:1px solid rgba(120,120,120,.18);text-align:right;vertical-align:top}
.article-focus-table th{background:rgba(185,135,53,.14);font-weight:900}
.article-mid-links{margin:26px 0;padding:20px;border-inline-start:4px solid #b98735;border-radius:16px;background:rgba(185,135,53,.08)}
.article-mid-links a{font-weight:800;text-decoration:underline;text-underline-offset:4px}
@media(max-width:650px){
  .contact-rail{left:max(7px,env(safe-area-inset-left))!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translateY(-50%)!important;grid-auto-flow:row!important}
  .contact-rail a{width:40px;height:40px;border-radius:13px}
  .article-focus-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .article-focus-table th,.article-focus-table td{min-width:150px;padding:10px;font-size:12px}
}
