:root{--paper:#f8f7f3;--ink:#272d29;--muted:#626961;--sage:#707f6d;--line:#d7dad2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #869e76;outline-offset:5px}.skip{position:absolute;top:-100px;background:white;padding:12px;z-index:10}.skip:focus{top:0}.header{min-height:124px;display:flex;align-items:center;justify-content:space-between;padding:16px 5.5%;gap:30px;border-bottom:1px solid var(--line)}.logo img{display:block;width:187px;height:auto;mix-blend-mode:multiply}nav{display:flex;align-items:center;gap:36px;font-size:14px}nav a:hover,.text-link:hover{color:var(--sage)}.nav-contact{border:1px solid var(--ink);padding:10px 21px}.hero{display:grid;grid-template-columns:1.06fr 1fr;min-height:680px}.hero-copy{padding:80px 9% 26px 10.5%;display:flex;align-items:flex-start;flex-direction:column}.eyebrow{font-size:12px;font-weight:600;letter-spacing:2px;margin:0 0 25px;display:flex;align-items:center;gap:12px}.eyebrow span{width:25px;height:1px;background:var(--sage)}h1,h2,h3,p,figure{margin-top:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.09;letter-spacing:-1.6px}h1{font-size:clamp(44px,4.65vw,75px);margin-bottom:28px}h1 em{color:var(--sage);font-weight:400}h2{font-size:clamp(35px,3.3vw,52px);margin-bottom:22px}h3{font-weight:400;font-size:21px;line-height:1.3;margin-bottom:10px}.intro{max-width:390px;color:var(--muted);font-size:17px;margin-bottom:30px}.button{display:inline-flex;justify-content:center;align-items:center;padding:15px 23px;background:var(--ink);color:var(--paper);font-size:14px;border:1px solid var(--ink);transition:background .2s}.button:hover{background:#455143}.text-link{font-size:14px;text-decoration:underline;text-underline-offset:6px;margin-top:18px}.hero-bottom{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:46px;font-size:12px;color:var(--muted)}.hero-bottom span:first-child{font-size:10px;letter-spacing:1.4px}.hero-image{margin:0;position:relative;min-height:680px;overflow:hidden}.hero-image img{display:block;position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 47%}.hero-image figcaption{position:absolute;bottom:25px;right:28px;background:rgba(248,247,243,.92);padding:10px 17px;font:italic 18px Georgia}.section{padding:95px 5.5%}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:42px}.section-heading h2{margin:0}.section-heading>p{max-width:365px;margin:0;color:var(--muted)}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.projects figure{margin:0}.project-photo{width:100%;padding:0;border:0;display:block;background:#e5e4df;position:relative;cursor:zoom-in;overflow:hidden}.project-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;transition:transform .5s}.project-photo:hover img{transform:scale(1.035)}.project-photo>span{position:absolute;bottom:14px;left:14px;padding:6px 12px;background:rgba(248,247,243,.94);font-size:12px}.projects figcaption{display:flex;justify-content:space-between;align-items:baseline;padding-top:20px}.projects figcaption h3{font:26px Georgia;margin-bottom:4px}.projects figcaption p,.projects figcaption>span{font-size:13px;color:var(--muted);margin:0}.services{background:#e9ece5;display:grid;grid-template-columns:1fr 1fr;gap:10%}.services-title{max-width:430px}.services-title>p:last-child{color:var(--muted);max-width:365px}.service-list article{border-top:1px solid #c6cdc1;padding:24px 0;display:flex;gap:25px}.service-list article:last-child{padding-bottom:0}.service-list article>span{font-size:12px;color:var(--sage);padding-top:4px}.service-list p{font-size:15px;line-height:1.6;color:var(--muted);margin:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;padding-top:12px}.steps article{border-top:1px solid var(--line);padding-top:26px}.steps span{font-size:11px;letter-spacing:1.5px;color:var(--sage)}.steps h3{font:27px Georgia;margin:20px 0 15px}.steps p{color:var(--muted);font-size:15px;margin:0;max-width:345px}.contact{background:var(--ink);color:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center}.contact .eyebrow{color:#c4cfbd}.contact h2{font-size:clamp(48px,5vw,76px)}.contact p{color:#d5d9d1}.contact-details{display:flex;flex-direction:column;align-items:flex-start}.light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.light:hover{background:#d4dccd;color:var(--ink)}.email{margin:23px 0;font-size:clamp(16px,1.9vw,26px);border-bottom:1px solid #7f897c;overflow-wrap:anywhere}.contact-details p{max-width:380px;font-size:14px}.contact-details>span{font-size:10px;letter-spacing:1.3px;margin-top:22px}footer{padding:28px 5.5%;display:flex;justify-content:space-between;gap:20px;font-size:12px}footer p{margin:0}footer a{text-decoration:underline;text-underline-offset:4px}dialog{border:0;padding:50px 22px 20px;background:var(--paper);max-width:95vw;max-height:94vh;text-align:center}dialog::backdrop{background:rgba(16,22,17,.9)}dialog img{display:block;max-width:85vw;max-height:72vh;object-fit:contain;margin:auto}dialog h2{font:22px Georgia;margin:15px 0 0}.close{position:absolute;top:10px;right:14px;background:none;border:0;cursor:pointer;padding:6px;font-size:14px}
@media(min-width:1600px){body{max-width:1800px;margin:auto}.hero-copy{padding-top:110px}.hero,.hero-image{min-height:780px}}@media(max-width:1000px){.header{gap:20px}.logo img{width:155px}nav{gap:19px}.hero-copy{padding-top:65px}.hero,.hero-image{min-height:640px}.projects{gap:18px}.section{padding-top:70px;padding-bottom:70px}.section-heading{gap:30px}.services{gap:6%}.steps{gap:25px}}@media(max-width:700px){.header{padding:15px 6%;min-height:100px;flex-wrap:wrap;justify-content:center;gap:16px}.logo img{width:150px}nav{width:100%;justify-content:center;gap:19px;font-size:13px}.nav-contact{padding:0;border:0}nav a:nth-child(3){display:none}.hero{display:flex;flex-direction:column;min-height:0}.hero-copy{padding:45px 6% 35px}.eyebrow{font-size:11px;margin-bottom:21px}h1{font-size:48px;letter-spacing:-1.5px}.intro{max-width:440px}.hero-bottom{display:none}.hero-image{min-height:440px;max-height:560px;height:115vw}.hero-image img{object-position:center 48%}.section{padding:58px 6%}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:22px;max-width:none}.projects{grid-template-columns:1fr;gap:36px}.project-photo img{aspect-ratio:4/5}.projects figcaption{padding-top:14px}.services{display:block}.services-title{max-width:none}.service-list{margin-top:30px}.service-list article{gap:18px}.steps{grid-template-columns:1fr;gap:30px}.steps p{max-width:none}.steps h3{margin-top:15px}.contact{grid-template-columns:1fr;gap:30px}.contact h2{font-size:58px}.contact-details .button{width:100%;text-align:center}.email{font-size:21px}.contact-details>span{font-size:9px}footer{flex-wrap:wrap;padding:26px 6%;gap:9px}footer p{width:100%}footer a{margin-top:6px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Flexible project collection and full photographic gallery. */
.projects{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}.project-photo img{aspect-ratio:4/3}.gallery-open{overflow:hidden}dialog{width:min(1000px,95vw);padding:48px 22px 18px}dialog>img{width:100%;height:55vh;max-height:55vh;max-width:100%;object-fit:contain}.viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px}.viewer-controls>div{min-width:0}.viewer-controls h2{margin:0;font-size:22px}.viewer-controls button{padding:10px 14px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;min-height:44px}.viewer-controls button:hover{background:#e9ece5}#viewer-count{font-size:14px;color:var(--muted);margin:4px 0 0}.thumbnails{display:flex;gap:10px;overflow-x:auto;max-width:100%;padding:8px 4px;margin-top:10px}.thumbnails button{flex:0 0 66px;padding:3px;border:2px solid transparent;background:transparent;cursor:pointer}.thumbnails button[aria-pressed=true]{border-color:var(--sage)}.thumbnails img{width:56px;height:56px;object-fit:cover;display:block}.project-photo>span{font-size:14px}@media(max-width:700px){.projects{grid-template-columns:1fr}.project-photo img{aspect-ratio:4/5}dialog{padding:48px 12px 12px}.viewer-controls{gap:8px}.viewer-controls h2{font-size:19px}.viewer-controls button{font-size:14px;padding:10px}.thumbnails button{flex-basis:58px}.thumbnails img{width:48px;height:48px}}
