/* Shared public design, with aspect ratios measured from the final PDF. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.public-reference{max-width:var(--container-width);margin:auto}
.public-reference .page-container{padding-inline:var(--public-inset)}
.reference-hero{display:grid;grid-template-columns:var(--hero-copy-width) minmax(0,1fr);min-height:var(--hero-height)}
.reference-hero-about{--hero-copy-width:34.83%;--hero-height:632px}
.reference-hero-services{--hero-copy-width:44.92%;--hero-height:450px}
.reference-hero-projects{--hero-copy-width:41.67%;--hero-height:520px}
.reference-hero-contacts{--hero-copy-width:33.53%;--hero-height:540px}
.page-title-block{padding:48px 32px 36px var(--public-inset);min-width:0}
.page-title-block .eyebrow{font-size:12px;color:var(--accent);margin-bottom:28px;letter-spacing:2.5px}
.page-title-block .page-title{font-size:var(--font-size-page-title);line-height:1.2;margin:0 0 30px;letter-spacing:-1.4px}
.page-description{font-size:15px;line-height:24px;margin:0;max-width:500px;font-weight:300}
.page-hero-image{width:100%;height:100%;min-height:0;object-fit:cover;aspect-ratio:auto}
.hero-note{color:var(--muted);margin:56px 0 0;line-height:20px}
.hero-note:before{content:'';display:block;width:37px;height:2px;background:var(--accent);margin-bottom:32px}
.section-title-row{display:flex;align-items:end;justify-content:space-between;gap:30px}
.section-title-row .section-title{margin:0}
.section-title-row .eyebrow{font-size:12px;color:var(--accent);margin-bottom:22px}
.section-aside{font-size:13px;line-height:20px;max-width:270px;color:var(--muted);margin:0}
.team-section{padding-top:46px;padding-bottom:55px}
.team-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px;margin-top:45px}
.team-card{border:1px solid var(--line);background:var(--paper);min-height:520px}
.team-card>img{width:100%;height:260px;object-fit:cover;display:block}
.team-card>div{padding:18px}
.team-card h3{font:400 12px/1.5 var(--narrow);letter-spacing:1.1px;margin:0 0 18px}
.team-card p{font-size:11px;line-height:17px;min-height:50px;color:var(--muted);margin:0}
.team-card blockquote{font-size:11px;line-height:17px;color:var(--muted);margin:22px 0 0}
.team-card blockquote:before{content:'';display:block;width:30px;height:1px;background:var(--accent);margin-bottom:22px}
.facts-section{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 1.3fr;min-height:190px;padding-block:28px;gap:30px;align-items:start}
.fact{padding:0 24px;min-width:0}
.fact+.fact{border-left:1px solid var(--line)}
.fact strong{display:block;font:400 32px/1.2 var(--narrow);margin-bottom:18px}
.fact .caption{display:block;max-width:175px;line-height:19px;color:var(--muted)}
.facts-section blockquote{font-size:18px;font-weight:300;line-height:28px;margin:0;color:var(--muted)}
.facts-section blockquote span{display:block;font-size:17px;color:var(--ink);margin-top:25px}
.image-banner{position:relative;isolation:isolate;background:var(--dark);color:white}
.image-banner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.banner-content{padding:42px var(--public-inset);position:relative}
.banner-content>.eyebrow{color:var(--accent);font-size:12px;margin-bottom:22px}
.banner-content>.section-title{margin:0 0 22px;white-space:normal}
.banner-content>p:not(.eyebrow){max-width:475px;font-size:14px;line-height:22px;font-weight:300;margin:0 0 24px}
.approach-banner{min-height:465px}
.approach-banner .banner-content>p:not(.eyebrow){max-width:400px}
.button-secondary{background:transparent;color:inherit;border:1px solid currentColor}
.service-section{padding-top:38px;padding-bottom:52px}
.service-section .section-title{font-size:var(--font-size-heading)}
.service-list{margin-top:36px}
.service-row{display:grid;grid-template-columns:60px minmax(0,1fr) 275px 24px;gap:24px;align-items:center;width:100%;min-height:145px;padding:20px 0;text-align:left;border:0;border-top:1px solid var(--line);background:none;color:var(--ink)}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-row:hover .card-title{color:var(--accent)}
.service-number{color:var(--accent);font-size:16px}
.service-copy{display:grid;gap:15px}
.service-copy .card-title{font-size:22px;font-weight:300}
.service-copy>span:last-child{font-size:12px;color:var(--muted)}
.service-row img{display:block;width:275px;height:105px;object-fit:cover}
.project-catalog{padding-top:29px;padding-bottom:36px}
.project-catalog .section-title-row{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:24px}
.project-catalog .section-title{font-size:var(--font-size-subheading)}
.reference-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reference-project-card{position:relative;display:block;text-align:left;padding:0;border:0;background:var(--dark);color:white;min-width:0}
.reference-project-card>img{width:100%;height:156px;object-fit:cover;display:block}
.project-number{position:absolute;left:18px;top:18px;font-size:14px;color:white;text-shadow:0 1px 4px #000}
.project-card-copy{display:grid;gap:15px;min-height:84px;padding:16px 48px 16px 18px;position:relative}
.project-card-copy strong{font:300 11px/1.4 var(--narrow);letter-spacing:1.2px}
.project-card-copy>span{font-size:10px;color:#c4c4bf}
.project-card-copy svg{position:absolute;right:18px;bottom:22px}
.catalog-search{margin-bottom:24px;display:flex;align-items:center;gap:20px}
.catalog-search input{border:1px solid var(--line);padding:12px;background:transparent;min-width:0}
.geography{background:#0b0c0c;color:white;display:grid;grid-template-columns:39% 61%;align-items:center;min-height:445px;padding:28px var(--public-inset);gap:20px;overflow:hidden}
.geography .eyebrow{font-size:11px;color:var(--accent)}
.geography .section-title{font-size:var(--font-size-heading);line-height:1.5;margin:0 0 20px}
.geography .section-title span{color:var(--accent)}
.geography>div>p:not(.eyebrow){font-size:13px;line-height:20px;color:#bbb;max-width:440px;margin-bottom:30px}
.geography>img{width:100%;height:auto;max-height:420px;object-fit:contain}
.geography-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.geography-stats .fact{padding:0 16px}
.geography-stats .fact:first-child{padding-left:0}
.geography-stats .fact strong{color:var(--accent);font-size:38px;margin-bottom:8px}
.geography-stats .fact .caption{font-size:9px;color:#ddd}
.contacts-location{display:grid;grid-template-columns:34% minmax(0,1fr);gap:25px;min-height:620px;padding-block:42px}
.contacts-location .eyebrow{font-size:12px;color:var(--accent);margin-bottom:46px}
.contact-details{margin:0}
.contact-details>div{display:flex;gap:28px;min-height:105px}
.contact-details svg{width:22px;height:22px;flex:none;color:var(--accent)}
.contact-details dt{font-size:10px;color:var(--accent);margin-bottom:16px}
.contact-details dd{margin:0;font-size:13px;font-weight:300;line-height:21px}
.contact-note{font-size:12px;line-height:19px;color:var(--muted);max-width:300px}
.office-map{position:relative;align-self:center}
.office-map>img{display:block;width:100%;aspect-ratio:930/515;object-fit:cover}
.map-route{position:absolute;inset:0;background:transparent;font-size:0}
.map-route svg{display:none}
.cooperation-banner{min-height:468px}
.cooperation-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:1060px;margin-top:64px;gap:36px}
.cooperation-features>div{display:flex;align-items:start;gap:28px}
.cooperation-features>div+div{border-left:1px solid #777;padding-left:30px}
.cooperation-features svg{width:30px;height:30px;flex:none;color:var(--accent)}
.cooperation-features h3{margin:0 0 16px;font-weight:300}
.cooperation-features p{margin:0;font-size:12px;line-height:20px;color:#ddd}
.contact-form-section{display:grid;grid-template-columns:30% minmax(0,1fr);gap:35px;padding-block:50px;min-height:455px}
.contact-form-section .eyebrow{font-size:12px;color:var(--accent)}
.contact-form-section .section-title{margin:28px 0 30px}
.contact-form-section>div>p:last-child{font-size:14px;line-height:22px;max-width:330px;color:var(--muted)}
.form-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px 18px}
.form-fields input,.form-fields textarea{display:block;width:100%;border:1px solid var(--line);border-radius:var(--radius);padding:18px;font:300 12px var(--body);background:transparent;min-height:52px}
.form-fields textarea{min-height:105px;resize:vertical}
.form-full{grid-column:1/-1}
.form-actions{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:24px}
.consent{display:flex;align-items:center;gap:12px;font-size:10px;color:var(--muted);max-width:380px;line-height:1.5}
.consent input{width:18px;height:18px;flex:none;accent-color:var(--accent)}
.form-actions button{min-width:260px}
.form-status{font-size:13px;line-height:1.5}
.detail-dialog{padding:0;border:1px solid var(--line);background:var(--paper);max-width:800px;width:calc(100% - 32px);max-height:90dvh}
.detail-content>img{display:block;width:100%;max-height:430px;object-fit:cover}
.detail-content>div{padding:30px}
.detail-content p{line-height:var(--line-height-body)}
@media(min-width:1301px){
 .shared-public-header{display:grid;grid-template-columns:151px 196px 428px minmax(0,1fr) 66px 220px 145px;padding-inline:3.84%;gap:0}
 .shared-public-header .brand-caption{margin:0}
 .shared-public-header .navigation{margin:0;gap:0;width:428px}
 .shared-public-header .search-trigger{grid-column:5;margin:0;justify-self:start}
 .shared-public-header .header-cta{margin:0;width:220px}
 .shared-public-header .languages{margin:0;justify-content:flex-end;gap:24px}
}
@media(max-width:1100px){
 .reference-hero{grid-template-columns:45% 55%;min-height:440px}
 .page-title-block{padding-top:40px;padding-right:24px}
 .page-title-block .page-title{font-size:36px}
 .hero-note{margin-top:30px}
 .team-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .team-card{min-height:430px}
 .facts-section{grid-template-columns:repeat(4,1fr)}
 .facts-section>blockquote{grid-column:1/-1}
 .service-row{grid-template-columns:32px minmax(0,1fr) 200px 24px;gap:16px}
 .service-row img{width:200px}
 .reference-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .geography{grid-template-columns:1fr 1.1fr}
 .geography .section-title{font-size:28px}
 .contacts-location{grid-template-columns:40% minmax(0,1fr)}
 .cooperation-features{gap:18px}
 .cooperation-features>div{gap:14px}
 .cooperation-features>div+div{padding-left:18px}
 .contact-form-section{grid-template-columns:1fr 1.8fr}
 .form-actions{flex-wrap:wrap}
}
@media(max-width:700px){
 .reference-hero{display:flex;flex-direction:column}
 .page-title-block{padding:36px var(--public-inset)}
 .page-title-block .page-title{font-size:var(--font-size-page-title)}
 .page-hero-image{height:auto;aspect-ratio:16/10;width:100%;max-height:400px}
 .section-title-row{align-items:start;flex-direction:column;gap:20px}
 .team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .team-card>img{height:auto;aspect-ratio:268/260}
 .team-card>div{padding:14px}
 .team-card{min-height:0}
 .team-card h3{overflow-wrap:anywhere}
 .team-card blockquote{margin-top:10px}
 .facts-section{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
 .fact{padding:0 12px}
 .fact:nth-child(odd){border-left:0}
 .image-banner:after{content:'';position:absolute;inset:0;background:#0006;z-index:-1}
 .banner-content{padding:36px var(--public-inset)}
 .banner-content>.section-title{font-size:30px}
 .service-row{grid-template-columns:24px minmax(0,1fr) 24px;gap:12px}
 .service-copy .card-title{font-size:20px}
 .service-row img{grid-row:2;grid-column:2;width:100%;height:auto;aspect-ratio:275/105}
 .service-row>svg{grid-column:3;grid-row:1}
 .reference-project-grid{grid-template-columns:1fr;gap:20px}
 .reference-project-card>img{height:auto;aspect-ratio:478/180}
 .project-card-copy strong{font-size:13px}
 .project-card-copy>span{font-size:12px}
 .geography{grid-template-columns:1fr;gap:30px;padding-block:40px}
 .geography>img{grid-row:2}
 .catalog-search{flex-wrap:wrap}
 .contacts-location{grid-template-columns:1fr;gap:24px}
 .contacts-location .eyebrow{margin-bottom:30px}
 .contact-details>div{min-height:94px}
 .office-map>img{min-height:280px}
 .map-route{inset:0}
 .cooperation-features{grid-template-columns:1fr;margin-top:30px;gap:25px}
 .cooperation-features>div+div{border-left:0;border-top:1px solid #777;padding:22px 0 0}
 .contact-form-section{grid-template-columns:1fr;gap:20px}
 .form-fields{grid-template-columns:1fr}
 .form-actions button{width:100%}
 .detail-content>div{padding:22px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.contacts-location:not(:has(.office-map)){grid-template-columns:1fr}
