/* Shared sizing rules prevent long translated text from enlarging grid tracks. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%}
:is(.hero-grid,.intro,.sector-grid,.project-grid,.process-grid,.footer-grid,.content-grid,.leader,.project-title-grid,.project-facts,.progress-layout,.stage-controls,.stage-gallery,.contact-grid,.contact-form,.regional-grid,.list-row)>*{min-width:0}
h1,h2,h3,.eyebrow,.breadcrumb,.fact dd,.stage-gallery span{overflow-wrap:anywhere}
.eyebrow:before{flex-shrink:0}
.contact-info .email{max-width:100%}
.breadcrumb{flex-wrap:wrap}
@media(max-width:1100px){
 .header{height:78px}.header nav{display:none;position:absolute;left:0;right:0;top:78px;background:var(--paper);padding:20px 32px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;font-size:16px;gap:8px;max-height:calc(100dvh - 78px);overflow-y:auto}
 .header nav.open{display:flex}.header nav>a{padding:10px 0;min-height:44px}.header nav>a.active:after{bottom:5px}.header nav .mobile-contact{display:block}
 .header-end{margin-left:auto}.header .button{display:none}.menu-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;font-size:20px}
 .language{align-items:center;gap:4px}.language a{min-width:24px;min-height:44px;display:flex;align-items:center;justify-content:center}.language .selected{border-bottom:0;box-shadow:inset 0 -2px var(--orange)}
}
@media(max-width:800px){
 .hero-grid{grid-template-columns:1fr}.hero-image{min-height:430px}.hero-copy{padding:48px 32px 40px}.hero h1{font-size:clamp(48px,8vw,66px)}.hero-copy>p{max-width:550px}.hero-actions{flex-direction:row;flex-wrap:wrap}.hero-bottom{padding-top:32px}
 .intro{grid-template-columns:1fr}.photo-pair{max-width:600px;width:100%}.leadership-intro .leader{grid-template-columns:1fr}.leader-portrait{width:min(460px,100%)}
}
@media(max-width:600px){
 .header{height:72px}.header nav{top:72px;max-height:calc(100dvh - 72px);padding:16px 20px}.header-end{gap:8px}.language{gap:2px}
 .hero-copy{padding:42px 20px 35px}.hero h1{font-size:clamp(44px,12vw,70px)}.hero-image{min-height:350px}.hero-actions{flex-wrap:wrap;gap:16px 23px}
 .button,.filter,.text-link{min-height:44px}.text-link{align-items:center}.filter{font-size:12px}.search{font-size:16px;min-height:44px;max-width:100%}
 .field label{font-size:13px}.field input,.field select,.field textarea{font-size:16px;min-width:0}.contact-form .button{min-height:48px}.form-note{font-size:12px}
 .sector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sector-body h3{hyphens:auto}.stage-control{min-width:0}.stage-control strong,.stage-control small{overflow-wrap:anywhere}
 .stage-gallery{gap:8px}.stage-gallery span{padding:8px 3px}.stage-gallery button{min-width:0}
 .photo-viewer{max-height:calc(100dvh - 16px)}.photo-viewer-toolbar{position:sticky;top:0;background:var(--dark);z-index:1;min-height:60px}.photo-viewer button{width:44px;height:44px;flex-shrink:0}
 .photo-viewer-body{grid-template-columns:44px minmax(0,1fr) 44px;gap:5px}.photo-viewer-body img{height:calc(100dvh - 180px);max-height:65dvh;min-height:100px}
 .footer a:not(.brand){padding:6px 0;margin-bottom:4px}.footer-bottom{line-height:2}
}
@media(max-width:400px){
 .header .brand{font-size:18px;letter-spacing:-1px}.header .brand-mark{width:20px;height:23px;margin-right:5px}.header .brand b{font-size:25px}.header{gap:5px}.header-end{gap:5px}
 .sector-grid{grid-template-columns:1fr}.sector-card .image{height:220px}.sector-body{padding:23px}.sector-body h3{min-height:0;font-size:25px}.sector-body p{font-size:13px}
 .process-grid{grid-template-columns:1fr}.process-item h3{font-size:25px}.process-item p{font-size:14px}.page-top h1{font-size:42px}
 .project-info .meta{flex-wrap:wrap;gap:8px}.field-grid{grid-template-columns:1fr}.field-photo img{height:340px}.field-photo figcaption strong{font-size:14px}.field-photo figcaption span{font-size:10px}
}

/* Six service disciplines share the established card layout. */
.sector-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.energy-feature{background:#e8ece3}.energy-feature .intro{gap:65px}.energy-feature h2{margin:22px 0}.energy-feature p{font-size:15px}.energy-feature img{aspect-ratio:4/5;max-height:580px}.energy-links{display:flex;flex-wrap:wrap;gap:18px 30px;margin-top:28px}
@media(max-width:1100px){.sector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-feature .intro{gap:35px}}@media(max-width:600px){.energy-links{flex-direction:column;align-items:flex-start}.energy-feature p{font-size:14px}}@media(max-width:400px){.sector-grid{grid-template-columns:1fr}}

/* Photo navigation uses text labels; all decorative arrows are removed. */
.photo-viewer-body{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-bottom:12px}
.photo-viewer-body img{grid-column:1/-1;grid-row:1;height:calc(100dvh - 240px);max-height:65dvh}
.photo-viewer-body #photo-prev,.photo-viewer-body #photo-next{grid-row:2;width:auto;min-width:90px;height:44px;padding:0 14px;font-size:13px}
#photo-prev{grid-column:1;justify-self:start}#photo-next{grid-column:3;justify-self:end}
.stage-control{grid-template-columns:35px minmax(0,1fr)}
@media(max-width:900px){.stage-control{grid-template-columns:1fr}}
@media(max-width:600px){.photo-viewer-body #photo-prev,.photo-viewer-body #photo-next{min-width:80px;font-size:12px}.photo-viewer-body img{min-height:80px}}
