/* Responsive touch layouts for Android phones and tablets. */
html{scroll-padding-top:94px;-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%}
:where(.container,.contact-grid,.estimate-grid,.engineering-layout,.form-grid,.team-member,.render-toolbar)>*{min-width:0}
button,a,input,select,textarea{-webkit-tap-highlight-color:rgba(180,180,180,.25)}
.render-toolbar h2{overflow-wrap:anywhere}
body.render-open{overflow:hidden}
@media(max-width:1050px){
 .site-header nav.desktop-nav{display:none}
 .site-header .menu-toggle{display:flex;min-height:48px;min-width:72px;justify-content:center}
 .site-header .theme-toggle{width:48px;height:48px}
 .header-actions{margin-left:auto;gap:8px}
 .site-header{gap:12px}
 .site-header nav#nav{position:fixed;inset:78px 0 0;display:flex;justify-content:flex-start;padding:24px max(22px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));overscroll-behavior:contain}
 .site-header nav#nav>a{font-size:clamp(24px,4vw,42px);min-height:52px;line-height:1.4;padding:12px 0;flex-shrink:0}
 .site-header nav#nav p{margin-top:24px}
 .contact input,.contact select,.contact textarea,.search-wrap input,.sort-wrap select,.estimate-panel select{font-size:16px;min-height:48px}
 .search-wrap{min-width:0}
 .tabs button,.model-content button,.service-grid a,.team-phone{min-height:48px;display:inline-flex;align-items:center}
 .hero-controls button{width:44px;height:44px;flex-shrink:0}
 .render-toolbar button{min-width:48px;min-height:48px}
 .team-member h3{overflow-wrap:anywhere}
 .model-meta{flex-wrap:wrap;gap:6px 18px}
 .estimate-panel input[type=range]{min-height:44px;margin-top:12px}
}
@media(max-width:650px){
 .site-header{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .brand-name{font-size:28px}.brand-name small{font-size:7px;letter-spacing:.06em}
 .hero{height:auto;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end}
 .hero-content{height:auto;width:100%;padding:150px 22px 30px;flex:1;justify-content:flex-end}
 .hero .eyebrow{top:103px;font-size:10px;max-width:calc(100% - 44px)}
 .hero h1{font-size:clamp(38px,10.5vw,60px);margin:25px 0 24px;overflow-wrap:normal}
 .hero-carousel{position:relative;left:auto;right:auto;bottom:auto;margin:0 22px;padding:18px 0 max(22px,env(safe-area-inset-bottom));gap:14px}
 .hero-caption{max-width:none;min-width:0;flex:1}
 .hero-controls{gap:6px;flex:0 0 144px}
 .hero-caption strong{font-size:12px}
 .hero-caption span{font-size:9px}
 .intro h2{font-size:clamp(32px,9.5vw,44px)}
 .section-heading h2,.contact h2,.trust h2,.engineering h2,.estimate h2{font-size:clamp(34px,10vw,46px)}
 .showcase-tools{flex-wrap:wrap}.search-wrap{flex-basis:100%;max-width:none}
 .sort-wrap{display:flex;align-items:center;max-width:100%}.sort-wrap select{min-width:0;max-width:100%}
 .showcase-tools>span{margin-left:0}
 .tabs{max-width:100%;overscroll-behavior-x:contain}
 .contact form{padding:20px}.contact input[type=file]{padding:10px 5px;font-size:13px}
 .contact-detail{margin-top:30px}
 .estimate-panel{padding:20px}.estimate-result{padding:18px}.estimate-result strong{font-size:clamp(23px,6.5vw,32px)}
 .team-portrait{max-height:none;aspect-ratio:1/1}
 #renderDialog{width:100%;max-width:100%;height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;margin:0;border:0}
 #renderDialog[open]{display:flex;flex-direction:column}
 .render-toolbar{padding:10px max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));gap:8px;flex-shrink:0}
 .render-toolbar h2{font-size:13px}.render-toolbar button{padding:8px}
 .render-viewport{height:auto;flex:1;min-height:0;touch-action:pan-x pan-y pinch-zoom}
 .render-caption{padding:12px 16px max(12px,env(safe-area-inset-bottom));flex-shrink:0}
 .render-viewport.zoomed img{width:200%;min-width:900px}
}
@media(max-height:500px) and (orientation:landscape){
 .hero{height:auto;min-height:100svh}.hero-content{height:auto;padding-top:125px;padding-bottom:155px}.hero h1{font-size:44px}
 .hero .eyebrow{top:95px}.hero-carousel{position:relative;left:auto;right:auto;bottom:auto;margin:0 22px}.hero-content{padding-bottom:30px}
 #renderDialog{max-height:100dvh}.render-viewport{height:60dvh}
}
@media(pointer:coarse){.model-card:hover .model-visual{filter:none!important}}
