*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#ffffff;color:#282a27;font-family:Arial,Helvetica,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}header{height:145px;display:flex;justify-content:space-between;align-items:center;padding:0 5.2%}.brand{font-size:45px;letter-spacing:-3.4px;line-height:.9;font-weight:500}.brand span{display:block;font-size:11px;letter-spacing:4.2px;margin-top:13px;padding-left:3px}nav{display:flex;gap:37px;font-size:13px}nav a{padding:9px 0;position:relative}nav a[aria-current=page]:after{content:'';position:absolute;height:1px;background:currentColor;bottom:0;left:0;right:0}nav a:hover{opacity:.55}main{min-height:65vh}.home{padding:10px 5.2% 0}.hero-link{display:block;position:relative;overflow:hidden}.hero-link img{width:100%;height:calc(100vh - 247px);min-height:370px;max-height:900px;object-fit:cover;object-position:center;display:block;transition:transform 1s}.hero-link:hover img{transform:scale(1.025)}.caption{display:flex;justify-content:space-between;padding:19px 0 30px;font-size:12px;line-height:1.6}.muted{color:#777b73}.home-bottom{display:flex;align-items:flex-end;justify-content:space-between;padding:65px 0 95px;border-bottom:1px solid #d7d9d0}.home-bottom h1{font-size:clamp(26px,3.1vw,46px);font-weight:400;line-height:1.22;letter-spacing:-1.4px;margin:0;max-width:680px}.text-link{font-size:13px;border-bottom:1px solid #85897e;padding-bottom:9px}.page{padding:55px 5.2% 95px}.page-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:60px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px}.page h1{font-size:clamp(36px,4.8vw,68px);font-weight:400;letter-spacing:-2.3px;line-height:1.12;margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 34px}.project{display:block;text-align:left;background:none;border:0;padding:0;width:100%}.project-image{overflow:hidden;background:#e6e6df}.project img{width:100%;height:370px;object-fit:cover;display:block;transition:transform .7s}.project:hover img{transform:scale(1.035)}.project .caption{padding-bottom:0}.project .caption strong{font-weight:400;font-size:14px}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:70px}.about-layout img{width:100%;height:570px;object-fit:cover}.about-copy{padding:40px 0}.about-copy p{font-size:21px;line-height:1.65;letter-spacing:-.3px;margin:0 0 28px;max-width:480px}.about-copy .small{font-size:15px;color:#686d64;line-height:1.8}.contact-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:8vw;margin-top:90px}.contact-lead{font-size:clamp(24px,3vw,42px);font-weight:400;line-height:1.3;max-width:460px;margin:0 0 50px}.email{font-size:clamp(15px,1.8vw,25px);border-bottom:1px solid;padding-bottom:8px}.contact-data{display:grid;gap:35px;line-height:1.8}.contact-data p{margin:10px 0}.contact-data a:hover{text-decoration:underline}.map-link{font-size:12px;border-bottom:1px solid #8c9086}footer{display:flex;justify-content:space-between;padding:30px 5.2%;font-size:10px;color:#73786d;letter-spacing:.4px}dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border:0;padding:65px 5.2% 25px;background:#ffffff;color:inherit}dialog::backdrop{background:#ffffff}.close{position:absolute;right:5.2%;top:24px;border:0;background:none;padding:10px}.viewer-image{height:calc(100dvh - 180px);display:flex;align-items:center;justify-content:center}.viewer-image img{max-width:100%;max-height:100%;object-fit:contain}.detail-caption{display:flex;gap:30px;align-items:baseline;margin-top:22px;font-size:12px}.detail-caption h2{font-size:16px;font-weight:400;margin:0}.detail-caption>div{margin-left:auto;display:flex;gap:30px}.detail-caption button{border:0;background:none;padding:8px 0}body:has(dialog[open]){overflow:hidden}a:focus-visible,button:focus-visible{outline:2px solid #687763;outline-offset:6px}@media(min-width:1700px){.project img{height:500px}}@media(max-width:700px){header{height:130px;padding:25px 6%;align-items:flex-start}.brand{font-size:36px}.brand span{font-size:8px;letter-spacing:3.6px}nav{gap:15px;align-self:flex-end;font-size:12px}.home{padding:0 6%}.hero-link img{height:62vh;min-height:340px}.caption{font-size:10px}.home-bottom{display:block;padding:45px 0 60px}.home-bottom .text-link{display:inline-block;margin-top:30px}.page{padding:35px 6% 65px}.page-head{margin-bottom:40px;gap:20px}.page h1{letter-spacing:-1.5px}.grid{grid-template-columns:1fr;gap:38px}.project img{height:300px}.about-layout,.contact-layout{grid-template-columns:1fr;gap:30px;margin-top:40px}.about-layout img{height:380px}.about-copy{padding:0}.about-copy p{font-size:19px}.contact-lead{margin-bottom:35px}.contact-data{margin-top:30px}.detail-caption{flex-wrap:wrap;gap:10px}.detail-caption>div{width:100%;justify-content:space-between;margin:0}.viewer-image{height:calc(100dvh - 220px)}footer{padding:25px 6%;font-size:9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Compact project gallery */
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px}
.project img{height:auto;aspect-ratio:4/3;object-fit:cover}
.project .caption{display:block;padding-top:11px;line-height:1.5}
.project .caption strong{display:block;font-size:13px}
.project .caption .muted{display:block;font-size:11px;margin-top:3px}
@media(min-width:1700px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1100px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 18px}}
@media(max-width:700px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.project img{height:auto;aspect-ratio:4/3}.project .caption strong{font-size:12px}.project .caption .muted{font-size:10px}}
/* Brand, persistent navigation and edge-to-edge opening image */
header{position:sticky;top:0;z-index:20;background:#ffffff}
.brand{display:block;line-height:0;letter-spacing:normal;flex-shrink:0}
.brand img{display:block;width:215px;height:auto}
.home{padding:0}
.home>.caption{padding:19px 5.2% 30px}
.home-bottom{margin:0 5.2%}
@media(max-width:700px){header{height:150px;align-items:center;flex-wrap:wrap;gap:15px;padding:18px 6%}.brand img{width:172px}nav{width:100%;justify-content:space-between;align-self:auto}.home{padding:0}.home>.caption{padding:16px 6% 25px}.home-bottom{margin:0 6%}.hero-link img{height:calc(100svh - 215px);min-height:340px}}
/* Smaller logo and shared lower alignment */
header{align-items:flex-end;padding-top:30px;padding-bottom:30px}
.brand img{width:107.5px}
nav{margin-left:auto;align-self:flex-end;align-items:flex-end}
nav a{padding-top:9px;padding-bottom:0;line-height:1}
nav a[aria-current=page]:after{bottom:-7px}
@media(max-width:700px){header{height:105px;flex-wrap:nowrap;gap:18px;padding:20px 6%}.brand img{width:86px}nav{width:auto;justify-content:flex-end;gap:14px;font-size:11px}.hero-link img{height:calc(100svh - 170px)}}
@media(max-width:360px){header{gap:12px}nav{gap:10px;font-size:10px}}
/* Image-only home with the existing footer */
header{padding-left:2.4%}
main:has(.home){min-height:0}
.home .hero-link img{height:calc(100svh - 218px);min-height:320px;max-height:none}
footer{min-height:73px;align-items:center}
@media(max-width:700px){header{padding-left:2.4%}.home .hero-link img{height:calc(100svh - 178px);min-height:300px}}
/* Reduced header spacing */
header{height:95px;padding-top:22px;padding-bottom:22px}
.home .hero-link img{height:calc(100svh - 168px)}
@media(max-width:700px){header{height:75px;padding-top:16px;padding-bottom:16px}.home .hero-link img{height:calc(100svh - 148px)}}
/* About image and supplied institutional copy */
.about-layout{gap:5vw;align-items:start}
.about-layout img{height:auto;aspect-ratio:3/2;object-fit:cover}
.about-copy{padding:0}
.about-copy p{font-size:18px;line-height:1.75;max-width:none;margin:0 0 26px}
@media(max-width:700px){.about-layout{gap:30px}.about-layout img{height:auto}.about-copy p{font-size:17px}}
/* Compact, viewport-sized about composition */
.about-page h1{font-size:clamp(28px,2.8vw,40px);letter-spacing:-1px}
.about-page .page-head{margin-bottom:18px}
.about-page .about-layout{margin-top:24px;gap:4vw}
.about-page .about-copy p{font-size:clamp(13px,1.15vw,17px);line-height:1.6;margin:0}
.about-page .about-copy{display:flex;flex-direction:column;justify-content:space-between;gap:20px}
@media(min-width:701px){
main:has(.about-page){height:calc(100dvh - 168px);min-height:0}
.about-page{height:100%;padding-top:18px;padding-bottom:24px;display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.about-page .about-layout{min-height:0;align-items:stretch;grid-template-columns:1fr 1fr}
.about-page .about-layout img{width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:cover}
.about-page .about-copy{min-height:0}
}
@media(min-width:701px) and (max-height:700px){.about-page h1{font-size:28px}.about-page .page-head{margin-bottom:12px}.about-page .about-layout{margin-top:16px}.about-page .about-copy p{font-size:13px;line-height:1.45}.about-page .about-copy{gap:12px}}
@media(max-width:700px){.about-page{padding-top:20px;padding-bottom:25px}.about-page .about-layout{gap:20px}.about-page .about-copy p{font-size:14px;line-height:1.55}}
/* Continuous paragraphs with matching photo height */
.about-page .about-copy{justify-content:flex-start;gap:1em}
.about-page .about-copy p{font-size:clamp(15px,1.35vw,19px);line-height:1.75;margin:0}
.about-photo{position:relative;align-self:stretch;min-height:0}
.about-page .about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(min-width:701px){.about-page .about-layout{align-self:start;align-items:stretch}}
@media(min-width:701px) and (max-height:700px){.about-page .about-copy p{font-size:15px;line-height:1.6}}
@media(max-width:700px){.about-photo{aspect-ratio:3/2}.about-page .about-copy p{font-size:16px;line-height:1.7}}
/* Four-column seamless project gallery */
.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.project{position:relative;overflow:hidden;line-height:0}
.project img{display:block;width:100%;height:auto;aspect-ratio:4/3}
.project .caption{position:absolute;inset:auto 0 0;padding:30px 14px 14px;background:linear-gradient(transparent,rgba(0,0,0,.65));color:#fff;opacity:0;transition:opacity .2s;line-height:1.4;text-align:left;pointer-events:none}
.project .caption .muted{color:#eee}
.project:hover .caption,.project:focus-visible .caption{opacity:1}
@media(max-width:700px){.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.project .caption{padding:16px 5px 5px}.project .caption strong{font-size:9px}.project .caption .muted{display:none}}
/* Restore captions and row spacing; keep images adjacent horizontally */
.grid{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0;row-gap:30px}
.project{line-height:normal}
.project .caption{position:static;inset:auto;display:block;padding:11px 10px 0 0;background:none;color:#282a27;opacity:1;transition:none;line-height:1.5;pointer-events:auto}
.project .caption strong{display:block;font-size:13px}
.project .caption .muted{display:block;color:#777b73;font-size:11px;margin-top:3px}
@media(max-width:700px){.grid{column-gap:0;row-gap:25px}.project .caption{padding:9px 6px 0 0}.project .caption strong{font-size:10px}.project .caption .muted{display:block;font-size:9px}}
/* Office maps with adjacent contact details */
.contact-page{padding-top:35px;padding-bottom:55px}
.contact-page .page-head{margin-bottom:35px}
.office-list{display:grid;gap:40px}
.office{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;align-items:center}
.office iframe{display:block;width:100%;height:300px;border:0;background:#f0f0f0}
.office-info h1,.office-info h2{font-size:13px;line-height:1.4;letter-spacing:2px;text-transform:uppercase;font-weight:400;margin:0 0 22px}
.office-info p{font-size:16px;line-height:1.8;margin:0 0 16px}
.office-info p:last-child{margin-bottom:0}
.office-info a{overflow-wrap:anywhere}
.office-info a:hover{text-decoration:underline;text-underline-offset:4px}
@media(max-width:700px){.contact-page{padding-top:25px}.office{grid-template-columns:1fr;gap:24px}.office iframe{height:260px}.office-list{gap:45px}.office-info p{font-size:14px}}

.grid{align-items:start}




@font-face{font-family:Raleway;src:url('assets/raleway-regular.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
.about-page{font-family:Raleway,Arial,sans-serif}

body{font-family:Raleway,Arial,sans-serif}


/* Privacy and maps activated by the visitor */
footer{gap:16px;flex-wrap:wrap}footer a:hover{text-decoration:underline}.privacy-page{max-width:950px;margin:auto}.privacy-page .page-head{margin-bottom:22px}.privacy-page h1{font-size:32px;letter-spacing:-1px}.privacy-page h2{font-size:19px;font-weight:400;margin:32px 0 12px}.privacy-page p{font-size:16px;line-height:1.8}.privacy-page p a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.map-panel{position:relative;min-width:0;background:#f6f6f6;height:300px}.map-notice{height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:25px;gap:13px}.map-notice p{font-size:13px;line-height:1.6;margin:0;max-width:420px}.map-notice p:first-child{font-size:16px}.load-map{background:#fff;border:1px solid #aaa;padding:10px 17px}.map-notice a{font-size:11px;text-decoration:underline}.stop-map{position:absolute;bottom:12px;left:12px;background:#fff;border:1px solid #aaa;padding:8px 12px;font-size:11px}.map-panel iframe{height:100%}@media(max-width:700px){.map-panel{height:260px}.map-notice{padding:20px;gap:10px}.privacy-page h1{font-size:28px}}
