:root{--ink:#17231f;--pine:#1f342d;--sand:#e8e1d3;--paper:#f8f7f3;--clay:#bf5b38;--line:#d8d7d0;--max:1180px;--radius:18px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Arial,Helvetica,sans-serif}
h1,h2,h3,p{margin-top:0}
h1,h2,h3,.brand{font-family:Georgia,'Times New Roman',serif}
h1{font-size:clamp(3.4rem,7vw,6.6rem);line-height:.94;letter-spacing:-.06em}
h2{font-size:clamp(2.2rem,4.4vw,4.25rem);line-height:1;letter-spacing:-.05em}
h3{font-size:1.55rem;line-height:1.1}
.container{width:min(calc(100% - 3rem),var(--max));margin:auto}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link{position:absolute;left:1rem;top:-4rem;background:#fff;color:var(--ink);padding:.6rem 1rem;z-index:20}
.skip-link:focus{top:1rem}
.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 max(1.5rem,calc((100vw - var(--max))/2));background:var(--paper);position:sticky;top:0;z-index:10;border-bottom:1px solid transparent}
.brand{display:inline-flex;align-items:baseline;gap:.28rem;color:inherit;text-decoration:none;font-size:1.25rem;letter-spacing:-.055em}
.brand span{display:grid;place-items:center;width:2rem;height:2rem;background:var(--clay);color:white;font-family:Arial,sans-serif;font-size:.72rem;font-weight:800;letter-spacing:-.08em}
.brand b{font-weight:700}
nav{display:flex;align-items:center;gap:2rem}
nav a{color:inherit;text-decoration:none;font-size:.9rem;font-weight:700}
.nav-cta{background:var(--ink);color:white;padding:.65rem 1rem}
.menu-toggle{display:none}
.hero{min-height:calc(100vh - 78px);height:min(800px,calc(100vh - 78px));position:relative;isolation:isolate;color:#fff;display:grid;align-items:end;padding-bottom:10rem;overflow:hidden}
.hero-image,.hero-image img,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-image{z-index:-2;margin:0}
.hero-image img{display:block}
.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(10,23,18,.85),rgba(10,23,18,.42) 55%,rgba(10,23,18,.18))}
.hero-content{max-width:880px}
.eyebrow{margin-bottom:1rem;color:var(--clay);font-size:.73rem;letter-spacing:.16em;font-weight:800;text-transform:uppercase}
.hero .eyebrow{color:#f4c3a5}
.hero p:not(.eyebrow){max-width:630px;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.55}
.button-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:48px;padding:.75rem 1.15rem;border:1px solid transparent;border-radius:0;text-decoration:none;font-weight:800;font-size:.9rem;cursor:pointer}
.button-primary{background:var(--clay);color:white}
.button-primary:hover{background:#9d4529}
.button-ghost{border-color:#fff;color:#fff}
.hero-call{position:absolute;bottom:0;right:max(1.5rem,calc((100vw - var(--max))/2));color:white;text-decoration:none;background:var(--pine);padding:1.35rem 1.8rem;min-width:235px}
.hero-call span,.hero-call b{display:block}
.hero-call span{font-size:.7rem;text-transform:uppercase;letter-spacing:.13em;color:#bed0c2}
.hero-call b{font-family:Georgia,serif;font-size:1.55rem}
.intro{padding:8rem 0}
.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:8rem;align-items:start}
.intro p{font-size:1.15rem}
.services-section{background:var(--sand);padding:7rem 0}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3.5rem}
.section-heading h2{max-width:670px}
.section-heading>p{max-width:320px;margin:0}
.service-list{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#c9c2b6;border:1px solid #c9c2b6}
.service-card{background:var(--sand);padding:2rem 1.5rem;min-height:300px}
.service-card h3{margin-bottom:1rem}
.service-card p{font-size:.9rem;min-height:100px}
.service-card ul{margin:1.25rem 0 0;padding:0;list-style:none;font-size:.83rem}
.service-card li{padding:.35rem 0;border-top:1px solid #cbc3b5}
.projects-section{padding:8rem 0}
.projects-heading{margin-bottom:1.5rem}
.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}
.filter{border:1px solid var(--line);background:transparent;padding:.55rem .9rem;font-weight:800;font-size:.82rem;cursor:pointer}
.filter.is-active,.filter:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.project-card{display:block;position:relative;border:0;background:var(--ink);padding:0;overflow:hidden;aspect-ratio:1/1;cursor:pointer;text-align:left}
.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.project-card:hover img,.project-card:focus-visible img{transform:scale(1.06)}
.project-card span{position:absolute;inset:auto 0 0;padding:2rem 1rem 1rem;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.8));font-size:.8rem;opacity:0;transform:translateY(10px);transition:.25s}
.project-card:hover span,.project-card:focus-visible span{opacity:1;transform:translateY(0)}
.project-card em{display:block;color:#e9c2a6;font-size:.65rem;font-style:normal;letter-spacing:.1em;text-transform:uppercase}
.about-section{background:var(--pine);color:#f8f7f3;padding:8rem 0}
.about-grid{display:grid;grid-template-columns:1fr .55fr;gap:10rem}
.about-grid>div>p:not(.eyebrow){max-width:640px;font-size:1.14rem}
.about-section .eyebrow{color:#f4c3a5}
.about-note{align-self:end;border-top:1px solid #72867c;padding-top:1.3rem}
.about-note strong{font-family:Georgia,serif;font-size:1.45rem}
.about-note p{color:#d9e2da}
.text-link{color:#fff;text-decoration-color:var(--clay);font-weight:800}
.contact-section{padding:8rem 0}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9rem}
.contact-details{display:grid;gap:1rem;margin-top:3rem}
.contact-details>*{border-top:1px solid var(--line);padding-top:.85rem}
.contact-details a{color:inherit;text-decoration:none}
.contact-details small,.contact-details strong{display:block}
.contact-details small{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#6b726d}
.contact-details strong{font-size:1.1rem}
form{display:grid;gap:1rem}
label{font-size:.77rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
input,textarea,select{display:block;width:100%;margin-top:.4rem;border:1px solid #bfc2bc;background:#fff;padding:.78rem;font:inherit;letter-spacing:0;text-transform:none;color:var(--ink)}
textarea{resize:vertical}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-note{color:#68706c;font-size:.8rem;margin:0}
footer{background:#121b18;color:#e8e1d3;padding:2rem 0}
.footer-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.8rem}
.footer-row p{margin:0}
.footer-row>a:last-child{color:inherit}
.lightbox{border:0;padding:0;background:#111;color:#fff;width:min(100%,1100px);max-height:100%;overflow:hidden}
.lightbox::backdrop{background:rgba(0,0,0,.83)}
.lightbox figure{display:grid;place-items:center;margin:0;max-height:100vh}
.lightbox img{max-width:100%;max-height:86vh;display:block;object-fit:contain}
.lightbox figcaption{position:absolute;inset:auto 0 0;padding:2.2rem 5rem 1.2rem;background:linear-gradient(transparent,rgba(0,0,0,.88));width:100%}
.lightbox figcaption span,.lightbox figcaption strong{display:block}
.lightbox figcaption span{color:#f4c3a5;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em}
.lightbox figcaption strong{font:1.2rem Georgia,serif}
.lightbox button{position:absolute;z-index:1;border:0;background:rgba(0,0,0,.45);color:#fff;cursor:pointer}
.lightbox-close{right:1rem;top:1rem;width:42px;height:42px;font-size:2rem}
.lightbox-previous,.lightbox-next{top:50%;transform:translateY(-50%);width:46px;height:60px;font-size:1.5rem}
.lightbox-previous{left:0}
.lightbox-next{right:0}
@media(max-width:760px){.site-header{height:65px}
.menu-toggle{display:flex;flex-direction:column;gap:5px;border:0;background:transparent;padding:10px}
.menu-toggle i{width:23px;border-top:2px solid var(--ink)}
nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--paper);padding:1rem 1.5rem 1.5rem;align-items:stretch;gap:1rem;border-bottom:1px solid var(--line)}
nav.open{display:flex;flex-direction:column}
.nav-cta{text-align:center}
.hero{min-height:680px;height:calc(100svh - 65px);padding-bottom:8rem}
.hero-call{left:1.5rem;right:auto;padding:1rem 1.2rem}
.intro,.projects-section,.about-section,.contact-section{padding:5rem 0}
.intro-grid,.about-grid,.contact-grid{grid-template-columns:1fr;gap:2rem}
.section-heading{display:block}
.section-heading>p{margin-top:1rem}
.service-list{grid-template-columns:1fr 1fr}
.service-card{min-height:auto;padding:1.5rem 1rem}
.service-card p{min-height:0}
.project-grid{grid-template-columns:repeat(2,1fr);gap:.55rem}
.project-card span{opacity:1;transform:none;padding:1.3rem .7rem .65rem}
.projects-heading{display:block}
.form-row{grid-template-columns:1fr}
.footer-row{align-items:flex-start;flex-direction:column}
.footer-row p{order:3}
}
@media(max-width:420px){.container{width:min(calc(100% - 2rem),var(--max))}
.service-list{grid-template-columns:1fr}
.hero-call{left:1rem}
.hero-content{padding-bottom:1.5rem}
}
