/* Scroll-linked choreography. No scroll interception or forced snapping. */
.team{grid-template-columns:repeat(3,minmax(0,1fr))}
.contact-map-section{padding:0 var(--pad) 100px}.map-frame{position:relative;border:1px solid var(--line);background:#e5eaed;min-height:480px}.map-frame iframe{width:100%;height:480px;border:0;display:block}.map-address{position:absolute;bottom:30px;left:30px;padding:28px;background:#ffffffdf;backdrop-filter:blur(20px);border:1px solid white;max-width:330px;box-shadow:0 8px 40px #24384815}.map-address h3{font-size:26px}.map-address p{margin:12px 0 22px}.map-caption{font-size:13px;margin-top:15px}.map-address .button{font-size:13px}
.motion-photo{margin:0;position:relative;overflow:hidden;isolation:isolate;background:#d7dfe4;aspect-ratio:4/3;--photo-y:0px;--photo-scale:1.08}
.motion-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-focus,50%) center;transform:translate3d(0,var(--photo-y),0) scale(var(--photo-scale));will-change:transform}
.motion-photo:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#07192687);pointer-events:none}
.motion-photo figcaption{position:absolute;bottom:16px;right:18px;z-index:2;color:white;font-size:12px;line-height:1.3;text-shadow:0 1px 4px #000}
.photo-word{position:absolute;left:30px;bottom:16px;font-size:100px;line-height:1;color:white;letter-spacing:-.08em;font-weight:500;z-index:2;transform:translateY(calc(var(--photo-y)*-.6))}
.pad-photo{aspect-ratio:1.15;min-height:430px}.editorial-photo{padding:50px var(--pad) 0}.wide-photo{aspect-ratio:2.65;max-height:520px}
.journey-display{margin-top:28px;max-width:370px;position:relative}.journey-number{font-size:120px;letter-spacing:-.09em;line-height:1;font-weight:500;color:#e4e9ed}.journey-total{font-size:19px;color:#a6b3bd;margin-left:18px}.journey-track{height:2px;background:#ffffff25;margin:23px 0 13px;overflow:hidden}.journey-track i{height:100%;width:100%;display:block;background:#b9d9eb;transform:scaleX(var(--journey-progress,.05));transform-origin:left}.journey-label{font-size:14px;color:#c2d0da}.approach .step{min-height:245px;align-content:center;position:relative;opacity:1;transform:translateX(calc((1 - var(--step-focus,1))*20px));transition:transform .3s}.approach .step:after{content:'';position:absolute;left:0;bottom:-1px;right:0;height:2px;background:#b9d9eb;transform:scaleX(var(--step-progress,0));transform-origin:left}.approach .step h3{color:#a2b1bc;transition:color .4s}.approach .step.active h3{color:#fff}.approach .step.active .num{color:#c7e6f7}.approach .step p{color:#acb8c0}.approach .step.active p{color:#d0d8de}
.services-experience{--chapter-top:100px;--chapter-height:62px}.service-chapters{position:sticky;top:var(--chapter-top);z-index:22;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 var(--pad);height:var(--chapter-height);background:#f6f7f8ef;backdrop-filter:blur(18px);border-bottom:1px solid var(--line);overflow:auto;scrollbar-width:none}.service-chapters::-webkit-scrollbar{display:none}.service-chapters a{font-size:14px;color:#697780;white-space:nowrap;height:100%;display:flex;align-items:center;position:relative}.service-chapters a[aria-current=true]{color:var(--blue);font-weight:500}.service-chapters a:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s}.service-chapters a[aria-current=true]:after{transform:scaleX(1)}.chapter-progress{position:absolute;bottom:0;left:0;height:1px;width:100%;transform:scaleX(var(--services-progress,0));transform-origin:left;background:#7aa0b7;pointer-events:none}
.service-stack{padding:0 var(--pad) 70px;isolation:isolate}.service-panel{position:relative;display:grid;grid-template-columns:1fr 1.12fr;gap:clamp(40px,7vw,110px);padding:52px 0 55px;min-height:calc(100svh - 162px);background:var(--paper);border-bottom:1px solid #bbc6cd;scroll-margin-top:162px;transform-origin:center 0;z-index:calc(1 + var(--panel-order));--panel-depth:0}.service-panel h2{font-size:clamp(2rem,3.4vw,3.4rem);max-width:550px}.service-overview{position:relative;align-self:start}.service-overview>p{margin-top:22px;max-width:470px;font-size:16px}.service-photo{margin-top:25px;aspect-ratio:2.35;max-height:225px}.service-count{display:block;margin-top:18px;font-size:28px;font-weight:500;letter-spacing:-.05em;color:var(--blue)}.service-count>span{font-size:13px;color:var(--muted);letter-spacing:0;margin-left:6px}.service-content .service-list{border-top:0}.service-content .service-list li{padding:19px 0}.service-content .service-list li:first-child{padding-top:0}.service-content .service-list h3{font-size:22px}.service-content .service-list p{margin-top:9px;max-width:590px}.service-content .actions{margin-top:26px}.scroll-enabled .service-panel.can-pin{position:sticky;top:var(--pin-top,162px);transform:scale(calc(1 - var(--panel-depth)*.025));filter:brightness(calc(1 - var(--panel-depth)*.07));will-change:transform}.scroll-enabled .service-panel.can-pin:before{content:'';position:absolute;left:calc(-1*var(--pad));right:calc(-1*var(--pad));top:0;bottom:-1px;background:var(--paper);z-index:-1;box-shadow:0 -24px 55px #26344008}
.scroll-enabled #solucoes .service-card{transition:background .25s,box-shadow .25s;transform:translate3d(0,var(--card-rise,0px),0);opacity:var(--card-opacity,1)}.scroll-enabled #solucoes .service-card:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:#004e7c;transform:scaleX(var(--card-line,0));transform-origin:left}.scroll-enabled #solucoes .service-card:hover{box-shadow:0 12px 35px #334a5810}.scroll-enabled .programme-item{transform:translate3d(var(--module-shift,0px),0,0)}
@media(min-width:1001px) and (max-height:780px){.service-panel{padding-block:28px 32px}.service-photo{max-height:150px;aspect-ratio:3.1;margin-top:20px}.service-panel h2{font-size:35px}.service-overview>p{margin-top:15px}.service-content .service-list li{padding-block:15px}.service-content .service-list p{font-size:14px}.service-count{margin-top:10px;font-size:24px}}
@media(max-width:1000px){.services-experience{--chapter-top:82px;--chapter-height:56px}.service-panel{scroll-margin-top:138px;gap:38px;min-height:auto;padding-block:55px}.service-panel h2{font-size:34px}.service-photo{aspect-ratio:1.5}.service-count{margin-top:16px}.service-chapters{justify-content:flex-start;gap:26px}.service-chapters a{font-size:13px}.journey-number{font-size:95px}.pad-photo{min-height:330px}.wide-photo{aspect-ratio:2}}
@media(max-width:600px){.service-panel{grid-template-columns:1fr;gap:30px;padding-block:42px}.service-panel h2{font-size:35px}.service-photo{aspect-ratio:1.9;max-height:none}.service-count{position:absolute;right:0;bottom:-12px;background:var(--paper);padding:7px 12px;font-size:24px;z-index:3}.service-photo figcaption{left:12px;right:auto;bottom:12px}.service-content .service-list h3{font-size:22px}.service-content .actions .button{width:100%}.service-stack{padding-bottom:25px}.service-chapters{gap:23px}.wide-photo{aspect-ratio:1.35}.editorial-photo{padding-top:25px}.pad-photo{min-height:340px}.photo-word{font-size:80px;left:20px;bottom:35px}.journey-display{max-width:none;margin-top:30px}.journey-number{font-size:75px}.journey-track{margin-top:18px}.approach .step{min-height:205px}.approach-intro{position:static}.motion-photo figcaption{font-size:12px}}
@media(max-width:600px){.team{grid-template-columns:1fr}.team-initials{aspect-ratio:2.4}}
@media(max-width:600px){.contact-map-section{padding-bottom:65px}.map-frame{min-height:0}.map-frame iframe{height:340px}.map-address{position:relative;bottom:auto;left:auto;max-width:none;padding:24px;border:0;box-shadow:none}.map-caption{font-size:12px}}
@media(prefers-reduced-motion:reduce){.motion-photo img,.photo-word,.scroll-enabled .service-panel,.scroll-enabled #solucoes .service-card,.scroll-enabled .programme-item{transform:none!important;filter:none!important;opacity:1!important}.scroll-enabled .service-panel.can-pin{position:relative;top:auto}.motion-photo img{will-change:auto}.journey-display{display:none}.approach .step h3{color:white}.approach .step p{color:#d0d8de}}

@media(max-width:600px){.approach-intro{display:contents}.approach-intro h2{grid-row:1}.approach-intro p{grid-row:2;margin-top:-20px}.journey-display{grid-row:3;position:sticky;top:82px;z-index:5;align-self:start;margin:0 calc(-1*var(--pad));padding:14px var(--pad) 12px;background:#20272cf2;backdrop-filter:blur(14px);display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;column-gap:12px}.journey-display .journey-number{font-size:52px}.journey-display .journey-total{margin-left:0;font-size:16px}.journey-display .journey-label{grid-column:3;grid-row:1;justify-self:end}.journey-display .journey-track{grid-column:1/-1;margin:10px 0 0}.approach>.steps{grid-row:4}}
/* Company contacts and supplied social profiles. */
.contact-phone-links{display:flex;flex-direction:column;gap:8px}
.contact-social-links{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:14px 0 0;padding:0}
.contact-social-link svg{width:18px;height:18px;flex-shrink:0}
.contact-social-link.button{gap:9px}
.contact-item .contact-social-link span{color:inherit;font-size:13px;margin:0}

/* Alternating service sections use the same blue background as the hero. */
.service-panel{--panel-background:#fff;--paper:#fff;background:var(--panel-background)}
.service-panel-dark{--paper:#10202b;--ink:#eef3f6;--muted:#cbd9e2;--line:#94b8ce3b;--panel-background:radial-gradient(ellipse at 85% 30%,#004e7c80,transparent 62%),radial-gradient(ellipse at 12% 100%,#14567e40,transparent 60%),#10202b;color:#eef3f6;border-bottom-color:#94b8ce3b}
.services-experience .service-panel::before,.services-experience .service-panel.can-pin::before{content:'';position:absolute;left:calc(-1 * var(--pad));right:calc(-1 * var(--pad));top:0;bottom:-1px;background:var(--panel-background);z-index:-1}
.service-panel-dark .service-list{border-color:#94b8ce3b}

/* Feathered photography, shared with the Contactos hero. */
.hero09-mask,.soft-photo{
 --soft-side:10%;--soft-top:20%;--soft-bottom:74%;--soft-ellipse:95% 85%;--soft-centre:50% 50%;--soft-core:58%;
 -webkit-mask-image:linear-gradient(to right,transparent,#000 var(--soft-side),#000 calc(100% - var(--soft-side)),transparent),linear-gradient(to bottom,transparent,#000 var(--soft-top),#000 var(--soft-bottom),transparent),radial-gradient(ellipse var(--soft-ellipse) at var(--soft-centre),#000 var(--soft-core),transparent 100%);
 mask-image:linear-gradient(to right,transparent,#000 var(--soft-side),#000 calc(100% - var(--soft-side)),transparent),linear-gradient(to bottom,transparent,#000 var(--soft-top),#000 var(--soft-bottom),transparent),radial-gradient(ellipse var(--soft-ellipse) at var(--soft-centre),#000 var(--soft-core),transparent 100%);
 -webkit-mask-composite:source-in;mask-composite:intersect;
}
.soft-photo-portrait{--soft-side:7%;--soft-top:6%;--soft-bottom:88%;--soft-ellipse:110% 110%;--soft-centre:50% 40%;--soft-core:65%}
.motion-photo.soft-photo{background:transparent}
.motion-photo.soft-photo::after{display:none}
