/* Shared responsive layout and touch controls */
html{ -webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:110px }
body{min-width:0}main,section,article,figure,aside,header>*,.wrap>*,.hero>*,.heat-copy>*,.contact .wrap>*{min-width:0}
img{max-width:100%}p,li,h1,h2,h3,a,figcaption{overflow-wrap:break-word}
button,input,select,textarea{font:inherit}input,select,textarea{font-size:1rem!important;max-width:100%}
a,button{-webkit-tap-highlight-color:rgba(36,129,199,.16)}
.button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:48px;max-width:100%;line-height:1.4}
.call,.menu-toggle{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
header nav a{font-size:.9375rem}header .menu-toggle{display:none}header nav{display:flex}
.gallery{grid-template-columns:repeat(4,minmax(0,1fr))}.services{grid-template-columns:repeat(4,minmax(0,1fr))}
dialog{width:max-content;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}dialog img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 80px)}dialog button{width:44px;height:44px}
@media(max-width:1150px){header{flex-wrap:wrap;gap:12px;padding:12px 5vw}header .menu-toggle{display:inline-flex;margin-left:auto}header nav{display:none;width:100%;order:4;flex-direction:column;gap:0;padding:8px 0;max-height:calc(100dvh - 110px);overflow-y:auto}header nav.is-open{display:flex}header nav a{min-height:48px;display:flex;align-items:center;padding:12px 6px;border-top:1px solid #e4edf5}header nav a::after{display:none}header .call{margin-left:0}}
@media(max-width:900px){.hero{grid-template-columns:minmax(0,1fr)}.hero-photo{height:clamp(240px,60vw,400px);width:100%;grid-row:1}.hero-copy{padding:40px 6vw}.services{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.contact .wrap{grid-template-columns:minmax(0,1fr);gap:28px}}
@media(max-width:600px){html{scroll-padding-top:120px}.wrap{padding:48px 5vw}.plain-intro,.detail-intro{padding:40px 5vw}.hero h1{font-size:clamp(2rem,9vw,3rem);line-height:1.1}.plain-intro h1,.detail-intro h1{font-size:clamp(2rem,8vw,3rem);line-height:1.15}.section-head{display:block}.story-grid,.steam-gallery,.heat-gallery{grid-template-columns:minmax(0,1fr)}.steam-gallery figure:first-child{grid-column:auto}.story img{height:auto;max-height:420px;object-fit:contain;background:#edf6ff}.story div{padding:20px}.heat-copy{grid-template-columns:minmax(0,1fr);padding:40px 5vw 0}.heat-gallery{padding:40px 5vw}.heat-gallery img{height:auto;max-height:none}.quote-panel form{grid-template-columns:minmax(0,1fr)}.quote-panel{padding:20px}.actions{gap:12px}.actions .button{width:100%}.contact-links a{font-size:1rem;padding:12px;min-height:48px}.contact-links svg{width:30px;height:30px}.heated-feature>div{padding:24px 5vw}.heated-feature figure{height:auto;min-height:0}.heated-feature img{height:auto}footer{display:flex;flex-direction:column;gap:16px}footer a{min-height:44px;display:inline-flex;align-items:center}}
@media(max-width:380px){header .call{width:100%;font-size:.9375rem}header .brand{font-size:1.25rem}header .brand img{width:40px;height:34px}.services,.gallery{grid-template-columns:minmax(0,1fr)}.tile.wide{grid-column:auto;aspect-ratio:3/4}.service{min-height:0;padding:22px}.tile figcaption{font-size:1rem}}
@media(hover:none){.call:hover,.button:hover,.contact-links a:hover{transform:none}.tile:hover img{transform:none}}
