/* BIM Republic — production refinements of the supplied visual identity. */
[hidden]{display:none!important}
html{scroll-padding-top:100px}
body{overflow-x:clip}
button,a,input{-webkit-tap-highlight-color:transparent}
button,input{font:inherit}
button:focus-visible,a:focus-visible{outline:3px solid #a77900;outline-offset:4px}
.site-header :focus-visible,.hero :focus-visible,.contact :focus-visible,.lightbox :focus-visible{outline-color:var(--yellow)}
.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}
.skip-link{position:fixed;top:10px;left:10px;z-index:2000;padding:10px 16px;background:var(--yellow);color:#000;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:40;border-bottom:1px solid #303030;padding-top:15px;padding-bottom:15px}
.site-header .brand img{width:48px;height:48px;object-fit:contain}
.site-header .partner-logo img{width:auto;height:30px}
.site-nav ul{gap:22px;align-items:center}
.site-nav a{display:block;padding:7px 0;font-size:.925rem}
.site-nav a.nav-contact{padding:9px 18px;background:var(--yellow);color:#0a0a0a;font-weight:600;border:0}
.site-nav a.nav-contact:hover{background:#e8c700}
.menu-toggle{display:none;color:#fff;border:1px solid #777;background:transparent;min-height:44px;padding:8px 14px;cursor:pointer}
.hero{height:clamp(580px,82vh,820px)}
.hero-copy{max-width:520px;bottom:48px;padding:30px 32px 34px;backdrop-filter:blur(5px)}
.hero-copy h1{font-size:clamp(2rem,3.8vw,3.2rem);text-wrap:balance}
.hero-copy p{line-height:1.65}
.hero-copy .cta{margin-top:18px}
.cta{min-height:48px;font-size:1rem}
.compare-tag{font-size:.75rem}
.compare-handle::before{content:"";position:absolute;top:0;bottom:0;left:-18px;width:38px}
.compare-handle:focus-visible{outline:0;box-shadow:0 0 0 3px var(--yellow)}
.compare-handle:focus-visible .handle-grip{outline:3px solid #fff;outline-offset:3px}
.clients{gap:32px;padding-top:30px;padding-bottom:30px}
.clients .label{font-size:.75rem;max-width:20ch}
.clients ul{gap:12px 28px;align-items:center}
.clients li{line-height:1.2}
.section-head{max-width:64ch}
.section-head h2,.about h2{font-size:clamp(2rem,4vw,3rem);line-height:1.08;text-wrap:balance}
.section-head p{font-size:1rem}
.expertises{padding-top:76px}
.exp-card{padding:34px;min-height:300px}
.exp-card .kicker{font-size:.75rem}
.exp-card h3{font-size:2.1rem}
.exp-card p,.service-list li{font-size:1rem}
.services{padding-top:76px;padding-bottom:80px}
.service-row{grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:36px}
.service-title{font-size:1.1rem}
.service-list{gap:12px}
.work{background:#f4f4f1;padding-top:80px;padding-bottom:80px}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.work-card{display:flex;flex-direction:column;min-width:0;transition:border-color .2s,box-shadow .2s}
.work-card:hover{border-color:#b7b7b0;box-shadow:0 8px 28px #0000000b}
.work-card.is-hidden{display:none}
.work-card h3{font-size:1.15rem;line-height:1.3;text-wrap:balance}
.work-card .client,.work-card .mission{font-size:.9rem;line-height:1.55}
.work-body{padding:24px;flex:1}
.compare-card,.work-photo{height:220px}
.work-tag{font-size:.75rem;padding:6px 10px}
.work-stats{flex-wrap:wrap}
.work-stats span,.work-card .status{font-size:.875rem}
.gallery-btn{font-size:.875rem;min-height:44px;padding:9px 12px;bottom:10px;right:10px;background:#0a0a0ad6}
.gallery-btn svg{width:14px;height:14px}
.reference-count{font-size:.875rem;color:#555;margin:-14px 0 26px}
.filter-bar{margin-bottom:26px}
.filter-btn{font-size:.95rem;min-height:46px}
.filter-btn .n{font-size:.8rem}
.lock-badge,.unlock label{font-size:.875rem}
.unlock-row{flex-wrap:wrap}
.unlock-input{font-size:1rem;flex:1 1 120px}
.unlock-btn{flex:0 0 auto}
.about{padding-top:80px;padding-bottom:80px;gap:70px}
.about h2{max-width:12ch;position:sticky;top:120px}
.contact h2{font-size:clamp(2.3rem,5vw,3.8rem);line-height:1.1}
.contact p{font-size:1.05rem}
.site-footer{color:#b0b0b0;font-size:.875rem;align-items:center}
.site-footer a{padding:10px 0;color:#ddd}
.lightbox{display:none;position:fixed;inset:0;margin:0;border:0;padding:0;width:100vw;height:100vh;height:100dvh;max-width:100vw;max-height:100dvh;background:#080808f7;color:#fff;overflow:hidden}
.lightbox[open]{display:flex}
.lightbox::backdrop{background:#080808}
.lightbox-frame{width:100%;height:100%;padding:76px 64px 112px}
.lightbox-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:transparent}
.lightbox-img:not([src]){visibility:hidden}
.lightbox-close{width:48px;height:48px;top:15px;right:18px;font-size:32px}
.lightbox-counter{top:30px;left:26px;font-size:.875rem}
.lightbox-caption{font-size:.9375rem;line-height:1.45;bottom:22px;max-height:76px;overflow:auto;margin:0 auto;max-width:100%;padding:0 70px}
.lightbox-arrow{width:48px;height:48px}
.lightbox-arrow.prev{left:10px}.lightbox-arrow.next{right:10px}
.lightbox-close:hover{color:var(--yellow)}
@media(min-width:1550px){.site-header,.services,.expertises,.work,.about,.contact,.clients,.site-footer{padding-left:max(6vw,calc((100vw - 1400px)/2));padding-right:max(6vw,calc((100vw - 1400px)/2))}.hero-copy{left:max(6vw,calc((100vw - 1400px)/2))}}
@media(max-width:1100px){.site-nav ul{gap:16px}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-header{padding-left:4vw;padding-right:4vw}.brand{gap:9px}}
@media(max-width:860px){
 html{scroll-padding-top:90px}.site-header{padding:12px 5vw;gap:12px}.menu-toggle{display:block;margin-left:auto}.site-nav{width:100%}.js .site-nav:not(.is-open){display:none}.site-nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;border-top:1px solid #333;padding-top:12px}.site-nav a{padding:12px 0}.site-nav li:last-child{grid-column:1/-1}.site-nav a.nav-contact{text-align:center}
 .hero{height:640px}.hero-copy{left:5vw;right:5vw;bottom:28px;max-width:500px;padding:24px}.hero-copy h1{font-size:2.4rem}.hero-copy p{font-size:1rem}.hero-copy .cta{padding:12px 18px}.hero-copy .cta.ghost{padding:10.5px 16px}.compare-tag{top:20px}.hud-corner{display:none}
 .clients{gap:16px}.clients .label{max-width:none;width:100%}.clients ul{justify-content:flex-start;gap:10px 25px}
 .exp-grid{grid-template-columns:1fr}.exp-card{min-height:0}.expertises,.services,.work,.about{padding-top:58px}.service-row{grid-template-columns:1fr;gap:16px}.service-title{max-width:none}.service-num{font-size:2.1rem}.about{grid-template-columns:1fr;gap:26px}.about h2{position:static;max-width:none}.work-grid{gap:20px}.compare-card,.work-photo{height:205px}.work-body{padding:20px}.filter-bar{padding-bottom:8px;scrollbar-width:thin}.contact{padding-top:72px;padding-bottom:72px}
}
@media(max-width:580px){
 .brand-sep{height:28px}.site-header .brand img{height:40px;width:40px}.site-header .partner-logo img{height:23px;width:auto}.partner-logo{padding:4px 6px}.hero{height:650px}.hero-copy{bottom:22px;padding:24px 22px}.hero-copy h1{font-size:2.15rem}.hero-copy p{margin-top:16px}.hero-copy .cta{display:block;text-align:center;width:100%;margin:16px 0 0}.hero-copy .cta.ghost{margin-left:0}.compare-tag.left{left:14px}.compare-tag.right{right:14px}.handle-grip{top:25%}.compare-card .handle-grip{top:50%}
 .section-head{margin-bottom:30px}.exp-card{padding:26px}.exp-card h3{font-size:1.95rem}.service-list li{padding-left:16px}.work-grid{grid-template-columns:1fr}.compare-card,.work-photo{height:230px}.work-card .client,.work-card .mission{font-size:.9375rem}.lightbox-frame{padding:76px 12px 135px}.lightbox-arrow{top:auto;bottom:75px;transform:none}.lightbox-arrow.prev{left:calc(50% - 58px)}.lightbox-arrow.next{right:calc(50% - 58px)}.lightbox-caption{padding:0 20px;font-size:.875rem;bottom:18px;max-height:48px}.lightbox-counter{left:18px}.site-footer{gap:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-copy{opacity:1;transform:none}}
