/* Shared device layout; identical typography for both languages. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{width:100%;max-width:1800px;margin-inline:auto}
main,section,article,header,footer,nav,form,fieldset,.hero-copy,.section-intro>*,.production>*,.quote-fields>*{min-width:0}
img,iframe{max-width:100%}
h1,h2,h3,p,address,a,legend{overflow-wrap:break-word}
.button{max-width:100%;white-space:normal;text-align:center;min-height:48px}
.header{height:auto;min-height:76px;gap:24px}
.header nav{flex-wrap:wrap;justify-content:flex-end;gap:clamp(12px,2vw,36px)}
.header nav>a:not(.button),.footer nav>a{display:inline-flex;align-items:center;min-height:44px}
.language-switch button{min-width:44px;min-height:44px}
.header nav>.button:hover{color:white}
.wordmark{font-size:clamp(24px,2.2vw,32px);letter-spacing:.46em;white-space:nowrap}
.hero h1{font-size:clamp(40px,5.55vw,94px)}
.hero-action{flex-wrap:wrap}
.hero-visual{min-width:0}
.red-rail{width:24%;padding-left:12%;padding-right:12px}
.red-rail .micro{font-size:10px;letter-spacing:.1em}
.materials{grid-template-columns:repeat(3,minmax(0,1fr))}
.materials>div{min-width:0;gap:16px}
.materials .micro{padding-left:14px;letter-spacing:.1em}
.steps{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 24px minmax(0,1fr);gap:24px;align-items:start}
.step-arrow{align-self:center}
.production{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,1fr)}
.production h2{font-size:clamp(30px,3.2vw,52px)}
.production-copy{font-size:16px}
.contact-details{flex-wrap:wrap;min-width:0}
.contact-person>a{min-height:44px;display:flex;align-items:center}
.footer-top{flex-wrap:wrap}
.footer-tag{flex-wrap:wrap;line-height:1.8}
.quote-layout{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}
.quote-content h1{font-size:clamp(36px,5.6vw,88px);white-space:normal}
.quote-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.quote-content .material-choices label{min-height:44px}
.quote-content .material-choices input{min-width:20px;width:20px;height:20px;min-height:20px}
.capacity .section-label{white-space:normal}
.capacity .section-label .line{flex-shrink:1}
.drop-zone>div{min-width:0}
.drop-zone p{overflow-wrap:anywhere}
#file-list li>span{min-width:0;overflow-wrap:anywhere}
#file-list button{min-height:44px}
.submit-row{flex-wrap:wrap}
.submit-row>a{overflow-wrap:anywhere;min-height:44px;display:inline-flex;align-items:center}
@media(max-width:1100px){
 .header{padding:16px var(--pad);flex-wrap:wrap}
 .header nav{margin-left:auto}
 .header .button{height:auto;min-height:48px;padding:12px 20px}
 .materials .micro{display:none}
 .production{grid-template-columns:repeat(2,minmax(0,1fr))}
 .production img{grid-column:1/-1;height:auto;max-height:340px;aspect-ratio:2.4}
 .production-copy{padding-top:0}
 .quote-layout{grid-template-columns:1fr}
 .quote-content{padding:0 var(--pad) 44px}
 .capacity{border-left:0;border-top:1px solid #c9cbd4}
 .capacity-copy{padding:36px var(--pad)}
 .capacity dl,.capacity-note{max-width:640px}
 .capacity>.capacity-image{flex-basis:260px;min-height:260px}
 .quote-location-copy{padding:30px var(--pad)}
 .location-map{height:320px}
}
@media(max-width:800px){
 .hero{display:flex;flex-direction:column;min-height:0}
 .hero-copy{padding:36px var(--pad)}
 .hero h1{font-size:clamp(40px,9vw,70px)}
 .hero-bottom{display:none}
 .hero-visual{min-height:0;height:clamp(270px,65vw,480px)}
 .red-rail{width:23%;padding-top:30px;padding-bottom:22px;padding-left:12%}
 .section-intro{grid-template-columns:1fr;gap:24px}
 .section-intro>p{max-width:640px}
 .service-grid article{padding-left:18px;padding-right:18px}
 .steps{grid-template-columns:1fr;gap:28px;margin-inline:0}
 .steps article{display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:18px}
 .step-number{grid-row:span 2;width:40px;height:40px;font-size:16px}
 .steps p{max-width:none;font-size:16px}
 .step-arrow{display:none}
 .contact{align-items:flex-start;flex-direction:column}
}
@media(max-width:600px){
 :root{--pad:clamp(18px,5vw,28px)}
 .header{gap:12px;justify-content:center;padding-block:18px}
 .header .wordmark{font-size:26px;letter-spacing:.42em}
 .header nav{width:100%;margin:0;justify-content:center;gap:8px 16px}
 .header .button,.quote-page .header nav>.button{display:inline-flex;width:100%;min-height:44px;padding:10px 16px}
 .header nav>a{font-size:14px}
 .header .language-switch{gap:0}
 .hero h1{font-size:clamp(38px,10.5vw,60px)}
 .hero-copy{padding-top:28px}
 .hero-action{gap:20px}
 .aside-line{display:none}
 .specialties{letter-spacing:.16em;font-size:11px}
 .red-rail{width:24%;padding-left:12%;padding-right:8px}
 .red-rail .micro{font-size:8px;letter-spacing:.06em}
 .materials{gap:12px;padding-block:24px}
 .materials>div+div{padding-left:12px}
 .materials p{font-size:14px;overflow-wrap:normal}
 .materials strong{font-size:20px}
 .section{padding-block:40px}
 h2,.production h2,.contact h2{font-size:clamp(30px,8vw,40px)}
 .service-grid{grid-template-columns:1fr;margin-top:28px}
 .service-grid article{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px 20px;padding:24px 0}
 .service-grid article+article{border-left:0;border-top:1px solid #d9d9df}
 .service-icon{grid-row:span 2;width:46px;height:46px;margin:0}
 .service-grid p{font-size:16px;margin-top:0;max-width:none}
 .production{grid-template-columns:1fr}
 .production img{aspect-ratio:1.7;max-height:none}
 .contact-details{flex-direction:column;gap:26px}
 .footer-top{flex-direction:column;gap:24px}
 .footer .wordmark{font-size:26px;letter-spacing:.42em}
 .footer nav{font-size:14px}
 .footer-bottom{margin-top:30px}
 .quote-layout{padding-top:28px}
 .quote-content h1{font-size:clamp(34px,8.7vw,50px)}
 .quote-subtitle{font-size:16px;letter-spacing:.04em}
 .quote-fields{grid-template-columns:1fr;gap:20px}
 .quote-content label,.material-choices legend{font-size:12px;letter-spacing:.15em}
 .quote-content input,.quote-content textarea{font-size:16px}
 .drop-zone{display:grid;grid-template-columns:32px minmax(0,1fr);padding:18px;gap:14px}
 .drop-zone p{grid-column:1/-1;padding:0}
 .drop-zone small{font-size:13px}
 .submit-row{align-items:stretch;gap:12px}
 .submit-row .button{width:100%}
 .capacity h2{font-size:32px}
 .capacity dl>div{font-size:20px;gap:12px}
 .capacity dd{font-size:22px}
 .quote-location h2{font-size:28px}
}
@media(hover:none){.button:hover{transform:none}}
