@font-face{font-family:Montserrat;src:url('/assets/fonts/montserrat-500.ttf') format('truetype');font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:'Roboto Slab';src:url('/assets/fonts/roboto-slab-300.ttf') format('truetype');font-style:normal;font-weight:300;font-display:swap}
:root{--blue:#21409a;--orange:#f26522;--ink:#222;--muted:#565d6d;--line:#d8dfe9;--wash:#f2f5f9;--white:#fff;--heading:Montserrat,Arial,sans-serif;--body:'Roboto Slab',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#fff;font:300 1rem/1.75 var(--body)}a{color:var(--blue);text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:var(--heading);font-weight:500;line-height:1.15;color:var(--blue)}h1{font-size:clamp(2.2rem,4.2vw,4.2rem);letter-spacing:-.045em}h2{font-size:clamp(1.9rem,3.1vw,3.1rem);letter-spacing:-.035em}h3{font-size:1.4rem}p+p{margin-top:1.25rem}.skip{position:absolute;top:-100px;z-index:10;background:white;padding:1rem}.skip:focus{top:10px}.header{min-height:112px;padding:26px max(5vw,24px);display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.logo{width:292px;height:auto}.header nav{display:flex;align-items:center;gap:40px;font:500 .94rem/1.4 var(--heading)}.header a{text-decoration:none}.header nav a[aria-current=page]:not(.button){text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:9px}.button{display:inline-flex;align-items:center;justify-content:center;gap:22px;min-height:52px;padding:17px 24px;background:var(--blue);color:#fff;border:1px solid var(--blue);font:500 .95rem/1.45 var(--heading);text-decoration:none;cursor:pointer;transition:background .16s,color .16s}.button:hover{background:#142b70}.button-small{padding:13px 22px;min-height:48px}.button-light{background:#fff;color:var(--blue);border-color:#fff}.button-light:hover{background:#e5ecfa;color:var(--blue)}.button-outline{background:transparent;color:var(--blue)}.button-outline:hover{color:#fff}.menu-button{display:none}.hero{display:grid;grid-template-columns:1fr 1.07fr;min-height:620px}.hero-copy{padding:70px 4.5vw 76px max(5vw,24px);align-self:center}.eyebrow{font:500 .78rem/1.5 var(--heading);letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:24px;display:flex;align-items:center;gap:12px}.eyebrow:before{content:'';width:30px;height:3px;background:var(--orange)}.hero h1{max-width:600px}.lead{font-size:1.15rem;line-height:1.8;margin:27px 0 32px;max-width:620px}.hero-media{position:relative;min-height:600px;overflow:hidden}.hero-media>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.hero-media figcaption{position:absolute;bottom:28px;left:30px;right:30px;background:rgba(255,255,255,.94);padding:16px 20px;border-left:4px solid var(--orange);font:500 .9rem/1.5 var(--heading);color:var(--blue)}.section{padding:90px max(5vw,24px)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:38px}.section-head h2{max-width:650px}.text-link{font:500 .95rem/1.6 var(--heading)}.about{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;border-top:1px solid var(--line)}.about p{max-width:760px;font-size:1.15rem}.about .text-link{display:inline-block;margin-top:26px}.photo-strip{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:55px}.photo-strip img{width:100%;height:310px;object-fit:cover}.testimonials{background:var(--blue);color:#fff}.testimonials h2,.testimonials .eyebrow{color:#fff}.quotes{display:grid;grid-template-columns:1fr 1fr;gap:5vw}.quotes blockquote{margin:0;border-top:1px solid #ffffff50;padding-top:30px}.quote-mark{font:500 4.5rem/.8 Georgia,serif;color:#ffb085}.quotes blockquote p{font-size:1.1rem;line-height:1.9;margin-top:18px}.quotes cite{font:500 .85rem/1.5 var(--heading);display:block;margin-top:24px;font-style:normal}.page-intro{padding:74px max(5vw,24px) 60px;max-width:1150px}.page-intro .lead{max-width:780px;margin-bottom:0}.projects{padding-top:10px}.project{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin:0 0 72px;border-top:1px solid var(--line);padding-top:45px;align-items:start}.project>img{height:420px;object-fit:cover;width:100%}.project .address{font:500 .9rem/1.6 var(--heading);margin:18px 0 22px;color:var(--muted)}.project p{margin-bottom:25px}.project summary{font:500 .9rem/1.5 var(--heading);cursor:pointer;margin:20px 0;color:var(--blue)}.project .button{margin-top:15px}.contact-grid{padding-top:0;display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw}.contact-card{padding:32px 0;border-top:3px solid var(--orange)}.contact-card h2{font-size:1.5rem;margin-bottom:22px}.contact-card a{display:block;overflow-wrap:anywhere;margin:12px 0}.contact-card address{font-style:normal;margin-top:28px}.form-panel{background:var(--wash);padding:38px}.form-panel h2{font-size:1.6rem;margin-bottom:16px}.form-panel>p{margin-bottom:25px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{display:block;font:500 .86rem/1.5 var(--heading);margin-bottom:8px;color:var(--blue)}input,select,textarea{display:block;width:100%;border:1px solid #a5afbf;background:white;border-radius:0;padding:13px;font:400 1rem/1.5 Arial,sans-serif;margin-bottom:21px;min-height:48px;color:var(--ink)}textarea{min-height:140px;resize:vertical}.form-note{font-size:.88rem;line-height:1.6;margin-top:17px}.form-status{font-size:.95rem;margin-top:16px}.video-section{background:var(--wash)}video{width:100%;max-height:660px;background:#14233b}.footer{border-top:1px solid var(--line);padding:46px max(5vw,24px) 30px;display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.footer img{width:250px;height:auto}.footer div{display:flex;justify-content:end;gap:30px;font:500 .85rem/1.5 var(--heading)}.footer p{grid-column:1/-1;font:400 .78rem/1.6 Arial,sans-serif;color:var(--muted);border-top:1px solid var(--line);padding-top:22px}.not-found{min-height:55vh}.preview-note{padding:12px 5vw;background:#fff1d6;color:#503a0c;font:400 .9rem/1.6 Arial,sans-serif}
@media(min-width:1600px){.hero-copy{padding-left:max(5vw,calc((100vw - 1500px)/2))}.section{padding-left:max(5vw,calc((100vw - 1450px)/2));padding-right:max(5vw,calc((100vw - 1450px)/2))}}
@media(max-width:900px){.logo{width:235px}.header{padding:22px 24px;min-height:94px}.header nav{gap:22px}.hero{grid-template-columns:1fr 1fr;min-height:550px}.hero-copy{padding:50px 30px}.hero-media{min-height:550px}h1{font-size:2.8rem}.lead{font-size:1.05rem}.section{padding:65px 30px}.about{gap:40px}.project{gap:32px}.project>img{height:320px}.contact-grid{gap:35px;grid-template-columns:.8fr 1.2fr}.form-panel{padding:24px}.form-row{grid-template-columns:1fr;gap:0}}
@media(max-width:650px){.header{min-height:89px;flex-wrap:wrap;gap:0;padding:24px}.logo{width:220px}.menu-button{display:flex;align-items:center;gap:12px;border:0;background:none;padding:10px 0 10px 10px;font:500 .85rem/1.5 var(--heading);color:var(--blue)}.header nav{width:100%;padding-top:23px;gap:25px;justify-content:space-between}.js .header nav{display:none}.js .header nav.is-open{display:flex}.header nav .button{padding:11px 14px;min-height:44px}.hero{display:flex;flex-direction:column}.hero-copy{padding:45px 24px 42px}.hero h1{font-size:2.65rem}.eyebrow{font-size:.75rem;margin-bottom:18px}.hero .lead{margin:23px 0 26px}.hero-media{min-height:400px}.hero-media figcaption{left:24px;right:24px;bottom:24px;font-size:.85rem}.section{padding:56px 24px}.section-head{align-items:start;flex-direction:column;gap:20px}.about,.quotes,.contact-grid,.project{grid-template-columns:1fr;gap:30px}.about p{font-size:1.05rem}.photo-strip{gap:12px;margin-top:32px}.photo-strip img{height:185px}.quotes{gap:40px}.quotes blockquote p{font-size:1rem}.page-intro{padding:46px 24px}.page-intro h1{font-size:2.65rem}.projects{padding-top:0}.project{padding-top:27px;margin-bottom:52px}.project>img{height:280px}.contact-grid{padding-top:0}.form-panel{padding:27px 22px}.footer{padding:36px 24px 24px;grid-template-columns:1fr}.footer div{justify-content:start;gap:28px}.footer img{width:235px}.footer p{margin-top:0}.hero .button{max-width:100%;font-size:.86rem;padding:16px 18px;gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.hero-media figcaption{display:flex;align-items:center;justify-content:space-between;gap:16px}.gallery-controls{display:none;align-items:center;gap:7px;flex-shrink:0}.js .gallery-controls{display:flex}.gallery-controls button{width:36px;height:36px;border:1px solid #b5c2dc;background:white;color:var(--blue);font:500 1.25rem var(--heading);cursor:pointer}.gallery-controls button:hover{background:var(--blue);color:white}#gallery-count{font:500 .75rem var(--heading);white-space:nowrap}@media(max-width:900px){.hero-media figcaption{flex-wrap:wrap}.gallery-controls button{width:40px;height:40px}}@media(max-width:650px){.hero-media figcaption{gap:10px;padding:12px 16px}.hero-media figcaption>span:first-child{font-size:.8rem}}
.form-panel form{display:none}.js .form-panel form{display:block}

/* Industrial portfolio */
.project-jump{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.project-jump a{display:flex;align-items:center;gap:26px;padding:12px 18px;border:1px solid var(--line);text-decoration:none;font:500 .9rem/1.5 var(--heading)}.project-jump a:hover{border-color:var(--blue);background:var(--wash)}.project-jump span{color:var(--muted);font-size:.75rem}.project-group{scroll-margin-top:24px}.project-group>.section-head{margin-bottom:26px}.group-intro{max-width:330px;color:var(--muted)}.project-group .project:last-child{margin-bottom:0}.project-group+.project-group{background:var(--wash);border-top:1px solid var(--line);padding-top:75px}.project-media img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.project-media figcaption{font:500 .75rem/1.6 var(--heading);color:var(--muted);margin-top:12px}.project-copy h3{font-size:clamp(1.8rem,2.8vw,2.7rem);letter-spacing:-.035em}.project-status{display:inline-block;padding:5px 11px;margin-bottom:20px;border:1px solid var(--line);color:var(--blue);font:500 .72rem/1.5 var(--heading);letter-spacing:.04em}.project-copy .eyebrow{margin-bottom:15px}.project-copy p:last-child{margin-bottom:0}.project-copy .button{max-width:100%}@media(max-width:650px){.project-group+.project-group{padding-top:48px}.project-jump{gap:10px}.project-jump a{font-size:.82rem;gap:16px}.project-group>.section-head{gap:8px}.project-group .project{gap:24px}.project-copy .button{font-size:.85rem;padding:15px 18px;gap:12px}}
@media(max-width:850px){.project-group .project{grid-template-columns:1fr;gap:24px}.project-group>.section-head{align-items:start;flex-direction:column;gap:12px}.project-group .group-intro{max-width:none}}

/* Project renders and rooming accommodation */
.project-media .project-render{aspect-ratio:auto}.project-progress{margin-top:18px}.project-progress summary{margin:0;padding:8px 0}.project-progress[open] summary{margin-bottom:12px}.project-progress summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}.rooming-intro{max-width:820px;margin-bottom:36px;color:var(--muted)}.project-copy .rooming-summary{margin-top:22px}

.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.cf-turnstile{margin:1.2rem 0;min-height:65px}.button:disabled{opacity:.55;cursor:not-allowed}.form-status{min-height:1.5em}
