@font-face{font-family:CBGSans;src:url('/assets/fonts/cbg-sans.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:CBGSans;src:url('/assets/fonts/cbg-sans-bold.woff') format('woff');font-weight:600 900;font-display:swap}

:root{--ink:#132b36;--text:#51606a;--paper:#f7f6f2;--orange:#ca5938;--line:#dcded9;--white:#fff;--max:1280px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:105px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:CBGSans,Arial,sans-serif;}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button{cursor:pointer}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:5px}
img{max-width:100%;display:block;object-fit:cover}
figure{margin:0;position:relative}
h1,h2,h3,p{margin-top:0}
h1,h2{font-weight:700;letter-spacing:-.057em;}
h3{letter-spacing:-.025em;}
p{color:var(--text)}
.container{width:min(var(--max),calc(100% - 100px));margin:0 auto}
.icon{width:22px;height:22px;flex-shrink:0}
.overline{display:block;font-weight:700;letter-spacing:.15em;margin-bottom:22px;text-transform:uppercase}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;background:var(--orange);color:white;border:1px solid var(--orange);padding:17px 23px;font-weight:700;min-height:54px;transition:background .2s,transform .2s}
.button:hover{background:#ac4428;transform:translateY(-2px)}
.button-outline{background:transparent;border-color:var(--line);color:var(--ink)}
.button-outline:hover{background:white}
.text-link{display:inline-flex;align-items:center;gap:20px;font-weight:700;padding:6px 0;border-bottom:1px solid var(--ink)}
.text-link:hover{color:var(--orange);border-color:var(--orange)}
.utility{background:var(--ink);color:#c4cdd0;letter-spacing:.1em}
.utility .container{display:flex;justify-content:space-between;align-items:center;min-height:33px}
.utility i{display:inline-block;width:3px;height:3px;background:#ca5938;margin:0 14px;vertical-align:middle}
.utility a{letter-spacing:0}
.site-header{position:sticky;top:0;z-index:30;background:rgba(247,246,242,.97);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:95px;gap:26px}
.brand{display:inline-flex;flex-direction:column;flex-shrink:0;}
.brand>span{font-weight:700;letter-spacing:-.085em}
.brand-dot{color:var(--orange)}
.brand small{letter-spacing:.12em;margin-top:7px;font-weight:700}
.navigation{display:flex;align-items:center;gap:24px}
.navigation a{font-weight:700;white-space:nowrap;position:relative}
.navigation a:hover,.navigation a[aria-current]{color:var(--orange)}
.navigation a[aria-current]:after{content:'';position:absolute;left:0;right:0;bottom:-13px;height:2px;background:var(--orange)}
.header-actions{display:flex;align-items:center;gap:22px}
.language{white-space:nowrap;font-weight:700}
.language span{color:#939b9d;font-weight:400}
.header-quote{display:flex;align-items:center;gap:16px;font-weight:700;border:1px solid #c9cec9;padding:12px 13px;white-space:nowrap}
.header-quote:hover{border-color:var(--orange);color:var(--orange)}
.header-quote .icon{width:17px;height:17px}
.menu-toggle,.mobile-contact{display:none}
.hero{padding:46px 0 48px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.03fr);min-height:580px;gap:55px}
.hero-copy{padding:28px 0 0;display:flex;flex-direction:column}
.hero-copy .overline{margin-bottom:32px;display:flex;gap:10px;align-items:center}
.status-dot{width:6px;height:6px;border-radius:50%;background:var(--orange)}
.hero h1{margin:0 0 26px;letter-spacing:-.065em}
.hero h1 span{color:var(--orange)}
.hero-copy>p{max-width:410px;margin-bottom:28px}
.hero-buttons{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.hero-secondary{font-weight:700;display:inline-flex;gap:12px;align-items:center}
.hero-secondary .icon{width:17px}
.hero-bottom{margin-top:auto;padding-top:40px;display:flex;align-items:center;gap:12px;max-width:415px;font-weight:700}
.hero-bottom .muted{padding:0 7px;color:#8c9496}
.hero-line{height:1px;background:var(--line);flex:1}
.small-square{width:8px;height:8px;background:var(--orange)}
.hero-bottom .icon{width:19px;color:#7c888e}
.hero-photo{min-height:580px;overflow:hidden;background:#c1c7c6}
.hero-photo>img{height:100%;width:100%;position:absolute;object-position:66% center}
.hero-photo:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#102a3590);pointer-events:none}
.hero-photo-note{position:absolute;bottom:49px;left:30px;right:30px;z-index:2;color:white;display:flex;justify-content:space-between;align-items:end;font-weight:700;letter-spacing:-.03em;}
.hero-photo-note .icon{width:35px;height:35px;stroke-width:1}
.illustration-label{position:absolute;bottom:17px;right:25px;z-index:2;color:#d7dfde}
.value-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#efeee8}
.value-strip .container{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:75px}
.value-strip span{font-weight:700}
.value-strip b{margin-right:20px;color:var(--orange)}
.value-strip .strip-tail{letter-spacing:.1em;color:#7b878a}
.section{padding:96px 0}
.section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:70px;align-items:end;margin-bottom:42px}
.section-heading h2{margin-bottom:0}
.section-heading>div:last-child{max-width:405px;justify-self:end}
.section-heading p{margin:0 0 17px}
.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.product-photo{position:relative;display:block;height:255px;background:#e1e4e2;overflow:hidden}
.product-photo img{width:100%;height:100%;transition:transform .55s}
.product-photo:hover img{transform:scale(1.035)}
.product-number{position:absolute;top:18px;left:18px;color:white;background:#132b3670;padding:5px 9px;}
.photo-tag{position:absolute;bottom:13px;right:15px;color:white;background:#132b3670;padding:2px 6px}
.product-card-text{padding:23px 0 0}
.product-card-text h3{margin-bottom:12px}
.product-card-text p{min-height:67px;margin-bottom:12px}
.sourcing-section{background:var(--ink);color:white;padding:80px 0}
.sourcing-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:85px;align-items:center}
.sourcing-grid>figure{height:600px;background:#283c44}
.sourcing-grid>figure>img{height:100%;width:100%}
.sourcing-grid>figure figcaption{position:absolute;bottom:16px;right:18px;color:white}
.image-label{position:absolute;top:25px;left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;color:white;}
.sourcing-copy>.overline{color:#d98563}
.sourcing-copy>p{color:#b6c2c8;}
.process-list{margin:32px 0 30px}
.process-list>div{display:flex;gap:20px;border-top:1px solid #38505b;padding:20px 0 13px}
.process-list>div>span{color:#d98563;padding-top:3px}
.process-list>div>div{flex:1}
.process-list h3{margin-bottom:4px;letter-spacing:0}
.process-list p{color:#aab8c0;margin-bottom:0}
.process-list .icon{width:17px;color:#6c8692}
.light-link{border-color:#7c9199;color:white}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.project-card{border:1px solid #d6dbd7;background:#f3f3ee;transition:background .2s,border-color .2s}
.project-card:hover{background:white;border-color:var(--orange)}
.project-top{display:flex;align-items:center;padding:24px 25px;border-bottom:1px solid #dce0dc;gap:15px}
.country-code{font-weight:700;letter-spacing:-.06em}
.project-category{color:#707e83;margin-left:auto}
.project-top .icon{width:17px}
.project-card-body{padding:30px 25px 27px}
.project-card .overline{color:var(--orange);margin-bottom:12px}
.project-card h3{margin-bottom:10px;}
.project-card p{margin:0;max-width:380px}
.consultancy-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:63px 0;background:#eeede7}
.consultancy-band>.container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:60px;position:relative;overflow:hidden}
.consultancy-band h2{margin:0}
.consultancy-band p{max-width:400px;}
.consultancy-globe{position:absolute;right:-80px;top:-50px;width:240px;height:240px;opacity:.055;stroke-width:.5;pointer-events:none}
.cta{padding:78px 0 84px;background:#e5e8df}
.cta-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px;align-items:center}
.cta h2{margin:0}
.cta-inner>div:last-child{max-width:395px;justify-self:end}
.cta p{margin-bottom:20px}
.footer{background:var(--ink);color:#d6e0e3;padding:68px 0 0}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,1fr);gap:40px;padding-bottom:55px}
.brand-light{color:white}
.footer p{color:#a9bac1;margin:22px 0}
.footer .overline{color:#8eabb8;margin:3px 0 25px}
.footer-grid>div>a:not(.brand){display:flex;align-items:center;gap:15px;margin-bottom:15px}
.footer-grid a:hover{color:#df886b}
.footer-grid .icon{width:14px}
.footer-grid>div:last-child p{margin:0 0 13px}
.footer-since{letter-spacing:.1em;color:#72909d}
.footer-grid .footer-globe{width:30px;height:30px;margin-top:6px;color:#6e8d9c}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #34505b;min-height:70px;color:#90a4ae}
.page-hero{padding:62px 0 70px;background:#eeede7;border-bottom:1px solid var(--line)}
.page-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:55px;align-items:center}
.page-hero h1{max-width:920px;margin-bottom:24px}
.page-hero p{max-width:640px;margin-bottom:0}
.breadcrumbs{display:flex;align-items:center;gap:12px;color:#738087;margin-bottom:31px}
.breadcrumbs a{color:var(--orange)}
.hero-symbol{display:flex;justify-content:center;align-items:center}
.hero-symbol .icon{height:165px;width:165px;stroke-width:.4;color:#a5b0b0}
.page-hero-image .page-hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}
.page-hero-image figure{height:350px;background:#dfe3e1}
.page-hero-image figure img{height:100%;width:100%}
.page-hero-image figcaption{position:absolute;bottom:15px;right:18px;color:white;background:#132b3660;padding:3px 8px;}
.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.service-card{padding:38px;border:1px solid var(--line);background:#f3f3ee}
.service-index{color:var(--orange);display:block;margin-bottom:37px}
.service-card p{max-width:420px;}
.service-card .button{margin-top:12px}
.scope-band{background:var(--ink);color:white;padding:60px 0}
.scope-band>.container{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:75px;align-items:center}
.scope-band h2{margin:0}
.scope-band p{color:#b1c1c9;margin:0}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:90px}
.detail-grid>div:first-child>p{max-width:455px}
.detail-grid .button{margin-top:12px}
.spec-panel{border:1px solid var(--line);padding:34px;background:#efeee8}
.spec-panel ul{list-style:none;padding:0;margin:25px 0}
.spec-panel li{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.spec-panel .icon{width:18px;color:var(--orange)}
.faq-section{border-top:1px solid var(--line);padding:65px 0 75px}
.faq-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:70px}
.faq-grid details{border-bottom:1px solid var(--line);padding:17px 0}
.faq-grid summary{display:flex;align-items:center;justify-content:space-between;gap:25px;cursor:pointer;font-weight:700;list-style:none}
.faq-grid summary::-webkit-details-marker{display:none}
.faq-grid summary .icon{width:18px;transition:transform .2s}
.faq-grid details[open] summary .icon{transform:rotate(45deg)}
.faq-grid details p{margin:17px 0 5px;max-width:600px;}
.project-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px}
.filter-button{background:transparent;color:#55646c;border:1px solid #cbd2cf;padding:10px 17px;}
.filter-button:hover,.filter-button.active{background:var(--ink);color:white;border-color:var(--ink)}
[hidden]{display:none!important}
.about-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:90px;align-items:center}
.values-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:65px}
.values-grid article{border-top:1px solid var(--line);padding-top:24px}
.values-grid article>span{color:var(--orange);}
.values-grid h3{margin-top:27px}
.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:85px}
.contact-email{display:flex;gap:25px;font-weight:700;margin-bottom:14px;letter-spacing:-.04em;align-items:center}
.contact-email .icon{width:18px}
.contact-locations{margin-top:50px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:25px}
.contact-locations>div{border-top:1px solid var(--line);padding-top:20px}
.contact-locations span{letter-spacing:.12em;color:#788b91}
.contact-locations h3{margin-top:15px}
.contact-mini{margin-top:45px}
.form-panel{border:1px solid var(--line);background:white;padding:35px}
.form-panel h2{margin-bottom:9px}
.form-hint{margin-bottom:28px}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.form-grid label{display:block;font-weight:700}
.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;background:#fafaf7;border:1px solid #d6dcd8;border-radius:0;color:var(--ink);padding:12px;margin-top:8px}
.form-grid textarea{resize:vertical;min-height:130px}
.full-width{grid-column:1/-1}
.consent{display:flex;gap:12px;align-items:flex-start;color:#566970;margin:25px 0}
.consent input{margin-top:4px;accent-color:var(--orange);min-width:16px;width:16px;height:16px}
.consent a{display:inline-flex;align-items:center;gap:5px;text-decoration:underline}
.consent .icon{width:12px;height:12px}
.form-status{margin:18px 0 0;}
.form-status.success{color:#187156}
.form-status.error{color:#ae3425}
.button:disabled{opacity:.6;cursor:wait;transform:none}
.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.narrow{max-width:800px}
.narrow h2{margin-top:35px}
.narrow h2:first-child{margin-top:0}
.project-hero{background:var(--ink);color:white;padding:45px 0 65px}
.project-hero .text-link{border-color:#47636f;color:#c3d1d7;margin-bottom:50px}
.project-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.4fr);gap:55px;align-items:center}
.project-hero .overline{color:#df967c}
.project-hero h1{max-width:780px}
.project-hero p{color:#b9c9d0;max-width:580px;margin-bottom:0}
.large-country-code{font-weight:700;letter-spacing:-.07em;color:#31505f;text-align:right}
.case-grid{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:100px}
.case-role{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0;margin:30px 0 40px}
.case-role .overline{margin-bottom:10px}
.case-role p{margin:0;}
.project-real-image{margin:30px 0}
.project-real-image img{width:100%;height:auto;max-height:650px}
.skip-link{position:fixed;left:15px;top:-80px;background:var(--orange);color:white;padding:15px;z-index:100}
.skip-link:focus{top:15px}

@media(min-width:1500px){.hero-grid{min-height:625px}
.hero-photo{min-height:625px}
}

@media(max-width:1180px){.container{width:calc(100% - 64px)}
.navigation{gap:17px}
.header-quote{display:none}
.hero-grid{gap:30px;min-height:540px}
.hero-photo{min-height:540px}
.hero-buttons{gap:18px}
.sourcing-grid{gap:50px}
.sourcing-grid>figure{height:560px}
.product-photo{height:230px}
.contact-grid{gap:50px}
.footer-grid{gap:25px}
}

@media(max-width:900px){.container{width:calc(100% - 42px)}
.header-inner{min-height:82px}
.navigation{display:none;position:absolute;left:0;right:0;top:82px;background:var(--paper);padding:24px 22px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);gap:24px;max-height:calc(100vh - 82px);overflow:auto}
.navigation.is-open{display:flex}
.navigation a[aria-current]:after{bottom:-6px}
.navigation .mobile-contact{display:block;color:var(--orange)}
.menu-toggle{display:flex;align-items:center;justify-content:center;width:39px;height:39px;background:none;border:1px solid var(--line)}
.header-actions{gap:20px}
.hero{padding:30px 0}
.hero-copy{padding-top:14px}
.hero-grid{min-height:490px;gap:22px}
.hero-photo{min-height:490px}
.hero-photo-note{left:20px;right:20px;}
.hero-buttons .button{gap:17px;padding:15px}
.value-strip .strip-tail{display:none}
.value-strip b{margin-right:10px}
.section{padding:70px 0}
.section-heading{gap:30px}
.product-grid{gap:17px}
.product-photo{height:210px}
.product-card-text p{min-height:80px}
.sourcing-grid{gap:35px}
.sourcing-grid>figure{height:560px}
.process-list>div{gap:13px}
.footer-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:35px}
.cta-inner{gap:40px}
.page-hero-inner{grid-template-columns:minmax(0,1fr) 160px;gap:25px}
.hero-symbol .icon{width:130px;height:130px}
.page-hero-image .page-hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,.75fr)}
.page-hero-image figure{height:300px}
.detail-grid{gap:35px}
.spec-panel{padding:25px}
.contact-grid{grid-template-columns:minmax(0,1fr);gap:45px}
.contact-grid aside{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 25px}
.contact-grid aside .overline{grid-column:1/-1}
.contact-locations{margin:25px 0 0;grid-column:1/-1}
.contact-mini{display:none}
.about-story{gap:40px}
.case-grid{gap:45px}
}

@media(max-width:48rem){.container{width:calc(100% - 36px)}
.utility .container{min-height:30px}
.utility .container>span:nth-child(2){display:none}
.header-inner{min-height:76px}
.navigation{top:76px}
.hero-grid{grid-template-columns:minmax(0,1fr);gap:32px}
.hero-copy{padding-top:10px}
.hero-copy .overline{margin-bottom:24px}
.hero h1{margin-bottom:23px}
.hero-copy>p{max-width:420px}
.hero-buttons{gap:21px}
.hero-buttons .button{padding:16px 19px;gap:20px}
.hero-bottom{padding-top:27px}
.hero-photo{min-height:390px;max-height:480px;aspect-ratio:.95}
.hero-photo-note{bottom:45px}
.hero-photo>img{object-position:60% center}
.value-strip .container{flex-wrap:wrap;justify-content:flex-start;gap:7px 20px;min-height:76px;padding:16px 0}
.value-strip b{margin-right:7px}
.section{padding:58px 0}
.section-heading{grid-template-columns:minmax(0,1fr);gap:22px;margin-bottom:28px}
.section-heading>div:last-child{justify-self:start;max-width:none}
.overline{margin-bottom:17px}
.product-grid{grid-template-columns:minmax(0,1fr);gap:34px}
.product-photo{height:auto;aspect-ratio:1.4}
.product-card-text{padding-top:19px}
.product-card-text p{min-height:0;margin-bottom:15px}
.sourcing-section{padding:44px 0 54px}
.sourcing-grid{grid-template-columns:minmax(0,1fr);gap:35px}
.sourcing-grid>figure{height:auto;aspect-ratio:1.25;min-height:290px}
.process-list{margin:25px 0}
.project-grid{grid-template-columns:minmax(0,1fr);gap:16px}
.project-top{padding:19px 21px}
.project-card-body{padding:25px 21px}
.consultancy-band{padding:46px 0}
.consultancy-band>.container{grid-template-columns:minmax(0,1fr);gap:24px}
.cta{padding:52px 0}
.cta-inner{grid-template-columns:minmax(0,1fr);gap:24px}
.cta-inner>div:last-child{justify-self:start}
.footer{padding-top:45px}
.footer-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:37px 22px;padding-bottom:35px}
.footer-grid>div:first-child{grid-column:1/-1}
.footer-grid>div:last-child{grid-column:1/-1}
.footer p{margin:16px 0}
.footer-bottom{flex-wrap:wrap;justify-content:flex-start;gap:13px 25px;padding:23px 0;}
.footer-bottom span:last-child{margin-left:auto}
.page-hero{padding:38px 0 42px}
.page-hero-inner,.page-hero-image .page-hero-inner{grid-template-columns:minmax(0,1fr)}
.hero-symbol{display:none}
.breadcrumbs{margin-bottom:25px}
.page-hero-image figure{height:auto;aspect-ratio:1.35}
.services-grid{grid-template-columns:minmax(0,1fr);gap:18px}
.service-card{padding:27px}
.service-index{margin-bottom:25px}
.scope-band>.container{grid-template-columns:minmax(0,1fr);gap:25px}
.scope-band{padding:45px 0}
.detail-grid,.faq-grid,.about-story,.case-grid{grid-template-columns:minmax(0,1fr);gap:32px}
.faq-section{padding:45px 0}
.faq-grid h2{margin:0}
.filter-button{padding:9px 13px}
.values-grid{grid-template-columns:minmax(0,1fr);gap:28px;margin-top:40px}
.values-grid h3{margin-top:15px}
.contact-grid aside{display:block}
.contact-locations{display:grid;margin-top:35px}
.form-panel{padding:24px 20px}
.form-grid{grid-template-columns:minmax(0,1fr);gap:19px}
.form-panel .button{width:100%;}
.project-hero{padding:30px 0 43px}
.project-hero-grid{grid-template-columns:minmax(0,1fr);gap:25px}
.project-hero .text-link{margin-bottom:30px}
.large-country-code{display:none}
.case-grid aside{border-bottom:1px solid var(--line)}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{transition:none!important;animation:none!important}
}


/* Responsive typography: single source of truth. See TIPOGRAFI.md. */
:root {
  --orange: #b04429;
  --accent-decoration: #ca5938;
  --type-caption: .75rem;
  --type-meta: .8125rem;
  --type-small: .875rem;
  --type-control: .9375rem;
  --type-body: 1rem;
  --type-lead: 1.125rem;
  --type-h3: 1.4375rem;
  --type-h2: 2.875rem;
  --type-h1: 4.75rem;
}
html { font-size: 100%; }
body { font-size: var(--type-body); line-height: 1.65; }
h1, h2, h3 { overflow-wrap: anywhere; }
h1 { font-size: var(--type-h1); line-height: 1.12; letter-spacing: -.05em; }
h2 { font-size: var(--type-h2); line-height: 1.18; letter-spacing: -.045em; }
h3 { font-size: var(--type-h3); line-height: 1.35; }
p { font-size: var(--type-body); line-height: 1.7; }
.hero h1 { font-size: var(--type-h1); line-height: 1.1; }
.hero h1 span, .brand-dot { color: var(--accent-decoration); }
.status-dot, .small-square { background: var(--accent-decoration); }
.page-hero h1, .project-hero h1 { font-size: var(--type-h1); }
.hero-copy > p, .page-hero p, .project-hero p {
  font-size: var(--type-lead); line-height: 1.75; max-width: 38rem;
}
.hero-copy > p { max-width: 29rem; }
.service-card h2, .scope-band h2, .faq-grid h2, .narrow h2 {
  font-size: 2.125rem;
}
.sourcing-copy h2, .consultancy-band h2, .cta h2,
.section-heading h2, .about-story h2, .detail-grid h2, .case-grid article h2 {
  font-size: var(--type-h2);
}
.product-card-text h3, .project-card h3, .spec-panel h3, .contact-locations h3 {
  font-size: var(--type-h3);
}
.form-panel h2 { font-size: 1.75rem; }
.process-list h3 { font-size: 1.0625rem; line-height: 1.45; }
.process-list p, .product-card-text p, .project-card p, .values-grid p,
.consultancy-band p, .cta p, .section-heading p, .sourcing-copy > p,
.detail-grid > div:first-child > p, .case-grid article > p, .case-role p,
.about-story p, .narrow p, .scope-band p, .service-card p, .faq-grid details p {
  font-size: var(--type-body); line-height: 1.7;
}
.product-card-text p { min-height: 0; }
.spec-panel li, .faq-grid summary, .form-status { font-size: var(--type-body); }
.spec-panel li, .faq-grid summary { align-items: flex-start; }
.contact-mini p, .case-grid aside p, .spec-panel p,
.footer p, .form-hint, .consent { font-size: var(--type-small); line-height: 1.65; }
.overline, .hero-copy .overline, .project-card .overline, .footer .overline {
  font-size: var(--type-meta); line-height: 1.6; letter-spacing: .1em;
}
.button, .hero-buttons .button, .form-panel .button,
.text-link, .project-hero .text-link, .hero-secondary, .filter-button {
  font-size: var(--type-control); line-height: 1.5;
}
.button { max-width: 100%; gap: 1.25rem; text-align: left; }
.hero-buttons .button { font-size: var(--type-control); }
.text-link, .hero-secondary { max-width: 100%; }
.light-link:hover { color: #f0a184; border-color: #f0a184; }
.filter-button { min-height: 44px; }
.utility, .utility a, .hero-bottom, .image-label,
.footer-grid > div > a:not(.brand), .language, .header-quote {
  font-size: var(--type-small); line-height: 1.6;
}
.utility { letter-spacing: .02em; }
.utility .container { gap: .75rem; padding-block: .5rem; flex-wrap: wrap; }
.navigation a { font-size: var(--type-small); line-height: 1.6; }
.navigation { gap: 1.125rem; }
.brand { min-width: 0; flex-shrink: 1; line-height: 1.1; }
.brand > span { font-size: 2.5rem; }
.brand small {
  font-size: var(--type-caption); line-height: 1.5; letter-spacing: .055em;
  max-width: 10.75rem; overflow-wrap: anywhere;
}
.header-inner { min-height: 104px; }
.header-actions { flex-shrink: 0; }
.language span { color: #637179; }
.value-strip span { font-size: var(--type-control); line-height: 1.6; }
.value-strip b, .value-strip .strip-tail, .product-number, .photo-tag,
.illustration-label, .sourcing-grid > figure figcaption,
.page-hero-image figcaption, .footer-since, .values-grid article > span {
  font-size: var(--type-caption); line-height: 1.6;
}
.value-strip .container { flex-wrap: wrap; gap: .75rem 1.5rem; padding-block: 1rem; }
.value-strip .strip-tail { color: #59676e; }
.project-category, .breadcrumbs, .footer-bottom, .contact-locations span {
  font-size: var(--type-meta); line-height: 1.6;
}
.breadcrumbs { flex-wrap: wrap; color: #59676e; }
.project-category, .contact-locations span { color: #59676e; }
.footer-since { color: #a9bac1; }
.hero-bottom { flex-wrap: wrap; }
.hero-bottom .muted { color: #59676e; }
.hero-photo { display: flex; flex-direction: column; justify-content: flex-end; padding-block: 24px; }
.hero-photo-note {
  position: relative; bottom: auto; left: auto; right: auto;
  margin: 0 24px; padding: 14px 16px; background: #132b36eb;
  gap: 1rem; font-size: 1.25rem; line-height: 1.5;
}
.illustration-label {
  position: relative; bottom: auto; right: auto; align-self: flex-end;
  max-width: calc(100% - 48px); margin: 12px 24px 0; padding: 3px 7px;
  background: #132b36eb; color: white;
}
.product-number, .photo-tag, .page-hero-image figcaption,
.sourcing-grid > figure figcaption, .image-label { background: #132b36eb; color: white; }
.image-label { padding: .5rem .75rem; gap: .75rem; }
.sourcing-grid > figure figcaption { padding: 3px 7px; max-width: calc(100% - 36px); }
.country-code { font-size: 1.25rem; }
.large-country-code { font-size: 9.375rem; line-height: 1; color: #8aa6b2; }
.contact-email { font-size: 1.25rem; flex-wrap: wrap; gap: .5rem; overflow-wrap: anywhere; }
.form-grid label { font-size: var(--type-small); line-height: 1.6; }
.form-grid input, .form-grid select, .form-grid textarea {
  font-size: 1rem; line-height: 1.5; min-height: 48px; min-width: 0;
}
.form-grid input::placeholder, .form-grid textarea::placeholder { color: #637179; opacity: 1; }
.form-grid textarea { min-height: 10rem; }
.consent input { flex-shrink: 0; }
.consent a { display: inline; }
.consent .icon { display: inline; vertical-align: middle; }
.footer-bottom { flex-wrap: wrap; padding-block: 1.25rem; }
.footer-bottom span:last-child { margin-left: 0; }
.footer-grid > div > a:not(.brand) { overflow-wrap: anywhere; }
.hero-grid > *, .section-heading > *, .product-grid > *, .sourcing-grid > *,
.project-grid > *, .footer-grid > *, .page-hero-inner > *, .detail-grid > *,
.faq-grid > *, .contact-grid > *, .form-grid > *, .case-grid > *,
.about-story > *, .values-grid > *, .scope-band > .container > *,
.cta-inner > *, .consultancy-band > .container > *, .process-list > div > div {
  min-width: 0;
}
.consultancy-band > .container { overflow: visible; }
.consultancy-globe { right: 0; }
@media (min-width: 64rem) {
  :root { --type-body: 1.0625rem; }
}
@media (max-width: 70rem) {
  :root { --type-h1: 3.875rem; --type-h2: 2.625rem; }
  .header-inner { gap: 1rem; }
  .header-quote { display: none; }
  .navigation {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    background: var(--paper); padding: 1.5rem; flex-direction: column;
    align-items: stretch; border-bottom: 1px solid var(--line); gap: .25rem;
    max-height: 65vh; overflow-y: auto;
  }
  .navigation.is-open { display: flex; }
  .navigation a { font-size: 1rem; white-space: normal; padding: .625rem 0; }
  .navigation a[aria-current]:after { bottom: .375rem; right: auto; width: 2rem; }
  .navigation .mobile-contact { display: block; color: var(--orange); }
  .menu-toggle {
    display: flex; align-items: center; justify-content: center;
    width: 44px; height: 44px; background: none; border: 1px solid var(--line);
  }
  .header-actions { gap: .75rem; }
}
@media (max-width: 62rem) {
  :root { --type-h1: 3.25rem; }
}
@media (max-width: 48rem) {
  :root {
    --type-lead: 1rem;
    --type-h1: 3rem;
    --type-h2: 2.25rem;
    --type-h3: 1.375rem;
  }
  .site-header { position: relative; }
  .header-inner { min-height: 96px; gap: .75rem; }
  .brand > span { font-size: 2.25rem; }
  .brand small { max-width: 9.5rem; }
  .hero-photo { max-height: none; }
  .hero-photo-note { font-size: 1.125rem; margin-inline: 18px; }
  .illustration-label { margin-right: 18px; max-width: calc(100% - 36px); }
  .project-top { flex-wrap: wrap; gap: .5rem .75rem; }
  .project-category { margin-left: 0; flex: 1; }
  .contact-locations { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .utility .container > span:nth-child(2) { display: none; }
  .service-card h2, .scope-band h2, .faq-grid h2, .narrow h2 { font-size: 1.75rem; }
}
@media (max-width: 30rem) {
  :root { --type-h1: 2.5rem; --type-h2: 2rem; }
  .utility .container { justify-content: flex-start; gap: .25rem 1rem; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
  .form-panel { padding: 24px 18px; }
}
