*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fbfbfb;color:#333;font-family:"Century Gothic",Arial,sans-serif;font-size:14px;line-height:1.6;letter-spacing:.5px}a{color:inherit;text-decoration:none}a:hover{color:#777}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #777;outline-offset:5px}.skip{position:fixed;left:20px;top:-100px;z-index:50;background:white;padding:12px}.skip:focus{top:10px}header{position:relative;display:flex;align-items:flex-start;justify-content:space-between;padding:50px;gap:40px;z-index:20}.brand{display:block;flex:0 0 320px}.brand img{display:block;width:100%;height:auto}nav{display:flex;justify-content:flex-end;align-items:flex-start;flex-wrap:wrap;gap:12px 24px;padding-top:15px;font-size:15px;letter-spacing:1px;max-width:850px}nav>a,.nav-group>a{white-space:nowrap}.nav-group{position:relative}.submenu-toggle{border:0;background:none;padding:0 0 0 7px;font-size:17px}.submenu{display:none;position:absolute;top:100%;left:-14px;padding:14px;background:#fbfbfb;min-width:190px;box-shadow:0 8px 20px #0001}.submenu a{display:block;line-height:1.6;padding:5px 0}.nav-group:hover .submenu,.nav-group:focus-within .submenu,.nav-group.open .submenu{display:block}.social{flex-basis:100%;display:flex;justify-content:flex-end;gap:17px;font-size:10px;text-transform:uppercase;color:#777;padding-top:12px}#menu-toggle{display:none}.landing{overflow:hidden}.landing header{position:absolute;top:0;left:0;width:100%;pointer-events:none}.landing header a,.landing header button,.landing nav{pointer-events:auto}.hero{height:100svh;min-height:420px;position:relative;background:#e8e8e8}.hero-slide{position:absolute;inset:0}.hero-slide>img{width:100%;height:100%;object-fit:cover}.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(#ffffff45,transparent 34%);pointer-events:none}.project-label{position:absolute;bottom:0;left:0;right:0;z-index:1;background:#222c;color:white;padding:15px 230px 15px 24px;font-size:14px;letter-spacing:4px;text-transform:uppercase;min-height:58px}.project-label:hover{color:white;background:#222}.hero-controls{position:absolute;bottom:7px;right:18px;display:flex;align-items:center;gap:12px;color:white;z-index:3}.hero-controls button{background:none;border:0;color:white;font-size:23px;padding:2px 8px}.hero-controls output{font-size:11px;letter-spacing:2px}.content{padding:50px;max-width:1600px;margin:0 auto 80px}h1,h2,h3{color:#222;line-height:1.2;letter-spacing:0;font-weight:700;margin:0 0 25px}h1{font-size:32px}h2{font-size:26px}h3{font-size:21px}p{margin:0 0 24px}.row{display:flex;flex-wrap:wrap;margin:0 -17px}.col{width:calc(var(--span)/12*100%);padding:0 17px;min-width:0}.text-block{margin:0 0 28px}.text-block:after{content:"";display:table;clear:both}.image-block{margin:0 0 32px;position:relative}.image-block>img{width:100%;height:auto;display:block}.image-block figcaption{position:absolute;inset:0;display:grid;place-content:center;color:white;text-align:center;background:#0002;font-size:48px;font-weight:bold}.image-block figcaption p{margin:0}.gallery{clear:both;margin:24px 0 48px}.gallery-slide{margin:0;background:#f4f4f4}.gallery-slide img{display:block;width:100%;height:70vh;max-height:950px;object-fit:contain}.gallery-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 0}.gallery-controls button{border:0;background:none;padding:4px 18px;font-size:25px}.gallery-controls output{font-size:12px;color:#666}.thumbnails{display:flex;gap:8px;overflow:auto;padding:4px 2px 12px}.thumbnail{border:2px solid transparent;padding:0;background:none;flex:0 0 86px;opacity:.55}.thumbnail[aria-pressed=true]{border-color:#333;opacity:1}.thumbnail img{display:block;width:82px;height:60px;object-fit:cover}.faq details{border-top:1px solid #bbb;padding:23px 0}.faq details:last-child{border-bottom:1px solid #bbb}.faq summary{list-style:none;cursor:pointer;font-size:21px;line-height:1.4;padding-right:40px;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:'+';position:absolute;right:4px;top:0;font-weight:300;font-size:25px}.faq details[open] summary:after{content:'âˆ’'}.faq details>div{padding:24px 0 0;max-width:1100px}.faq details p:last-child{margin-bottom:0}.map{width:100%;height:400px;border:0;margin-bottom:30px}.contact-form{max-width:900px}.contact-form label{display:block;margin-bottom:20px}.form-row{display:flex;gap:20px}.form-row label{width:50%}input,textarea{display:block;width:100%;border:1px solid #ccc;padding:12px;background:white;border-radius:0;margin-top:6px}textarea{resize:vertical}.submit{background:#272727;color:white;text-transform:uppercase;letter-spacing:2px;padding:15px 32px;border:0}.submit:disabled{opacity:.5}.honeypot{position:absolute;left:-10000px}.form-status{margin-top:20px}[hidden]{display:none!important}
@media(max-width:1100px){header{padding:30px;gap:25px}.brand{flex-basis:240px}nav{gap:10px 16px;font-size:14px}.content{padding:40px 30px}}
@media(max-width:800px){header{padding:14px 20px 0;min-height:130px}.brand{flex-basis:200px}.content{padding:75px 20px 0;margin-bottom:40px}#menu-toggle{display:flex;flex-direction:column;gap:4px;position:relative;z-index:22;background:none;border:0;padding:8px 0 8px 16px;margin-top:0}#menu-toggle span{width:19px;height:2px;background:#222;display:block}nav{display:none;position:fixed;inset:0;max-width:none;overflow:auto;padding:130px 28px 35px;background:#fbfbfb;flex-direction:column;gap:18px;font-size:18px;justify-content:flex-start}body.menu-open nav{display:flex}body.menu-open{overflow:hidden}body.menu-open .brand{z-index:22}.nav-group{width:100%}.submenu-toggle{float:right;padding:0 12px}.submenu{position:static;box-shadow:none;padding:12px 20px 0;background:transparent;font-size:16px}.nav-group:hover .submenu,.nav-group:focus-within .submenu{display:none}.nav-group.open .submenu{display:block}.social{flex-basis:auto;justify-content:flex-start;margin-top:20px;font-size:10px}.hero-slide>img{object-position:center}.project-label{padding:13px 18px 58px;font-size:11px;letter-spacing:2px;min-height:95px}.hero-controls{bottom:6px;right:14px}.row{display:block;margin:0}.col{width:100%;padding:0}h1{font-size:29px}.gallery-slide img{height:auto;max-height:75vh;min-height:200px}.image-block figcaption{font-size:30px}.faq summary{font-size:18px}.map{height:320px}.form-row{gap:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.image-block.floated{float:right;width:32%;margin:0 0 28px 35px}.project-video{width:100%;height:auto;aspect-ratio:16/9;border:0;margin:30px 0;display:block;clear:both}.content>.row>.col:after{content:'';display:block;clear:both}.landing header{background:linear-gradient(#ffffffb0,transparent)}
@media(max-width:800px){.image-block.floated{float:none;width:100%;margin:0 0 30px}.image-block.floated img{max-height:480px;object-fit:contain}}

/* Keep each thumbnail row centred, including galleries that wrap. */
.thumbnails{justify-content:center;flex-wrap:wrap;overflow:visible}

/* A full-width text-aligned wrapper centres the inline thumbnail row. */
.gallery .thumbnails{display:block;width:100%;text-align:center;overflow:visible;padding:4px 0 12px}
.gallery .thumbnail-row{display:inline-block;max-width:100%;font-size:0;line-height:0;text-align:center}
.gallery .thumbnail{display:inline-block;width:86px;margin:4px;vertical-align:top;line-height:normal}
.faq summary{font-family:Arial,Helvetica,sans-serif;letter-spacing:0}

/* Show photographs without a grey letterbox; group navigation centrally. */
.gallery .gallery-slide{background:transparent}
.gallery .gallery-controls{justify-content:center;gap:28px}
.gallery .gallery-controls output{min-width:48px;text-align:center}

@font-face{font-family:"Lato";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/lato-400.ttf")}
@font-face{font-family:"Lato";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/lato-700.ttf")}
@font-face{font-family:"Jost";font-style:normal;font-weight:400;font-display:swap;src:url("assets/fonts/jost-400.ttf")}
@font-face{font-family:"Jost";font-style:normal;font-weight:700;font-display:swap;src:url("assets/fonts/jost-700.ttf")}
/* Match the original site's humanist body type and geometric headings. */
body{font-family:"Lato",Arial,sans-serif}
h1,h2,h3,nav,.project-label,.faq summary{font-family:"Jost",Arial,sans-serif}
.content{max-width:820px}
h1{font-size:31px}
.image-block.floated{width:23%;margin-left:30px}
@media(max-width:800px){.image-block.floated{width:100%;margin-left:0}}

/* Front-page framing and tighter project galleries. */
.home-landing .hero-slide:nth-child(2)>img,
.home-landing .hero-slide:nth-child(5)>img,
.home-landing .hero-slide:nth-child(6)>img,
.home-landing .hero-slide:nth-child(10)>img{object-position:center 25%}
.gallery{margin-top:8px}
.text-block{margin-bottom:12px}
.gallery-slide img{width:auto;height:auto;max-width:100%;max-height:70vh;min-height:0;margin:0 auto}
.gallery .gallery-controls{padding:0;margin-top:3px;gap:28px}
.gallery .gallery-controls button{padding:0 18px;line-height:1.2}
@media(max-width:800px){.gallery-slide img{height:auto;min-height:0;max-height:75vh}}
.text-block p:last-child{margin-bottom:0}

/* A fixed photo stage keeps navigation stationary across different image ratios. */
.gallery{container-type:inline-size}
.gallery .gallery-slide{position:relative;height:min(66.667cqw,70vh);display:flex;align-items:center;justify-content:center}
.gallery .gallery-slide img{width:100%;height:100%;max-height:none;min-height:0;object-fit:contain}
.photo-hit{position:absolute;top:0;bottom:0;width:50%;padding:0;border:0;background:transparent;cursor:pointer}
.photo-hit-prev{left:0}.photo-hit-next{right:0}

/* Each hero photograph fades through white before the next one appears. */
.hero{background:#fff}
