:root{--ink:#373435;--graphite:#373435;--white:#fff;--surface:#f5f6f7;--muted:#64666a;--line:#d9dde0;--cyan:#00afef;--blue:#008ccb;--accent-text:#006b99;--sans:Arial,Helvetica,sans-serif;--gutter:clamp(24px,5vw,88px);--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--white);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}body.menu-open,body.modal-open{overflow:hidden}::selection{background:#bceaff;color:#373435}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;height:auto}button{border:0;border-radius:0}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--cyan);outline-offset:5px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--graphite);outline-offset:4px}[hidden]{display:none!important}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:600}h2{font-family:var(--sans);font-size:clamp(32px,3.3vw,48px);line-height:1.16;letter-spacing:-.8px;font-weight:600}h2 em,h1 em{font-weight:inherit;font-style:normal}p+p{margin-top:17px}.container{width:min(1440px,100%);margin-inline:auto;padding-inline:var(--gutter)}.section-pad{padding-block:112px}.icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.rotate-180{transform:rotate(180deg)}.eyebrow{display:flex;align-items:center;gap:12px;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;line-height:1.5;margin-bottom:28px}.eyebrow.light{color:#e6e7e8}.eyebrow>span:empty{width:34px;height:1px;background:var(--cyan)}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;padding:18px 23px;min-height:58px;font-size:13px;font-weight:600;letter-spacing:.1px;line-height:1.5;transition:background .25s,color .25s,transform .25s}.button .icon{width:20px;height:20px;transition:transform .25s}.button:hover .icon{transform:translateX(4px)}.button-ivory{background:var(--cyan);color:var(--graphite)}.button-ivory:hover{background:#63d2fb}.button-outline{border:1px solid #a5aaae;background:transparent;color:var(--ink)}.button-outline:hover{background:var(--graphite);color:var(--white)}.button-dark{background:var(--graphite);color:var(--white)}.button-dark:hover{background:var(--cyan);color:var(--graphite)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;font-size:13px;line-height:1.5;font-weight:600;padding-block:13px;border-bottom:1px solid var(--line);transition:border-color .25s}.text-link .icon{width:18px;height:18px;transition:transform .25s}.text-link:hover{border-color:var(--ink)}.text-link:hover .icon{transform:translate(2px,-2px)}.circle-control{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;transition:background .2s,color .2s}.circle-control:hover{background:var(--white);color:var(--graphite);border-color:var(--white)}.circle-control .icon{width:18px;height:18px}.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;left:20px;top:15px;z-index:300;background:var(--white);color:var(--graphite);padding:12px 20px;transform:translateY(-180%)}.skip-link:focus{transform:none}
/* Navigation */
.site-header{position:absolute;inset:0 0 auto;z-index:60;color:white;border-bottom:1px solid #ffffff30;transition:background .25s,color .25s;min-height:103px}.header-inner{width:min(1600px,100%);margin:auto;padding:18px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:15px;flex-shrink:0}.brand-symbol{position:relative;width:43px;height:58px;display:block}.brand-symbol img{position:absolute;inset:0;width:43px;height:58px;object-fit:contain}.logo-dark{opacity:0}.brand-name{font-size:11px;letter-spacing:1.6px;font-weight:700;line-height:1.65}.brand-name>span{display:block;letter-spacing:2px;font-size:9px;font-weight:400}.desktop-nav{display:flex;align-items:center;gap:33px;font-size:13px}.desktop-nav a{padding:13px 0;position:relative}.desktop-nav a:after{content:'';position:absolute;bottom:5px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s}.desktop-nav a:hover:after,.desktop-nav a.is-current:after{transform:scaleX(1)}.header-contact{font-size:12px;letter-spacing:.4px;border:1px solid #ffffff6e;padding:12px 16px;display:flex;align-items:center;gap:25px;transition:background .2s,color .2s}.header-contact .icon{width:15px;height:15px}.header-contact:hover{color:var(--graphite);background:var(--white)}.site-header.is-sticky{position:fixed;min-height:82px;background:rgba(255,255,255,.98);color:var(--graphite);border-color:var(--line);box-shadow:0 3px 20px #3734350a;animation:headerEnter .25s var(--ease)}.site-header.is-sticky .header-inner{padding-block:12px}.site-header.is-sticky .logo-light{opacity:0}.site-header.is-sticky .logo-dark{opacity:1}.site-header.is-sticky .header-contact{border-color:#a5aaae}.site-header.is-sticky .header-contact:hover{background:var(--graphite);color:white}.menu-toggle{display:none;width:44px;height:44px;padding:10px;background:transparent}.menu-toggle span{display:block;width:24px;height:1px;background:currentColor;margin:7px 0;transition:transform .25s}.mobile-nav{display:none}@keyframes headerEnter{from{transform:translateY(-100%)}to{transform:translateY(0)}}
/* First impression */
.hero{position:relative;min-height:760px;height:100svh;max-height:1050px;color:var(--white);display:flex;flex-direction:column;justify-content:center;background:#373435;isolation:isolate}.hero-media,.hero-shade,.hero-lines{position:absolute;inset:0;z-index:-3}.hero-media{overflow:hidden}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 57%;transition:opacity .3s}.hero-media img.changing{opacity:.2}.hero-shade{z-index:-2;background:linear-gradient(90deg,rgba(26,25,26,.66) 0%,rgba(26,25,26,.36) 58%,rgba(26,25,26,.16) 100%),linear-gradient(0deg,rgba(26,25,26,.70) 0%,transparent 45%,rgba(26,25,26,.32) 100%)}.hero-lines{z-index:-1;left:var(--gutter);right:var(--gutter);border-inline:1px solid #ffffff0c;pointer-events:none}.hero-content{padding-top:105px;padding-bottom:140px}.hero-content .eyebrow{margin-bottom:28px;letter-spacing:1.8px;font-size:11px}.hero h1{font-family:var(--sans);font-size:clamp(40px,5.4vw,78px);line-height:1.12;letter-spacing:-1.5px;max-width:1100px;text-shadow:0 2px 24px #0002;font-weight:600}.hero h1 em{color:var(--white);font-style:normal}.hero-description{margin-top:24px;font-size:16px;line-height:1.7;letter-spacing:.2px;color:#fff}.hero-content .button{margin-top:29px;min-width:245px;font-size:13px}.hero-bottom{position:absolute;bottom:38px;left:0;right:0;display:flex;align-items:end;justify-content:space-between;gap:35px}.hero-discover{display:flex;gap:16px;align-items:center;font-size:12px;letter-spacing:.2px}.hero-discover .icon{width:17px;height:30px}.hero-discover:hover .icon{transform:translateY(3px)}.hero-showcase{display:flex;align-items:center;gap:32px}.hero-project{position:relative;padding:0 40px 0 0;background:transparent;text-align:left}.hero-project>span{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#e6e7e8}.hero-project strong{display:block;font-size:14px;font-weight:600;margin-top:3px}.hero-project>.icon{position:absolute;right:0;top:7px;width:16px;height:16px}.hero-controls{display:flex;align-items:center;gap:15px;font-size:11px;letter-spacing:1px}.hero-controls>.circle-control{border-color:#ffffff54;width:37px;height:37px}.count-divider{margin-inline:8px;color:#d9dde0}.intro-strip{border-bottom:1px solid var(--line);padding-block:23px;font-size:12px;letter-spacing:.2px}.intro-strip>.container{display:flex;align-items:center;justify-content:space-between;gap:20px}.intro-strip i{font-style:normal;color:#008ccb;padding-inline:13px}
/* About */
.about{display:grid;grid-template-columns:1.15fr 1fr;gap:9%;padding-block:113px 118px}.about h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.about .eyebrow{margin-bottom:32px}.about-signature{display:flex;align-items:center;gap:18px;margin-top:51px;font-size:12px;letter-spacing:.3px}.signature-line{height:1px;width:49px;background:#00afef}.about-copy{padding-top:39px;max-width:480px;color:var(--muted);font-size:15px;line-height:1.8}.about-copy .lead{font-size:19px;line-height:1.55;color:var(--ink);margin-bottom:21px}.about-copy .text-link{color:var(--ink);margin-top:12px;font-size:13px}.team-line{display:flex;gap:35px;margin-top:30px;padding-top:25px;border-top:1px solid var(--line)}.team-line strong{font-weight:600;color:var(--ink);font-size:13px;display:block}.team-line span{font-size:12px;display:block;margin-top:3px}
/* The selected work */
.portfolio{background:var(--surface);padding-block:102px 84px}.section-top{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-top>p{font-size:15px;color:var(--muted);line-height:1.75;padding-bottom:7px}.section-top .eyebrow{margin-bottom:23px}.portfolio-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:49px;border-bottom:1px solid #d9dde0}.filters{display:flex;align-items:center;gap:28px}.filter{padding:17px 0 18px;background:transparent;border-bottom:1px solid transparent;font-size:14px;position:relative;white-space:nowrap;color:#64666a;transition:color .2s}.filter:hover{color:var(--graphite)}.filter.is-active{color:var(--accent-text);border-color:var(--blue);font-weight:600}.filter>span{font-size:10px;vertical-align:super;margin-left:5px}.portfolio-index{font-size:10px;letter-spacing:1.2px;color:#64666a;white-space:nowrap}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;row-gap:40px;padding-top:48px}.project-card{min-width:0;align-self:stretch}.project-card:nth-child(even){padding-top:0}.project-card button{display:flex;width:100%;text-align:left;padding:0;background:transparent;flex-direction:column;height:100%}.project-image{position:relative;overflow:hidden;background:#e6e7e8;aspect-ratio:16/9;width:100%}.project-card:nth-child(even) .project-image{aspect-ratio:16/9}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.project-card button:hover .project-image img{transform:scale(1.045)}.project-open{position:absolute;right:17px;bottom:17px;width:40px;height:40px;display:grid;place-items:center;background:var(--white);color:var(--graphite);border-radius:50%;transform:translateY(8px);opacity:0;transition:opacity .3s,transform .3s}.project-open .icon{width:18px;height:18px}.project-card button:hover .project-open,.project-card button:focus-visible .project-open{opacity:1;transform:translateY(0)}.project-meta{display:flex;align-items:start;justify-content:space-between;gap:15px;padding:20px 0 16px;border-bottom:1px solid #d9dde0;width:100%;min-height:94px;flex:1}.project-meta h3{font-family:var(--sans);font-size:clamp(22px,2vw,26px);line-height:1.25;letter-spacing:-.4px;font-weight:600}.project-meta p{font-size:13px;color:var(--muted);margin-top:8px;letter-spacing:.2px;line-height:1.5}.project-meta>.project-number{font-size:11px;letter-spacing:1px;padding-top:6px;color:var(--accent-text)}.portfolio-more{text-align:center;margin-top:52px}.portfolio-more .button{min-width:275px;font-size:13px}.more-count{font-size:12px;margin-left:10px}.industrial-note{padding:60px 0 45px;max-width:620px}.industrial-note h3{font:600 clamp(30px,3.3vw,42px)/1.2 var(--sans);margin-bottom:20px}.industrial-note p:not(.eyebrow){color:var(--muted);font-size:15px}.industrial-note .text-link{margin-top:17px}.no-js-gallery{display:grid;grid-template-columns:1fr 1fr;gap:25px}.no-js-gallery figure{margin:30px 0}
/* Expertise */
.expertise{background:var(--graphite);color:var(--white);position:relative;overflow:hidden}.expertise-layout{display:grid;grid-template-columns:1fr 1fr;gap:10%}.expertise-intro{position:relative}.expertise h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.expertise h2 em{color:#00afef}.expertise-intro>p:not(.eyebrow){max-width:340px;font-size:15px;line-height:1.8;color:#e6e7e8;margin-top:28px}.light-link{color:var(--white);border-color:#ffffff36;margin-top:24px}.light-link:hover{border-color:var(--white)}.expertise-mark{position:absolute;font-family:var(--sans);font-size:170px;line-height:1;letter-spacing:-18px;opacity:.04;bottom:-25px;left:0;pointer-events:none}.service{border-top:1px solid #ffffff30}.service:last-child{border-bottom:1px solid #ffffff30}.service summary{list-style:none;cursor:pointer;display:flex;gap:20px;align-items:center;padding:26px 0}.service summary::-webkit-details-marker{display:none}.service summary::marker{content:''}.service-number{font-size:11px;color:#00afef;align-self:center;min-width:25px}.service h3{font-family:var(--sans);font-size:clamp(25px,2.3vw,32px);letter-spacing:-.2px;line-height:1.2;flex:1;font-weight:600}.service-plus{position:relative;width:19px;height:19px;display:block;flex-shrink:0}.service-plus:before,.service-plus:after{content:'';position:absolute;background:#e6e7e8;left:3px;top:9px;width:13px;height:1px}.service-plus:after{transform:rotate(90deg);transition:transform .25s}.service[open] .service-plus:after{transform:rotate(0deg)}.service-content{padding:0 25px 29px 45px;font-size:14px;color:#e6e7e8;line-height:1.8}.service-content>a{display:inline-flex;align-items:center;gap:17px;font-size:13px;color:var(--white);margin-top:23px}.service-content .icon{width:16px;height:16px}.service-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:17px}.service-tags>span{border:1px solid #ffffff24;padding:4px 9px;font-size:11px;letter-spacing:.2px}
/* BIM */
.bim{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:8%;padding-block:115px}.bim-visual{position:relative;background:var(--white);min-width:0;padding:23px 26px;border:1px solid #d9dde0}.bim-visual-top{display:flex;justify-content:space-between;gap:10px;letter-spacing:.8px;text-transform:uppercase;font-size:10px;color:#64666a}.bim-visual>img{margin-block:36px 27px;width:100%;mix-blend-mode:multiply;aspect-ratio:16/9;object-fit:contain;transform:none}.bim-visual-bottom{display:flex;justify-content:center;gap:23px;font-size:11px;color:#64666a;padding-top:17px;border-top:1px solid #d9dde0}.bim-visual-bottom span{display:flex;align-items:center;gap:6px}.bim-visual-bottom i{width:4px;height:4px;background:#373435;border-radius:50%}.bim-visual-bottom span:nth-child(2) i{background:#008ccb}.bim-visual-bottom span:nth-child(3) i{background:#00afef}.bim-corner{position:absolute;width:13px;height:13px;border-color:#008ccb;border-style:solid}.bim-corner.tl{top:-1px;left:-1px;border-width:1px 0 0 1px}.bim-corner.br{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.bim-copy h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.bim-copy>p:not(.eyebrow){font-size:15px;line-height:1.8;color:var(--muted);margin-top:24px}.bim-points{list-style:none;padding:0;margin:21px 0 12px;font-size:14px}.bim-points li{padding:8px 0;display:flex;align-items:center;gap:11px}.bim-points li:before{content:'';width:4px;height:4px;border:1px solid #008ccb;transform:rotate(45deg);flex-shrink:0}.bim-copy .text-link{font-size:13px;gap:15px}
/* Process */
.process{background:#edf5f8;padding-block:91px 91px}.process h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:52px 0 0;gap:37px}.process-step{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #bacad1;padding-top:18px;margin-bottom:23px;font-size:12px;color:#006b99;letter-spacing:.5px}.process-step .icon{width:18px;height:18px}.process-grid h3{font-family:var(--sans);font-size:26px;line-height:1.2;margin-bottom:12px;font-weight:600}.process-grid p{font-size:14px;line-height:1.8;color:#64666a}
/* Conversation */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-block:111px 115px}.contact h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.contact-copy>p:not(.eyebrow){font-size:15px;color:var(--muted);margin-top:25px;line-height:1.75}.contact-phone{display:flex;align-items:center;gap:17px;width:fit-content;margin-top:34px;padding-bottom:20px;border-bottom:1px solid var(--line)}.contact-phone>.icon:first-child{width:23px;height:23px}.contact-phone small{display:block;font-size:12px;letter-spacing:.3px;color:var(--muted)}.contact-phone strong{font-size:22px;letter-spacing:0;font-weight:600;display:block}.contact-phone>.icon:last-child{width:17px;height:17px;margin-left:12px}.contact-address{display:block;width:fit-content;margin-top:25px}.contact-address>span:first-child{font-size:12px;color:var(--muted)}.contact-address address{font-size:14px;line-height:1.75;font-style:normal;margin-top:8px}.map-link{display:flex;align-items:center;gap:12px;font-size:12px;margin-top:12px;color:var(--accent-text)}.map-link .icon{width:13px;height:13px}.contact-form-wrap{padding-top:28px}.form-heading{font-size:20px;letter-spacing:-.3px;margin-bottom:34px;font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:25px;row-gap:28px}.field{min-width:0;display:flex;flex-direction:column;gap:10px}.field.full{grid-column:1/-1}.field label{font-size:13px;font-weight:600}.field label>span{color:#64666a;font-size:12px}.field input,.field select,.field textarea{width:100%;border:0;border-bottom:1px solid #b8bec2;background:transparent;padding:4px 0 13px;border-radius:0;color:var(--ink);font-size:16px;line-height:1.5;transition:border-color .2s}.field select{height:43px;cursor:pointer;font-size:16px}.field textarea{resize:vertical;min-height:91px}.field input::placeholder,.field textarea::placeholder{color:#64666a;opacity:1;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--graphite)}.field select:invalid{color:#64666a}.field input:user-invalid,.field select:user-invalid,.field textarea:user-invalid{border-color:#b23a32}.contact-form-wrap .button{width:100%;margin-top:30px;font-size:13px}.form-note{font-size:12px;line-height:1.7;color:#64666a;margin-top:13px}.form-note a{text-decoration:underline;text-underline-offset:3px}.form-status{font-size:13px;color:var(--graphite);margin-top:14px;line-height:1.8}.form-status:empty{display:none}.whatsapp-fallback{margin-top:10px}
/* Footer */
.site-footer{background:var(--graphite);color:var(--white);padding-block:48px 25px}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:40px;padding-bottom:43px;border-bottom:1px solid #ffffff28}.footer-brand .brand-symbol{width:45px;height:62px}.footer-brand .brand-symbol img{width:45px;height:62px}.footer-top>p{font-family:var(--sans);font-size:26px;line-height:1.25;letter-spacing:-.2px;font-weight:600}.footer-top>p em{font-weight:inherit;color:#00afef;font-style:normal}.footer-top-link{display:flex;align-items:center;gap:20px;font-size:12px;color:#e6e7e8}.footer-top-link .icon{width:16px;height:16px}.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:23px;font-size:11px;letter-spacing:.2px;color:#d2d5d7;line-height:1.6}.footer-links{display:flex;gap:24px;font-size:12px}.footer-links a{display:flex;gap:6px;align-items:center}.footer-links .icon{width:11px;height:11px}.floating-contact{position:fixed;bottom:22px;right:22px;z-index:45;display:flex;align-items:center;justify-content:center;width:49px;height:49px;color:var(--white);background:var(--graphite);border:1px solid #ffffff5e;border-radius:50%;box-shadow:0 4px 20px #0002;transition:transform .2s}.floating-contact>.icon{width:23px;height:23px;stroke-width:1.2}.floating-contact:hover{transform:translateY(-3px)}.floating-contact span{position:absolute;right:60px;white-space:nowrap;pointer-events:none;background:var(--graphite);font-size:12px;padding:8px 14px;opacity:0;transform:translateX(5px);transition:opacity .2s,transform .2s}.floating-contact:hover span,.floating-contact:focus-visible span{opacity:1;transform:none}body.modal-open .floating-contact,body.menu-open .floating-contact{visibility:hidden}
/* Project gallery */
/* The site itself stays visible through a light, blurred backdrop. */
.project-dialog {
  --gallery-gutter: clamp(54px, 4.75vw, 88px);
  --gallery-top: 60px;
  --gallery-bottom: 24px;
  position: fixed;
  inset: 0;
  margin: 0;
  padding: max(var(--gallery-top), env(safe-area-inset-top)) max(var(--gallery-gutter), env(safe-area-inset-right)) max(var(--gallery-bottom), env(safe-area-inset-bottom)) max(var(--gallery-gutter), env(safe-area-inset-left));
  width: 100%;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  overflow: auto;
  overscroll-behavior: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  box-shadow: none;
}
.project-dialog::backdrop {
  background: rgb(245 246 247 / 58%);
  -webkit-backdrop-filter: blur(18px) saturate(.7);
  backdrop-filter: blur(18px) saturate(.7);
}
.gallery-viewport {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}
.gallery-shell {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
}
.dialog-image-wrap {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: var(--gallery-image-ratio, 16 / 9);
  background: transparent;
  touch-action: pan-y pinch-zoom;
}
.dialog-image-wrap > img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  object-position: center;
  background: transparent;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}
.gallery-button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  transition: background .18s;
}
.gallery-button:hover { background: rgb(255 255 255 / 42%); }
.gallery-button:focus-visible { outline: 2px solid var(--accent-text); outline-offset: 2px; }
.gallery-button .icon { width: 23px; height: 23px; stroke-width: 1.35; }
.dialog-close {
  position: absolute;
  top: max(8px, env(safe-area-inset-top));
  right: max(10px, env(safe-area-inset-right));
  z-index: 2;
}
.dialog-close .icon { width: 28px; height: 28px; }
.gallery-controls { position: absolute; inset: 0; pointer-events: none; }
.gallery-controls .gallery-button { position: absolute; top: 50%; transform: translateY(-50%); pointer-events: auto; }
#gallery-prev { left: calc(-22px - var(--gallery-gutter) / 2); }
#gallery-next { right: calc(-22px - var(--gallery-gutter) / 2); }
.gallery-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 16px;
  min-height: 58px;
  padding-block: 7px;
}
.gallery-heading { min-width: 0; }
.gallery-heading h2 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font: 600 15px/1.35 var(--sans);
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.gallery-caption { overflow: hidden; margin-top: 1px; font-size: 13px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
#dialog-caption:not(:empty)::before { content: ' · '; white-space: pre; }
.gallery-count { font-size: 13px; line-height: 1.4; font-variant-numeric: tabular-nums; white-space: nowrap; }
.gallery-info-toggle { justify-self: end; font-size: 29px; font-weight: 400; line-height: 1; }
.gallery-summary {
  flex-shrink: 0;
  max-height: min(18vh, 100px);
  max-height: min(18dvh, 100px);
  overflow: auto;
  overscroll-behavior: contain;
  padding: 9px 12px;
  background: rgb(255 255 255 / 36%);
  font-size: 13px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  scrollbar-width: thin;
}
.gallery-summary:focus-visible { outline: 2px solid var(--accent-text); outline-offset: 2px; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .project-dialog::backdrop { background: rgb(245 246 247 / 90%); }
}
@media (max-width: 600px) {
  .project-dialog { --gallery-gutter: 12px; --gallery-top: 58px; --gallery-bottom: 20px; }
  .gallery-meta { grid-template-columns: minmax(0, 1fr) auto 44px; gap: 8px; min-height: 56px; }
  .gallery-heading h2 { font-size: 13px; }
  .gallery-caption, .gallery-count { font-size: 11px; }
  .gallery-summary { padding: 8px 10px; font-size: 12px; }
  .gallery-controls .gallery-button { background: rgb(255 255 255 / 64%); }
  #gallery-prev { left: -10px; }
  #gallery-next { right: -10px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .project-dialog { --gallery-top: 10px; --gallery-bottom: 10px; --gallery-gutter: 54px; }
  .dialog-close { top: max(3px, env(safe-area-inset-top)); right: max(5px, env(safe-area-inset-right)); }
  .gallery-meta { min-height: 48px; padding-block: 2px; gap: 8px; grid-template-columns: minmax(0, 1fr) auto 44px; }
  .gallery-heading h2 { font-size: 12px; }
  .gallery-caption, .gallery-count { font-size: 11px; }
  .gallery-summary { padding: 6px 10px; font-size: 12px; max-height: 20vh; max-height: 20dvh; }
  .gallery-controls .gallery-button { background: transparent; }
  #gallery-prev { left: calc(-22px - var(--gallery-gutter) / 2); }
  #gallery-next { right: calc(-22px - var(--gallery-gutter) / 2); }
}
/* Secondary pages */
.simple-header{padding:24px var(--gutter);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:25px}.simple-header>a:last-child{font-size:13px}.legal-page{max-width:850px;margin:auto;padding:85px var(--gutter) 90px}.legal-page h1{font-family:var(--sans);font-size:clamp(36px,5vw,54px);font-weight:600;line-height:1.15;margin-bottom:35px;letter-spacing:-.8px}.legal-page h2{font-family:var(--sans);font-size:20px;line-height:1.4;letter-spacing:0;margin:35px 0 12px;font-weight:600}.legal-page p,.legal-page li{font-size:15px;line-height:1.8;color:#64666a}.legal-page ul{padding-left:20px}.legal-page a:not(.button){text-decoration:underline;text-underline-offset:4px}.legal-page .button{margin-top:32px}.error-page{min-height:70svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 24px}.error-page .eyebrow{justify-content:center}.error-page h1{font-family:var(--sans);font-size:clamp(36px,5vw,64px);line-height:1.15;font-weight:600;letter-spacing:-.8px}.error-page p:not(.eyebrow){font-size:15px;margin-top:25px;color:var(--muted)}.error-page .button{margin-top:30px}
/* Readable supporting copy and a safe no-JavaScript fallback. */
html:not(.js-ready) #contact-form,html:not(.js-ready) .filters,html:not(.js-ready) .portfolio-more,html:not(.js-ready) .hero-controls,html:not(.js-ready) .menu-toggle{display:none}
.desktop-nav{font-size:13px}.header-contact{font-size:12px}.hero-description{font-size:16px;line-height:1.7}.hero-discover{font-size:12px;letter-spacing:.2px}.hero-project strong{font-size:14px;font-weight:600}.intro-strip{font-size:12px;letter-spacing:.2px}.about-copy{font-size:15px;line-height:1.8}.about-copy .lead{font-size:19px;line-height:1.55}.text-link{font-size:13px}.team-line strong{font-size:13px}.team-line span{font-size:12px}.section-top>p{font-size:15px;line-height:1.75}.filter{font-size:14px}.project-meta p{font-size:13px;line-height:1.5;margin-top:8px}.expertise-intro>p:not(.eyebrow){font-size:15px;line-height:1.8}.service-content{font-size:14px;line-height:1.8}.service-content>a{font-size:13px}.service-tags>span{font-size:11px;padding:4px 9px}.bim-copy>p:not(.eyebrow){font-size:15px;line-height:1.8}.bim-points{font-size:14px}.bim-copy .text-link{font-size:13px}.process-grid p{font-size:14px;line-height:1.8}.contact-copy>p:not(.eyebrow){font-size:15px;line-height:1.75}.contact-address address{font-size:14px;line-height:1.75}.field label{font-size:13px}.field input,.field select,.field textarea{font-size:16px;line-height:1.5}.form-note{font-size:12px;line-height:1.7}.footer-bottom{font-size:11px;line-height:1.6}.footer-top-link{font-size:12px}
/* Restrained motion, enabled only after JS is ready */
.motion-ready .reveal{opacity:0;transform:translateY(18px);transition:opacity .65s var(--ease),transform .65s var(--ease)}.motion-ready .reveal.is-visible{opacity:1;transform:none}
@media(min-width:1700px){.hero-content{padding-top:80px}.hero h1{font-size:clamp(40px,5.4vw,78px);font-family:var(--sans);font-weight:600;line-height:1.12;letter-spacing:-1.5px}.hero-bottom{bottom:42px}.header-inner{padding-inline:70px}.hero-lines{left:calc((100vw - 1264px)/2);right:calc((100vw - 1264px)/2)}}
@media(max-width:1150px){.desktop-nav{gap:23px;font-size:13px}.header-inner{gap:20px}.brand-name{font-size:11px;letter-spacing:1.6px;font-weight:700}.brand-name>span{font-size:9px;letter-spacing:2px;font-weight:400}.header-contact{padding:10px 12px;gap:15px;font-size:12px}.hero{min-height:730px}.hero h1{font-size:clamp(40px,5.4vw,78px);font-family:var(--sans);font-weight:600;line-height:1.12;letter-spacing:-1.5px}.about{gap:6%}.about-copy{font-size:15px;line-height:1.8}.about h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.section-pad{padding-block:90px}.project-grid{gap:35px 5%;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px;row-gap:40px}.expertise-layout{gap:7%}.expertise h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.filters{gap:21px}.portfolio-index{display:none;font-size:10px}.bim{gap:6%}.contact{gap:7%}.form-grid{column-gap:18px}.contact h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.footer-location{display:none}.process-grid{gap:25px}.team-line{gap:20px}}
@media(max-width:850px){:root{--gutter:32px}.site-header{min-height:89px}.header-inner{padding-block:13px}.brand-symbol,.brand-symbol img{width:40px;height:54px}.desktop-nav{display:none;font-size:13px}.header-contact{margin-left:auto;font-size:12px;padding:12px 17px}.menu-toggle{display:block;color:inherit}.mobile-nav:not([hidden]){display:flex;flex-direction:column;background:var(--graphite);color:var(--white);position:fixed;left:0;right:0;top:80px;bottom:0;padding:33px var(--gutter) 60px;overflow:auto;z-index:60}.mobile-nav>a{display:flex;justify-content:space-between;align-items:center;font-family:var(--sans);font-size:28px;line-height:1.25;border-bottom:1px solid #ffffff26;padding:17px 0;font-weight:600}.mobile-nav>a>span{font:11px var(--sans);color:var(--cyan)}.mobile-nav>p{font-size:12px;letter-spacing:1px;margin-top:35px;color:#d2d5d7}.site-header.menu-active{background:var(--graphite);color:var(--white);position:fixed}.site-header.menu-active .logo-light{opacity:1}.site-header.menu-active .logo-dark{opacity:0}.menu-active .menu-toggle span:first-child{transform:translateY(4px) rotate(45deg)}.menu-active .menu-toggle span:last-child{transform:translateY(-4px) rotate(-45deg)}.hero{min-height:710px;max-height:970px}.hero h1{font-size:clamp(40px,5.4vw,78px);letter-spacing:-1.5px;font-family:var(--sans);font-weight:600;line-height:1.12}.hero-content{padding-top:60px;padding-bottom:115px}.hero-bottom{bottom:30px;align-items:center}.hero-showcase{gap:20px}.hero-discover{font-size:12px;gap:10px;letter-spacing:.2px}.hero-controls{gap:10px;font-size:11px}.hero-project>strong{font-size:14px;font-weight:600}.hero-project>span{font-size:10px;letter-spacing:1px}.hero-project{padding-right:28px}.intro-strip>.container{justify-content:space-between}.strip-right{display:none}.about{grid-template-columns:1fr 1fr;gap:35px}.about h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.about-copy{padding-top:36px;font-size:15px;line-height:1.8}.about-copy .lead{font-size:19px;line-height:1.55}.about-signature{margin-top:30px;font-size:12px;gap:12px}.signature-line{width:30px}.team-line{flex-direction:column;gap:15px}.section-top h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.section-top>p{font-size:15px;line-height:1.75}.project-card:nth-child(even){padding-top:0}.project-meta h3{font-size:clamp(22px,2vw,26px);font-weight:600;line-height:1.25;letter-spacing:-.4px}.expertise-layout{gap:35px}.expertise h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.expertise-intro>p:not(.eyebrow){font-size:15px;line-height:1.8}.service h3{font-size:clamp(25px,2.3vw,32px);font-weight:600;line-height:1.2}.service summary{gap:15px}.service-content{padding-left:37px;padding-right:0;font-size:14px;line-height:1.8}.bim{grid-template-columns:1fr;gap:45px}.bim-copy{display:grid;grid-template-columns:1fr 1fr;column-gap:40px}.bim-copy .eyebrow{grid-column:1/-1}.bim-copy h2{font-size:clamp(32px,3.3vw,48px);grid-row:2/5;font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.bim-copy>p:not(.eyebrow){margin-top:0;font-size:15px;line-height:1.8}.bim-copy .text-link{grid-column:2;font-size:13px;gap:12px}.bim-visual{max-width:620px;margin-inline:auto;width:100%;background:var(--white)}.bim-visual>img{max-height:330px;margin-block:20px 10px;aspect-ratio:16/9;transform:none}.process-grid{grid-template-columns:1fr 1fr;gap:38px}.process-step{margin-bottom:16px;font-size:12px}.contact{gap:35px}.contact h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.form-grid{grid-template-columns:1fr;row-gap:23px}.field.full{grid-column:auto}.contact-form-wrap{padding-top:10px}.form-heading{font-size:20px;font-weight:600;letter-spacing:-.3px}.footer-top{gap:30px}.footer-top>p{font-size:26px;font-weight:600;line-height:1.25}.footer-top-link{font-size:12px;gap:10px}.floating-contact{bottom:18px;right:18px}}
@media(max-width:600px){:root{--gutter:24px}body{font-size:15px;line-height:1.7}html{scroll-padding-top:88px}.section-pad{padding-block:68px}.header-inner{padding-block:12px;gap:12px}.brand{gap:10px}.brand-symbol,.brand-symbol img{width:35px;height:47px}.brand-name{font-size:11px;letter-spacing:1.6px;font-weight:700}.brand-name>span{font-size:9px;letter-spacing:2px;font-weight:400}.header-contact{display:none;font-size:12px}.site-header{min-height:73px}.site-header.is-sticky{min-height:73px}.site-header.is-sticky .header-inner{padding-block:12px}.mobile-nav:not([hidden]){top:72px}.hero{height:94svh;min-height:690px;max-height:860px}.hero-content{padding-top:100px;padding-bottom:150px}.hero h1{font-size:clamp(40px,5.4vw,78px);line-height:1.12;letter-spacing:-1.5px;max-width:540px;font-family:var(--sans);font-weight:600}.hero h1 br{display:none}.hero h1 em{display:block;margin-top:8px;font-style:normal;color:var(--white)}.hero-content .eyebrow{font-size:11px;letter-spacing:1.8px;margin-bottom:24px}.hero-shade{background:linear-gradient(90deg,#242324c4,#24232445),linear-gradient(0deg,#242324e0 0%,#24232445 47%,#24232440 100%)}.hero-media img{object-position:var(--hero-position-mobile,57% center)!important}.hero-description{font-size:16px;margin-top:24px;line-height:1.7}.hero-content .button{min-height:54px;min-width:228px;font-size:13px;margin-top:27px;padding:16px 20px}.hero-bottom{bottom:24px;gap:15px;align-items:end}.hero-discover{display:none;font-size:12px;letter-spacing:.2px}.hero-showcase{width:100%;justify-content:space-between;gap:12px;padding-top:19px;border-top:1px solid #ffffff36}.hero-project{padding-right:25px}.hero-project>span{font-size:10px;letter-spacing:1px}.hero-project>strong{font-size:14px;font-weight:600}.hero-project>.icon{width:13px;height:13px;top:9px}.hero-controls{font-size:11px;gap:9px}.hero-controls .circle-control{width:32px;height:32px}.hero-controls .circle-control .icon{width:14px;height:14px}.count-divider{margin-inline:5px}.intro-strip{padding-block:19px;font-size:12px;letter-spacing:.2px}.intro-strip i{padding-inline:6px}.intro-strip>.container{gap:10px}.about{grid-template-columns:1fr;gap:30px}.eyebrow{font-size:11px;letter-spacing:1.5px;margin-bottom:23px}.about .eyebrow{margin-bottom:24px}.about h2{font-size:clamp(32px,3.3vw,48px);letter-spacing:-.8px;font-family:var(--sans);font-weight:600;line-height:1.16}.about-signature{display:none;font-size:12px}.about-copy{padding-top:0;max-width:none;font-size:15px;line-height:1.8}.about-copy .lead{font-size:19px;line-height:1.55}.about-copy .text-link{font-size:13px}.team-line{flex-direction:row;gap:24px;margin-top:25px;padding-top:24px}.team-line strong{font-size:13px}.team-line span{font-size:12px}.section-top{display:block}.section-top h2{font-size:clamp(32px,3.3vw,48px);letter-spacing:-.8px;font-family:var(--sans);font-weight:600;line-height:1.16}.section-top>p{margin-top:22px;font-size:15px;line-height:1.75}.portfolio-toolbar{margin-top:24px;overflow-x:auto;scrollbar-width:none}.portfolio-toolbar::-webkit-scrollbar{display:none}.filters{gap:23px;min-width:max-content}.filter{font-size:14px;padding-block:16px}.filter>span{font-size:10px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;padding-top:30px;column-gap:32px;row-gap:40px}.project-card:nth-child(even){padding-top:0}.project-image,.project-card:nth-child(even) .project-image{aspect-ratio:16/9}.project-meta{padding-block:15px 13px;width:100%;min-height:94px;flex:1;padding:20px 0 16px}.project-meta h3{font-size:clamp(22px,2vw,26px);font-weight:600;line-height:1.25;letter-spacing:-.4px}.project-meta p{font-size:13px;margin-top:8px;line-height:1.5}.project-meta>.project-number{font-size:11px;color:var(--accent-text)}.project-open{width:32px;height:32px;right:12px;bottom:12px;transform:none;opacity:1}.project-open .icon{width:15px;height:15px}.portfolio-more{margin-top:35px}.portfolio-more .button{min-width:260px;padding:16px 18px;min-height:54px;font-size:13px;gap:25px}.industrial-note{padding:36px 0 15px}.industrial-note h3{font-size:44px;font:600 clamp(30px,3.3vw,42px)/1.2 var(--sans)}.industrial-note p:not(.eyebrow){font-size:15px}.expertise-layout{grid-template-columns:1fr;gap:36px}.expertise h2{font-size:clamp(32px,3.3vw,48px);letter-spacing:-.8px;font-family:var(--sans);font-weight:600;line-height:1.16}.expertise-intro>p:not(.eyebrow){font-size:15px;max-width:none;margin-top:22px;line-height:1.8}.expertise .light-link{margin-top:15px;font-size:13px}.expertise-mark{display:none}.service summary{padding:23px 0}.service h3{font-size:clamp(25px,2.3vw,32px);font-weight:600;line-height:1.2}.service-number{font-size:11px}.service-content{font-size:14px;padding-bottom:26px;padding-left:40px;line-height:1.8}.service-tags>span{font-size:11px;padding:4px 9px}.service-content>a{font-size:13px}.bim{gap:35px}.bim-visual{padding:20px 17px;background:var(--white)}.bim-visual-top{font-size:10px;letter-spacing:.8px}.bim-visual>img{margin-block:22px 10px;aspect-ratio:16/9;transform:none}.bim-visual-bottom{gap:15px;font-size:11px}.bim-copy{display:block}.bim-copy h2{font-size:clamp(32px,3.3vw,48px);letter-spacing:-.8px;font-family:var(--sans);font-weight:600;line-height:1.16}.bim-copy>p:not(.eyebrow){margin-top:22px;font-size:15px;line-height:1.8}.bim-copy .text-link{font-size:13px;gap:10px}.bim-points{font-size:14px}.process-grid{gap:31px 22px;margin-top:35px}.process-step{font-size:12px;padding-top:12px}.process-grid h3{font-size:26px;font-weight:600;line-height:1.2}.process-grid p{font-size:14px;line-height:1.8}.process .section-top>p{font-size:15px}.contact{grid-template-columns:1fr;gap:41px}.contact h2{font-size:clamp(32px,3.3vw,48px);letter-spacing:-.8px;font-family:var(--sans);font-weight:600;line-height:1.16}.contact-copy>p:not(.eyebrow){margin-top:22px;font-size:15px;line-height:1.75}.contact-phone{margin-top:28px}.contact-phone strong{font-size:22px;font-weight:600;letter-spacing:0}.contact-address{margin-top:25px}.contact-form-wrap{border-top:1px solid var(--line);padding-top:28px}.form-heading{font-size:20px;margin-bottom:25px;font-weight:600;letter-spacing:-.3px}.form-grid{grid-template-columns:1fr;gap:24px}.field input,.field select,.field textarea{font-size:16px;line-height:1.5;padding-bottom:13px}.field input::placeholder,.field textarea::placeholder{font-size:14px}.field select{font-size:16px;height:43px}.field label{font-size:13px}.field textarea{min-height:95px}.contact-form-wrap .button{font-size:13px}.form-note{font-size:12px;line-height:1.7}.form-status{font-size:13px}.site-footer{padding-block:35px 24px}.footer-top{display:grid;grid-template-columns:1fr auto;gap:23px;padding-bottom:29px}.footer-brand{gap:12px}.footer-brand .brand-symbol,.footer-brand .brand-symbol img{width:38px;height:52px}.footer-top>p{font-size:26px;grid-column:1/-1;grid-row:2;font-weight:600;line-height:1.25}.footer-top-link{font-size:12px;gap:0}.footer-top-link .icon{width:22px;height:22px}.footer-bottom{flex-direction:column;align-items:start;gap:16px;font-size:11px;padding-top:22px;padding-bottom:20px;line-height:1.6}.footer-links{font-size:12px}.floating-contact{bottom:16px;right:16px;width:45px;height:45px}.floating-contact>.icon{width:21px;height:21px}.floating-contact span{display:none;font-size:12px}.legal-page{padding-top:55px}.legal-page h1{font-size:clamp(36px,5vw,54px);font-weight:600;line-height:1.15;letter-spacing:-.8px}.legal-page p,.legal-page li{font-size:15px;line-height:1.8}.simple-header .brand-name{font-size:10px}.simple-header>a:last-child{font-size:13px}}
@media(max-width:370px){:root{--gutter:20px}.hero h1{font-size:clamp(40px,5.4vw,78px);letter-spacing:-1.5px;font-family:var(--sans);font-weight:600;line-height:1.12}.hero{min-height:680px}.hero-controls{gap:6px;font-size:11px}.hero-project>strong{font-size:14px;font-weight:600}.brand-name{font-size:11px;letter-spacing:1.6px;font-weight:700}.brand-name>span{font-size:9px;letter-spacing:2px;font-weight:400}.intro-strip{font-size:12px;letter-spacing:.2px}.section-top h2,.about h2,.expertise h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}.team-line{gap:18px}.team-line strong{font-size:13px}.process-grid{gap:28px 18px}.contact h2{font-size:clamp(32px,3.3vw,48px);font-family:var(--sans);font-weight:600;line-height:1.16;letter-spacing:-.8px}}

/* TM REV02: one type family, consistent image frames and brand accents. */
h1 em,h2 em,h3 em,.error-page em{font-style:normal}
h2 em{color:var(--blue)}
.expertise h2 em{color:var(--cyan)}
.eyebrow:not(.light){color:var(--accent-text)}
.project-open{background:var(--cyan);color:var(--graphite)}
.project-image{flex-shrink:0}
.no-js-gallery img{width:100%;aspect-ratio:16/9;object-fit:cover}
.no-js-gallery figcaption{padding-top:12px;font-size:15px}
.project-meta{padding:20px 0 16px}
.footer-top-link{white-space:nowrap}
@media(max-width:1150px){.project-grid{gap:36px 28px}.desktop-nav{gap:20px}.header-contact{font-size:11px}.brand-name{font-size:10px}.brand-name>span{font-size:8px}.contact-form-wrap .button{gap:16px}}
@media(min-width:601px) and (max-width:850px){.about,.expertise-layout,.contact{grid-template-columns:1fr;gap:36px}.about-copy{padding-top:0;max-width:650px}.about-signature{margin-top:28px}.team-line{flex-direction:row;gap:32px}.expertise-intro>p:not(.eyebrow){max-width:550px}.expertise-mark{display:none}.contact-form-wrap{padding-top:28px;border-top:1px solid var(--line)}.form-grid{grid-template-columns:1fr 1fr}.field.full{grid-column:1/-1}.footer-top>p{font-size:23px}}
@media(max-width:600px){.hero h1{font-size:clamp(38px,9.7vw,50px);letter-spacing:-1px}.hero-description{font-size:15px}.hero-content .eyebrow{font-size:10px}.hero-project>span{font-size:9px}.hero-project strong,.hero-project>strong{font-size:12px}.hero-controls{font-size:10px}.intro-strip{font-size:10px;letter-spacing:0}.intro-strip i{padding-inline:4px}.brand-name{font-size:10px;letter-spacing:1.3px}.brand-name>span{font-size:8px;letter-spacing:1.8px}.project-grid{grid-template-columns:1fr;gap:30px}.project-meta{min-height:88px;padding:16px 0}.project-meta h3{font-size:22px}.project-meta p{font-size:12px}.project-image,.project-card:nth-child(even) .project-image{aspect-ratio:16/9}.team-line{gap:20px;flex-wrap:wrap}.team-line strong{font-size:12px}.team-line span{font-size:11px}.process-grid{gap:32px 24px}.process-grid h3{font-size:23px}.process-grid p{font-size:13px}.bim-visual-top{font-size:9px}.bim-visual-bottom{font-size:10px;gap:12px}.footer-top-link{font-size:0}.footer-bottom{font-size:10px}.no-js-gallery{grid-template-columns:1fr}.simple-header>a:last-child{font-size:12px}}
@media(max-width:370px){.hero h1{font-size:37px}.hero-project>strong{font-size:11px}.hero-controls{gap:6px}.intro-strip{font-size:9px}.brand-name{font-size:9px}.brand-name>span{font-size:7px}.process-grid{grid-template-columns:1fr;gap:26px}.bim-visual-bottom{font-size:9px;gap:10px}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-ready .reveal{opacity:1;transform:none}.hero-media img{transition:none}}
@media print{.site-header,.hero-bottom,.filters,.portfolio-more,.floating-contact,.contact-form-wrap,.dialog-close,.gallery-controls,.gallery-info-toggle{display:none!important}.hero{height:auto;min-height:350px}.hero-content{padding-block:65px}.hero h1{font-size:clamp(40px,5.4vw,78px);font-family:var(--sans);font-weight:600;line-height:1.12;letter-spacing:-1.5px}.section-pad{padding-block:35px}.motion-ready .reveal{opacity:1;transform:none}.project-card:nth-child(even){padding-top:0}.project-card{break-inside:avoid;align-self:stretch}.expertise,.site-footer{background:white;color:#373435}.expertise p,.expertise .light-link{color:#373435}.service-content{display:block;font-size:14px;line-height:1.8}.service{break-inside:avoid}.footer-bottom{font-size:11px;line-height:1.6}.project-dialog[open]{position:static;display:block;width:100%;height:auto;max-height:none;padding:0;overflow:visible;background:white}.gallery-viewport{display:block;height:auto}.gallery-shell{width:100%!important}.gallery-summary{max-height:none;overflow:visible;background:none}}

/* Keep the cover controls aligned when no portfolio project is attached. */
.hero-project[hidden]+.hero-controls{margin-left:auto}

/* REV05: official artwork and BIM emphasis within the approved layout. */
.brand.official-brand{display:block;width:236px;flex-shrink:0;padding:5px 9px;background:#fefefe;line-height:0}
.official-brand .official-logo{display:block;width:100%;height:auto;object-fit:contain}
.site-header.is-sticky .official-brand{width:210px;padding:4px 8px}
.footer-brand.official-brand{width:256px;padding:10px 12px}
.simple-header .official-brand{width:220px}
.hero-description{max-width:650px}
.bim-points li{align-items:flex-start;line-height:1.65;padding-block:8px}
.bim-points li:before{margin-top:8px}
.bim-points strong{font-weight:700;color:var(--graphite)}
.bim-details{grid-column:1/-1;margin:18px 0 22px;border-block:1px solid var(--line);font-size:14px;line-height:1.75}
.bim-details summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;color:var(--graphite);font-weight:600}
.bim-details summary::-webkit-details-marker{display:none}
.bim-details summary>span{color:var(--accent-text);font-size:22px;line-height:1;transition:transform .2s}
.bim-details[open] summary>span{transform:rotate(45deg)}
.bim-details>div{padding:0 0 16px;color:var(--muted)}
.bim-details p+p{margin-top:12px}
@media(min-width:851px) and (max-width:1150px){.site-header .official-brand{width:200px}.header-inner{gap:18px}.desktop-nav{gap:17px}.header-contact{padding:11px 12px;gap:12px}}
@media(max-width:850px){.brand.official-brand,.site-header.is-sticky .official-brand{width:198px;padding:5px 8px}.footer-brand.official-brand{width:236px;padding:9px 11px}.simple-header .official-brand{width:200px}.bim-copy .bim-details{grid-column:1/-1}}
@media(max-width:600px){.brand.official-brand,.site-header.is-sticky .official-brand{width:184px}.footer-brand.official-brand{width:220px}.simple-header{gap:18px;flex-wrap:wrap}.hero-description{max-width:100%}.bim-details{font-size:13px}.bim-details summary{font-size:13px}}
@media(max-width:370px){.brand.official-brand,.site-header.is-sticky .official-brand{width:174px}.footer-brand.official-brand{width:205px}}

/* REV06 — integrar em dist/styles.css. O novo link ocupa a foto do hero;
   texto e controles mantêm a aparência e suas ações próprias. */
.hero-segment-link {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  cursor: pointer;
}
.hero-segment-link:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: -6px;
}
.hero-content {
  position: relative;
  z-index: 1;
  pointer-events: none;
}
.hero-bottom {
  z-index: 1;
  pointer-events: none;
}
.hero-content a,
.hero-content button,
.hero-bottom a,
.hero-bottom button {
  pointer-events: auto;
}
@media print {
  .hero-segment-link { display: none; }
}

/* REV06 — marca oficial sem placa de fundo, adaptada ao contraste. */
.brand.official-brand,.site-header.is-sticky .official-brand,.footer-brand.official-brand,.simple-header .official-brand{background:transparent;padding:0}
.official-brand .logo-on-dark{display:block}
.official-brand .logo-on-light{display:none}
.site-header.is-sticky .logo-on-dark,.simple-header .logo-on-dark{display:none}
.site-header.is-sticky .logo-on-light,.simple-header .logo-on-light{display:block}
.site-header.menu-active .logo-on-dark{display:block}
.site-header.menu-active .logo-on-light{display:none}
