/* Shared type system, loaded after component styles on every page. */
:root{--font-heading:'Manrope',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--font-body:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--body-size:clamp(16px,1.2vw,18px);--space-text:1.25rem}
html{font-size:16px;text-size-adjust:100%;-webkit-text-size-adjust:100%;scrollbar-gutter:stable}
body,input,textarea,select,table{font-family:var(--font-body);font-weight:400;line-height:1.65;font-size:var(--body-size)}
h1,h2,h3,h4,h5,h6,nav,button,.button,.inline-link,.text-link,.service-detail-links a{font-family:var(--font-heading)}
h1,.page-heading,.detail-hero-grid h1{font-size:clamp(36px,4.5vw,64px);font-weight:700;line-height:1.15;letter-spacing:-.035em;margin:0 0 28px;text-wrap:balance;overflow-wrap:break-word}
h2,.profile-banner h2{font-size:clamp(28px,3vw,40px);font-weight:700;line-height:1.22;letter-spacing:-.025em;margin:0 0 24px;text-wrap:balance;overflow-wrap:break-word}
h3,.service h3,.partners h3,.factory-grid h3,.project-feature h3,.reference-grid h3,.related-services h3{font-size:clamp(21px,1.8vw,26px);font-weight:600;line-height:1.35;letter-spacing:-.015em;overflow-wrap:break-word}
h4,h5,h6{font-weight:600;line-height:1.4;letter-spacing:normal}
p{max-inline-size:68ch;margin:0 0 var(--space-text)}
.hero p,.about p,.about .lead,.service p,.section-head>p,.factory-intro,.factory-grid p,.project-feature p,.archive-note,.partners p,.profile-banner p,.contact-grid>div>p,.addresses address,.addresses>p,.detail-hero-grid p,.reference-intro,.reference-grid p,.document-note,.org-explanation,.service-enquiry-context p,.service-enquiry-context p:last-child{font-size:var(--body-size);line-height:1.65}
.about .lead{font-weight:500}.section-head>p{max-width:38ch}.archive-note,.document-note,.org-explanation,.reference-intro{max-width:68ch}
strong,b{font-weight:600}button,.button,nav,.inline-link,.text-link{font-weight:600;letter-spacing:0}button,.button,.nav-contact{line-height:1.45}
nav{font-size:15px}.button,.text-link,.inline-link{font-size:15px}.filters button,.menu-toggle{font-size:14px;min-height:44px}.nav-contact{padding:14px 20px}
.eyebrow,.country,.service .index,.topbar,.hero-bottom,.brand span,figcaption span,.partners article>span,.footer-bottom,.footer-brand span,.about-section-nav span,.reference-grid .eyebrow,.service-context,.gallery-enlarge,.enlarge-label,.certificate-caption p,#certificate-disclaimer,#certificate-original,#gallery-position,.gallery-controls a,caption,.status,.factory-grid small,.text-link small,.button.white small{font-size:clamp(12px,.9vw,13px);line-height:1.6;letter-spacing:.055em;font-weight:500}
.eyebrow{margin-bottom:22px}.eyebrow,.country{font-family:var(--font-heading);font-weight:700}.sector-strip .wrap{font-size:13px;text-transform:none;letter-spacing:.015em;flex-wrap:wrap;gap:12px 24px}.topbar .wrap{gap:20px;align-items:center}.topbar a{font-size:13px;white-space:nowrap}.hero-bottom{gap:20px;letter-spacing:.035em}.brand span{font-size:12px;letter-spacing:.025em;max-width:130px;line-height:1.5}.brand img{flex-shrink:0}.brand{flex-shrink:0}
.footer-main p,.footer-main>a:not(.footer-brand){font-size:14px;line-height:1.65}.footer-brand span{font-family:var(--font-body);letter-spacing:.025em}.addresses h3,.reference-grid dt,.related-services>a>span:first-child{font-size:13px;text-transform:none;letter-spacing:.035em;font-weight:600}.related-services h3{margin-top:14px}.factory-grid a,.service-note{font-size:16px}.factory-grid p{margin:14px 0}.factory-grid small{max-width:60ch}
table{font-size:16px;line-height:1.65;min-width:1100px}table :is(th,td,small){font-family:var(--font-body)}th,td{padding:19px 16px;overflow-wrap:break-word}th{font-weight:600}td small{font-size:16px;line-height:1.65;margin-top:6px}.table-scroll{max-width:100%}td:nth-child(4),.reference-grid .eyebrow,.project-feature>div>span:last-child,.track-record-stats strong{font-variant-numeric:tabular-nums lining-nums}.reference-grid .eyebrow,.project-feature>div>span:last-child{font-family:var(--font-body);font-size:13px;letter-spacing:.015em}
.detail-scope li,.sector-list li,.client-list span,.org-department ul li,.reference-grid dd{font-family:var(--font-body);font-size:16px;line-height:1.65}.client-list strong{font-family:var(--font-heading);font-weight:700;font-size:20px}.org-node{font-family:var(--font-heading);font-size:20px;font-weight:600}.org-department h3,.certificate-caption h3{font-size:20px;font-weight:600;line-height:1.4}.org-department ul{padding:14px 20px}.client-list li{padding:15px 0}.certificate-caption h3{margin-bottom:12px}.certificate-dialog-head h2,.gallery-modal-head h2{font-family:var(--font-heading);font-weight:600;font-size:clamp(22px,2vw,28px);line-height:1.3}.certificate-close,.service-gallery-panel button{font-size:14px;font-weight:600}.service-gallery figcaption,.detail-hero-grid figcaption,figcaption{font-size:14px;line-height:1.6}.service-detail-links a{font-size:14px;line-height:1.5}.service-detail-links small{font-family:var(--font-body);font-size:14px;line-height:1.6}.breadcrumbs,.about-section-nav nav{font-family:var(--font-heading);font-size:13px;line-height:1.6;font-weight:500}.breadcrumbs li{overflow-wrap:anywhere}.big-contact{font-family:var(--font-body);font-weight:500;font-variant-numeric:tabular-nums;font-size:clamp(22px,2.2vw,30px);overflow-wrap:anywhere}.track-record-stats strong{font-family:var(--font-heading);font-weight:800}.track-record-stats span{font-size:16px}.track-record h3{font-family:var(--font-heading);font-size:clamp(22px,2vw,28px);font-weight:600}.owner-grid li,.contractor-grid li{font-family:var(--font-heading);font-weight:600;line-height:1.5}.owner-grid li{font-weight:700}.service-gallery-panel :is(h2,p),.certificate-panel :is(h2,p){max-inline-size:none}
.footer-main p{font-size:16px}.footer-main>a:not(.footer-brand){font-family:var(--font-heading);font-weight:600}.service-gallery figcaption,.detail-hero-grid figcaption,figcaption,.service-detail-links small{font-size:13px}table{font-variant-numeric:tabular-nums lining-nums}
@media(max-width:1150px) and (min-width:901px){.header{gap:18px}.header nav{gap:16px}.brand span{display:none}.nav-contact{padding:12px 15px}}
@media(max-width:900px){.header nav{font-size:15px}.about-section-nav nav{gap:10px 22px}.section{padding-top:72px;padding-bottom:72px}.header{min-height:88px}.brand span{display:none}.org-department h3{font-size:19px}}
@media(max-width:600px){h1,.page-heading,.detail-hero-grid h1{font-size:clamp(36px,9vw,48px);line-height:1.16;letter-spacing:-.025em}h2,.profile-banner h2{font-size:28px;line-height:1.25}.section{padding-top:56px;padding-bottom:56px}.topbar .wrap{gap:14px;align-items:flex-start;flex-wrap:wrap}.topbar span{font-size:12px;max-width:24ch;letter-spacing:.025em}.topbar a{font-size:12px}.topbar .wrap{padding:10px 0}.hero-bottom{font-size:12px;flex-wrap:wrap;gap:12px}.sector-strip .wrap{font-size:13px;justify-content:flex-start}.eyebrow{font-size:12px;letter-spacing:.045em}.about-section-nav span{font-size:12px}.about-section-nav nav{font-size:13px}.about-section-nav a{min-height:40px}.service-note{font-size:16px}.button,.text-link,.inline-link,.detail-hero-grid .button{font-size:14px}.footer-main{grid-template-columns:1fr;gap:25px}.footer-main p,.footer-main>a:not(.footer-brand){font-size:14px}.footer-bottom{font-size:12px;gap:20px;flex-wrap:wrap}.track-record{padding:25px 18px}.track-record-stats span{font-size:16px}.contractor-grid li{font-size:16px}.gallery-modal-head h2,.certificate-dialog-head h2{font-size:22px}.gallery-controls{gap:14px}.gallery-controls a{font-size:13px}.service-gallery-panel button{font-size:14px}.brand img{width:125px}.reference-grid article{padding:25px}.contact-grid>div>p{max-width:68ch}}
@media(max-width:600px){.footer-main p{font-size:16px}}
