/* One shared page frame and bounded media on every route. */
:root{--site-width:1440px;--gutter:clamp(20px,4vw,56px)}
html{background:#e4ebe7}
body{width:100%;max-width:var(--site-width);margin:0 auto;background:var(--page);box-shadow:0 0 0 1px #dbe3dd}
body>header,body>.topbar,main>.section,main>.intro,main>.crumb,main>.service-hero,main>.cta,body>footer,main>.trust-strip{padding-left:var(--gutter);padding-right:var(--gutter)}
header,main,footer,section,article,aside,form,nav,.hero-copy,.split-copy,.contact-details,.card-copy{min-width:0}
img{max-width:100%;display:block}
.intro,.privacy{max-width:none}
.intro h1{max-width:24ch}
.intro p{max-width:700px}
.privacy p{max-width:80ch}
.hero{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;padding:48px var(--gutter);min-height:0;align-items:stretch}
.hero-copy{padding:20px 0}
.hero-copy h1{font-size:clamp(3.5rem,5.5vw,5.8rem)}
.hero-image{min-height:500px;border-radius:4px}
.hero-image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.image-label{left:28px;bottom:24px;right:24px}
.service-hero{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.service-hero h1{font-size:clamp(3.2rem,5vw,5.1rem)}
.service-hero>img{height:430px;min-width:0;border-radius:4px}
.split{grid-template-columns:repeat(2,minmax(0,1fr));padding:56px var(--gutter);gap:48px;align-items:stretch}
.split-copy{padding:16px 0}
.split-photo{min-height:430px;overflow:hidden;border-radius:4px}
.split-photo img{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:cover}
.section-top>div{min-width:0}
.services-grid,.metal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-card{min-width:0;overflow:hidden}
.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.coverage{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px}
.detail-layout{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);gap:48px}
.article p{max-width:80ch}
.article .faq{width:100%;max-width:none}
.contact-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:48px}
.contact-layout form{width:100%;max-width:none}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr);gap:32px}
.region-photo{margin:0 var(--gutter) 56px;overflow:hidden;border-radius:4px}
.region-photo img{height:350px;width:100%;object-fit:cover}
aside>.button,aside>.text-link{display:table;margin-top:20px}
.hero-note{gap:8px}
.cta h2{font-size:clamp(3rem,4.4vw,4.4rem)}
@media(max-width:1100px){
 .hero{gap:28px;padding-top:36px;padding-bottom:36px}
 .hero-image{min-height:450px}
 .service-hero,.split,.detail-layout,.coverage,.contact-layout{gap:32px}
 .footer-grid{gap:24px}
}
@media(max-width:900px){
 .service-hero,.detail-layout,.contact-layout{grid-template-columns:1fr}
 .service-hero>img{height:380px}
 .service-hero>div{max-width:760px}
 .service-hero h1{font-size:clamp(3rem,6vw,4.4rem)}
 .detail-layout aside{width:100%}
 .services-grid,.metal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .split{grid-template-columns:1fr;gap:30px;padding-top:40px;padding-bottom:40px}
 .split-photo{min-height:360px}
 .split-copy{padding:0}
}
@media(max-width:800px){
 .hero{grid-template-columns:1fr;gap:28px}
 .hero-copy{padding:0}
 .hero-copy h1{font-size:clamp(3.3rem,7.5vw,4.7rem)}
 .hero-image{min-height:360px;height:360px}
 .hero-copy p{max-width:600px}
 .steps{gap:24px}
 .coverage{grid-template-columns:1fr;gap:28px}
 .cta{align-items:flex-start;flex-direction:column;gap:28px}
}
@media(max-width:560px){
 .hero{padding-top:32px;padding-bottom:32px}
 .hero-copy h1{font-size:clamp(3rem,11vw,4rem)}
 .hero-image{min-height:300px;height:300px;width:100%}
 .image-label{left:20px;right:20px;bottom:20px}
 .image-label p{font-size:2.2rem}
 .services-grid,.metal-grid,.location-grid,.form-grid,.steps{grid-template-columns:1fr}
 .split-photo{min-height:280px}
 .service-hero>img{height:280px}
 .service-hero h1{font-size:clamp(2.9rem,10.5vw,3.6rem)}
 .region-photo{margin-bottom:36px}
 .region-photo img{height:240px}
 .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-grid>div:first-child,.footer-grid>div:last-child{grid-column:1/-1}
 .mobile-actions{max-width:var(--site-width);margin:0 auto}
}
