/* Responsive layout: content determines height; tracks can shrink without clipping. */
:root{--page-gutter:clamp(.875rem,4.5vw,4.5rem)}
html{scroll-padding-top:2rem}
body{font-size:1rem}
.wrap,header{width:calc(100% - 2 * var(--page-gutter));max-width:1380px}
main,section,article,aside,header,footer,nav,form,details,summary,
.wrap>*,[class*="grid"]>*,.bento>*,.two-col>*,.contact>*,.hero>*,
.section-heading>*,.industry-layout>*,.journey-panel>*,.service-block>*{min-width:0}
h1,h2,h3,h4,p,a,button,label,summary,span{overflow-wrap:anywhere}
img{max-width:100%;height:auto}
a,button{touch-action:manipulation}
.button{max-width:100%;min-height:2.875rem;white-space:normal;text-align:center;line-height:1.5;padding:.8rem 1.4rem;font-size:.875rem}
.text-link{max-width:100%;font-size:.875rem;line-height:1.6}
h1,.inner-hero h1{font-size:clamp(2.125rem,calc(5vw + 1rem),5.875rem);line-height:1.12}
h2{font-size:clamp(1.875rem,calc(2.5vw + .75rem),3.25rem);line-height:1.2}
h3{font-size:clamp(1.375rem,calc(1vw + .8rem),1.8rem);line-height:1.3}
h4{font-size:1.1875rem;line-height:1.45}
.eyebrow{font-size:.75rem;letter-spacing:.12em;line-height:1.7}
.section{padding-block:clamp(2.75rem,6vw,5.625rem)}
.inner-hero{padding-block:clamp(2.75rem,6vw,5rem)}
.inner-hero h1{overflow-wrap:anywhere}
.intro-copy p,.lead{font-size:clamp(1rem,1.2vw,1.125rem)}
header{height:auto;min-height:6.5rem;padding-block:1rem;gap:1rem;flex-wrap:nowrap}
.brand{flex:0 0 auto}
.brand img{width:clamp(5rem,9vw,7.1875rem)}
nav{gap:clamp(.875rem,1.5vw,1.5rem);padding:.8rem 1.25rem;flex-shrink:0;font-size:.875rem}
nav a{display:flex;align-items:center;min-height:2.75rem}
.menu{min-height:2.75rem;min-width:2.75rem}
.header-cta{flex-shrink:0}
.hero{height:auto;min-height:clamp(40rem,54vw,50rem);padding:clamp(2rem,4vw,4rem) clamp(1.25rem,3vw,2.8rem) 0}
.hero-copy{width:58%;padding-bottom:4rem}
.hero h1{font-size:clamp(3rem,6.5vw,6.3125rem);line-height:1.07}
.hero-copy .eyebrow{font-size:.75rem}
.hero-copy>p:not(.eyebrow){font-size:1.0625rem}
.hero-actions{flex-wrap:wrap;gap:1rem 1.4rem}
.hero-actions .text-link{font-size:.875rem;max-width:none}
.hero-actions .button{font-size:.875rem}
.hero-visual img{height:100%;width:100%;object-fit:cover}
.hero-caption{max-width:27%;right:2rem}
.hero-caption span{font-size:.75rem}
.hero-bottom{gap:1rem;font-size:.75rem;letter-spacing:.1em;flex-wrap:wrap}
.hero-bottom span{min-width:0}
.statement{padding-block:clamp(3rem,7vw,6.875rem) 2rem}
.statement h2{font-size:clamp(1.875rem,3.7vw,3.375rem);line-height:1.3}
.statement>div{gap:1.75rem;flex-wrap:wrap}
.statement>div a{flex-shrink:1}
.section-heading{gap:1.5rem;flex-wrap:wrap}
.section-heading>p{font-size:1rem}
.cap-card{padding:clamp(1.5rem,2vw,2rem);height:auto;min-height:0}
.cap-card h3{font-size:clamp(1.375rem,1.9vw,1.875rem);line-height:1.25}
.cap-card p{font-size:1rem}
.card-top{gap:1rem;flex-wrap:wrap}
.card-top>span:last-child{font-size:.75rem}
.card-bottom{font-size:.875rem}
.cap-card.architecture{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);column-gap:1.5rem}
.cap-card.architecture .card-top{grid-column:1/-1}
.cap-card.architecture h3,.cap-card.architecture p{max-width:100%;grid-column:1}
.architecture-stack{position:static;width:auto;display:flex;grid-column:2;grid-row:2/4;align-self:center;margin:0}
.architecture-stack span{font-size:.875rem;padding:.75rem;overflow-wrap:anywhere}
.cap-card.ai h3{font-size:clamp(1.5rem,2.5vw,2.25rem)}
.human-image{min-height:0}
.human-image img{height:100%;width:100%;object-fit:cover}
.human-copy{padding:clamp(1.75rem,4vw,3.75rem)}
.human-copy h2{font-size:clamp(2rem,4vw,4rem)}
.human-copy p{font-size:1rem}
.human-copy .eyebrow{font-size:.75rem}
.journey-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem;overflow:visible}
.journey-tabs button{font-size:.875rem;white-space:normal;min-height:2.75rem;line-height:1.5}
.journey-panel{grid-template-columns:minmax(4rem,7rem) minmax(0,1fr) minmax(0,10rem);gap:clamp(1rem,3vw,2.5rem);padding:clamp(1.5rem,3vw,2.75rem)}
.journey-panel h3{font-size:clamp(1.5rem,2vw,1.75rem)}
.journey-panel p{font-size:1rem}
.sector-tabs button{font-size:1rem;min-height:3rem;line-height:1.5}
.sector-tabs button>span,.sector-tabs button>b{flex-shrink:0}
.sector-panel{padding:clamp(1.5rem,3vw,2.8rem);min-height:0}
.sector-panel h3{font-size:clamp(1.625rem,2.5vw,2.25rem)}
.sector-panel p:not(.eyebrow){font-size:1rem}
.sector-topics{max-width:100%}
.sector-topics span,.tags span{font-size:.875rem;max-width:100%}
.impact-grid p,.knowledge-card>p,.initiative p,.method-card p,.sector-overview p,.small-card p{font-size:1rem}
.knowledge-card{padding:clamp(1.5rem,3vw,2.5rem)}
.knowledge-card h3{font-size:clamp(1.5rem,2.5vw,2.0625rem)}
.product-list{font-size:1.125rem;gap:1rem}
.cta{padding:clamp(1.5rem,4vw,3.75rem);margin-bottom:clamp(3rem,6vw,5.625rem)}
.cta>div{flex-wrap:wrap;gap:2rem}
.cta h2{font-size:clamp(2rem,4.5vw,4.3125rem);line-height:1.15}
.cta .button{flex-shrink:1}
.footer-links{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr);gap:1.5rem}
.footer-links>div{font-size:.875rem}
.footer-links a{min-height:2.75rem;display:flex;align-items:center}
.footer-base{flex-wrap:wrap;gap:1rem;font-size:.75rem}
.service-block{grid-template-columns:minmax(3rem,8.75rem) minmax(0,1fr);gap:clamp(1rem,4vw,3.125rem)}
.service-block h2{font-size:clamp(1.875rem,3vw,2.5rem)}
.service-block h3{font-size:1.375rem}
.about-photo{height:auto;min-height:0;align-self:stretch}
.about-photo img{height:100%;width:100%;object-fit:cover}
.about-layout h2{font-size:clamp(1.5rem,2vw,1.8125rem)}
summary{min-height:3rem;gap:1rem}
summary h3{font-size:clamp(1.125rem,1.6vw,1.4375rem);min-width:0}
.acc-num,.plus{flex-shrink:0}
.detail-copy{padding-inline:clamp(0rem,3vw,2.8rem)}
.four-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr))}
.method-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr))}
.method-card:last-child{grid-column:1/-1;display:block}
.method-card:last-child h3,.method-card:last-child h4{margin-top:1.25rem}
.method-card:last-child p{margin-top:1rem}
.method-card,.initiative,.notice,.impact-card,.sector-overview,.insight-card{padding:clamp(1.5rem,3vw,2.375rem)}
.three-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}
.maturity{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
.maturity>div{border-bottom:1px solid var(--line)}
.maturity p{font-size:.875rem}
.contact form{padding:clamp(1.25rem,3vw,2.1875rem)}
input,select,textarea{font-size:1rem;min-width:0;max-width:100%;min-height:2.875rem}
label{min-width:0;font-size:.875rem}
.form-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}
.contact form .button{font-size:.875rem}
/* The complete six-item navigation switches before available width runs out. */
@media(max-width:75rem){
 header{min-height:5.25rem}
 .header-cta{display:none}
 .menu{display:flex;align-items:center;gap:.75rem;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:.55rem 1rem;border-radius:2rem;margin-left:auto;font-size:.875rem}
 nav{display:none;position:absolute;top:calc(100% - .25rem);left:0;right:0;max-width:100%;max-height:calc(100vh - 6rem);max-height:calc(100dvh - 6rem);overflow-y:auto;overscroll-behavior:contain;flex-direction:column;gap:.25rem;border-radius:1.25rem;padding:1rem;background:var(--surface);font-size:1rem}
 nav.open{display:flex}
 nav a{white-space:normal;padding:.5rem .75rem;border-radius:.5rem}
 nav a:hover{background:var(--card)}
 .bento{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cap-card.wide,.cap-card:last-child{grid-column:auto;min-height:0}
 .cap-card.architecture{display:block}
 .architecture-stack{display:none}
 .cap-card.architecture h3,.cap-card.architecture p{max-width:none}
 .journey-panel{grid-template-columns:minmax(4rem,6rem) minmax(0,1fr)}
 .journey-aside{display:none}
 .industry-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
}
/* Put hero copy and illustration into separate rows on tablets and phones. */
@media(max-width:64rem){
 .hero{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;padding:2rem 1.5rem 0}
 .hero-copy{grid-row:1;position:relative;width:100%;padding:0}
 .hero h1{font-size:clamp(2.5rem,7vw,4.75rem);max-width:100%}
 .hero-copy>p:not(.eyebrow){max-width:38rem}
 .hero-actions{flex-direction:row;align-items:center}
 .hero-visual{grid-row:2;position:relative;inset:auto;height:clamp(16rem,48vw,29rem);margin-top:1rem;opacity:1}
 .hero-visual img{object-fit:contain;object-position:center}
 .hero-visual:after{background:linear-gradient(0deg,#0b0b0b,transparent 20%)}
 .hero-caption{display:none}
 .hero-bottom{grid-row:3;position:static;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;left:auto;right:auto;padding:1.25rem 0;text-align:center;font-size:.75rem;letter-spacing:.03em}
 .hero-bottom b{display:none}
 .journey-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
 .journey-line{display:none}
 .journey-tabs button{padding:.5rem;text-align:center;border:1px solid var(--line);border-radius:.875rem}
 .journey-tabs button span{margin:.25rem auto .75rem}
 .journey-tabs button[aria-selected=true]{border-color:var(--orange)}
 .human{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .human-image{height:auto}
 .industry-layout{grid-template-columns:minmax(0,1fr)}
 .impact-band{grid-template-columns:minmax(0,1fr)}
 .contact{grid-template-columns:minmax(0,1fr);gap:2.5rem}
 footer{grid-template-columns:minmax(0,1fr);gap:2rem}
 .footer-links{grid-template-columns:repeat(3,minmax(0,1fr))}
 .footer-links>div:last-child{grid-column:auto}
}
@media(max-width:48rem){
 .two-col,.about-layout,.knowledge-grid,.sector-grid,.before-after,.insights-grid,.report-grid,.human{grid-template-columns:minmax(0,1fr);gap:1.5rem}
 .human{gap:0}
 .human-image{height:auto;aspect-ratio:3/2}
 .human-image img{height:100%}
 .about-photo{height:auto;aspect-ratio:3/2}
 .about-photo img{height:100%}
 .about-layout h2 br{display:none}
 .sector-overview:last-child,.insight-card:last-child{grid-column:auto}
 .section-heading{align-items:flex-start;flex-direction:column}
 .section-heading>p{max-width:100%}
 .principle-list{grid-template-columns:minmax(0,1fr)}
 .impact-grid{grid-template-columns:minmax(0,1fr);gap:1.25rem}
 .impact-grid>div{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.75rem;border-bottom:1px solid var(--line);padding-bottom:1.25rem}
 .impact-grid h3{margin:0}
 .impact-grid p{grid-column:2;margin:0}
 .service-block{grid-template-columns:minmax(0,1fr)}
 .service-num{font-size:3.5rem}
 .footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-links>div:last-child{grid-column:1/-1}
}
@media(max-width:36rem){
 .bento{grid-template-columns:minmax(0,1fr)}
 .cap-card.wide,.cap-card:last-child{grid-column:auto}
 .hero{padding:1.5rem 1.125rem 0}
 .hero h1{font-size:clamp(2rem,10vw,3.5rem)}
 .hero-copy .eyebrow{font-size:.75rem;max-width:none}
 .hero-actions{align-items:flex-start;flex-direction:column}
 .hero-visual{height:auto;aspect-ratio:3/2;min-height:0}
 .hero-bottom{grid-template-columns:repeat(2,minmax(0,1fr));gap:.875rem;font-size:.75rem}
 .journey-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .journey-panel{grid-template-columns:minmax(0,1fr)}
 .journey-panel>span{font-size:4rem}
 .statement h2 br{display:none}
 .cta h2{font-size:clamp(1.75rem,8vw,2.5rem)}
 .cta h2 br{display:none}
 .cta .eyebrow{font-size:.75rem}
 .cta .button{width:100%}
 .sector-tabs button{padding:.875rem .5rem;gap:.75rem}
 .sector-tabs button>b{font-size:1.25rem}
 .sector-panel{min-height:0}
 .detail-copy{padding-left:0}
}
@media(max-width:22rem){
 .footer-links{grid-template-columns:minmax(0,1fr)}
 .footer-links>div:last-child{grid-column:auto}
 .button{padding:.75rem 1rem}
 .form-row{grid-template-columns:minmax(0,1fr)}
 .hero h1 br,.inner-hero h1 br{display:none}
 .inner-hero h1{font-size:2rem}
 .journey-tabs{gap:.5rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
/* Desktop navigation has one stable sizing rule, measured by app.js. */
header #nav,nav.nav-measure{font-size:.875rem;gap:clamp(.75rem,1.3vw,1.25rem);padding:.65rem 1.1rem;border:1px solid var(--line);border-radius:2.5rem;line-height:1.7}
nav.nav-measure{display:flex!important;position:fixed!important;top:0!important;left:0!important;right:auto!important;width:max-content!important;max-width:none!important;max-height:none!important;visibility:hidden!important;pointer-events:none;flex-direction:row!important;overflow:visible!important;z-index:-1}
nav.nav-measure a,header #nav a{padding:0;min-height:2.75rem;display:flex;align-items:center;white-space:nowrap}
.navigation-ready header:not(.nav-compact) #nav{display:flex;position:static;flex-direction:row;width:auto;max-width:none;max-height:none;overflow:visible;flex-shrink:0}
.navigation-ready header:not(.nav-compact) .menu{display:none}
.navigation-ready header:not(.nav-no-cta) .header-cta{display:inline-flex}
.navigation-ready header.nav-no-cta .header-cta{display:none}
.navigation-ready header.nav-compact #nav{display:none}
.navigation-ready header.nav-compact{justify-content:flex-start;gap:1rem}
.navigation-ready header.nav-compact .menu{display:inline-flex;margin:0;flex:0 0 2.75rem}
.navigation-ready header.nav-compact .brand{margin-right:auto}
.menu{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;align-items:center;justify-content:center;padding:0;border:1px solid var(--line);border-radius:.75rem;background:var(--surface);color:var(--ink)}
.hamburger{display:grid;gap:5px;width:19px}
.hamburger i{display:block;height:2px;width:100%;background:currentColor;border-radius:2px}
body.drawer-open{overflow:hidden}
.mobile-drawer{position:fixed;inset:0 auto 0 0;margin:0;height:100vh;height:100dvh;max-height:100%;width:min(21rem,88vw);max-width:100%;border:0;border-right:1px solid var(--line);padding:1.5rem;background:var(--surface);color:var(--ink);overflow-y:auto;overscroll-behavior:contain}
.mobile-drawer::backdrop{background:rgba(0,0,0,.72)}
.drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-bottom:1.5rem;border-bottom:1px solid var(--line)}
.drawer-heading img{width:105px;height:auto}
.drawer-close{width:2.75rem;height:2.75rem;flex-shrink:0;border:1px solid var(--line);background:transparent;border-radius:.75rem;color:var(--ink);font-size:1.75rem;line-height:1;cursor:pointer}
.mobile-drawer .drawer-nav{display:flex;position:static;flex-direction:column;gap:.375rem;max-height:none;width:100%;max-width:100%;overflow:visible;border:0;border-radius:0;padding:1.5rem 0;background:transparent;font-size:1rem}
.mobile-drawer .drawer-nav a{display:flex;align-items:center;white-space:normal;min-height:3rem;padding:.75rem;border-radius:.75rem}
.mobile-drawer .drawer-nav a:hover,.mobile-drawer .drawer-nav a[aria-current="page"]{background:var(--card);color:var(--orange)}
.mobile-drawer>.button{width:100%;margin-top:1rem}
@media(max-width:75rem){header .menu{margin-left:0}header{justify-content:flex-start}header .brand{margin-right:auto}}
/* Restore the image-led desktop composition on landscape tablets. */
@media(min-width:48rem) and (max-width:64rem) and (orientation:landscape){
 .hero{display:flex;flex-direction:column;min-height:37rem;padding:2.5rem 2rem 0}
 .hero-copy{width:62%;padding-bottom:3rem;z-index:2}
 .hero h1{font-size:clamp(3rem,6.7vw,4.5rem);line-height:1.07}
 .hero-copy>p:not(.eyebrow){max-width:24rem;font-size:1rem}
 .hero-visual{position:absolute;inset:0 0 4.5rem 24%;height:auto;min-height:0;aspect-ratio:auto;margin:0}
 .hero-visual img{height:100%;width:100%;object-fit:cover;object-position:70% center}
 .hero-visual:after{background:linear-gradient(90deg,#0b0b0b,transparent 40%),linear-gradient(0deg,#0b0b0b,transparent 25%)}
 .hero-bottom{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:auto;text-align:left}
 .hero-actions{flex-direction:row;align-items:center;gap:1rem;flex-wrap:wrap}
}
@media(min-width:56rem) and (max-width:75rem) and (orientation:landscape){
 .bento{grid-template-columns:repeat(3,minmax(0,1fr))}
 .cap-card.wide{grid-column:auto}
 .cap-card:last-child{grid-column:auto}
}
@media(prefers-reduced-motion:no-preference){.mobile-drawer[open]{animation:drawer-enter .2s ease-out}@keyframes drawer-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}}
/* Keep each two-digit step number together at every viewport width. */
.numeric-label,#step-number,.service-num,.acc-num,
.journey-tabs button>span,.card-top>span:first-child,
.method-card>span,.maturity>div>span,.sector-tabs button>span{
 white-space:nowrap;
 overflow-wrap:normal;
 word-break:normal;
 hyphens:none;
 flex-shrink:0;
 font-variant-numeric:tabular-nums;
}
#step-number,.service-num{width:max-content;max-width:none}
.journey-panel{grid-template-columns:max-content minmax(0,1fr) minmax(0,10rem)}
.service-block{grid-template-columns:max-content minmax(0,1fr)}
@media(max-width:75rem){.journey-panel{grid-template-columns:max-content minmax(0,1fr)}}
@media(max-width:48rem){.service-block{grid-template-columns:minmax(0,1fr)}}
@media(max-width:36rem){.journey-panel{grid-template-columns:minmax(0,1fr)}}
/* Flag controls sit between the full navigation and the contact action. */
.language-switcher{display:flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto}
.language-button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:36px;flex:0 0 auto;border:1px solid transparent;border-radius:40px;background:transparent;color:var(--muted);padding:0 12px;font:600 12px/1 Inter,Arial,sans-serif;letter-spacing:.12em;cursor:pointer;transition:background .2s,color .2s}
.language-button:hover{color:var(--ink)}
.language-button[aria-pressed="true"]{border-color:var(--orange);background:var(--orange);color:var(--bg)}
header .language-switcher{margin-left:0}
.navigation-ready header.nav-compact .language-switcher{margin-left:auto}
html:not([lang="pt-BR"]) .hero h1{font-size:clamp(2.5rem,5.9vw,5.8rem)}
html:not([lang="pt-BR"]) .hero-copy .eyebrow{max-width:32rem}
@media(max-width:26rem){
 .navigation-ready header.nav-compact{display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:.5rem 1rem;padding-block:.75rem}
 .navigation-ready header.nav-compact .menu{grid-column:1;grid-row:1}
 .navigation-ready header.nav-compact .brand{grid-column:2;grid-row:1}
 .navigation-ready header.nav-compact .language-switcher{grid-column:1/-1;grid-row:2;justify-self:end;margin:0}
 html:not([lang="pt-BR"]) .hero h1{font-size:clamp(2rem,9vw,3.5rem)}
}
/* Seven movements: equal desktop columns in a 3 + 3 + 1 composition. */
@media(min-width:64rem),(min-width:48rem) and (orientation:landscape){
 .method-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .method-grid>.method-card{grid-column:auto;min-width:0}
 .method-grid>.method-card:last-child{grid-column:1/-1}
}
