:root{--ink:#17231e;--paper:#f6f5ef;--green:#306b54;--mint:#dce8db;--yellow:#f1c849;--red:#d76048;--line:#d4d7ce}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}.site-header{height:82px;padding:0 clamp(20px,5vw,78px);display:flex;align-items:center;gap:32px;border-bottom:1px solid var(--line);background:rgba(246,245,239,.94);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:800;line-height:1.05}.brand small{display:block;font-size:10px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;margin-top:4px}.brand-mark{width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-family:Newsreader,serif;font-size:18px}.nav{display:flex;gap:28px;margin-left:auto;font-size:14px;font-weight:700}.nav a{padding:29px 0 25px;border-bottom:3px solid transparent}.nav a:hover,.nav a.active{border-color:var(--green)}.header-call{font-size:14px;font-weight:800}.menu-toggle{display:none}.hero{min-height:620px;display:grid;grid-template-columns:1.02fr .98fr}.hero-copy{padding:clamp(72px,10vw,145px) clamp(24px,7vw,110px);display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.3px;color:var(--green);margin:0 0 18px}.hero h1,.section-heading h2,.contact h2{font-family:Newsreader,Georgia,serif;font-size:clamp(46px,5.4vw,80px);font-weight:600;line-height:.96;letter-spacing:0;margin:0}.hero h1 em,.contact h2 em{font-weight:500;color:var(--green)}.lead{max-width:490px;font-size:17px;margin:31px 0 33px;color:#435149}.hero-actions{display:flex;align-items:center;gap:25px}.button{border:0;border-radius:5px;padding:15px 22px;font:700 14px Manrope,Arial;cursor:pointer;display:inline-block;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--green);color:#fff}.text-link{font-size:15px;font-weight:800;text-decoration:underline;text-decoration-color:var(--yellow);text-underline-offset:5px}.hero-photo{min-height:450px;background:#b9cfb8;overflow:hidden}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:64% center;display:block}.services{padding:84px clamp(24px,7vw,110px);background:var(--mint)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:46px}.service-grid article{border-top:1px solid rgba(23,35,30,.3);padding-top:15px}.service-grid span,.gallery-card span{font-size:11px;font-weight:800;color:var(--green)}.service-grid h2{font:600 35px/1 Newsreader,Georgia,serif;margin:31px 0 12px}.service-grid p{margin:0;max-width:260px;font-size:15px}.work{padding:104px clamp(24px,7vw,110px)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:43px;gap:30px}.section-heading h2{font-size:64px}.section-heading>p{max-width:290px;margin:0;font-size:15px;color:#57625b}.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:260px 260px;gap:14px}.gallery-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:19px;color:#fff;overflow:hidden}.gallery-card.large{grid-row:span 2;padding:0}.gallery-card.large img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:64% center;filter:brightness(.72)}.gallery-card>div:last-child{position:relative;z-index:1}.gallery-card h3{font:600 26px/1.03 Newsreader,Georgia,serif;margin:10px 0 0;max-width:190px}.tone-green{background:var(--green)}.tone-yellow{background:var(--yellow);color:var(--ink)}.tone-red{background:var(--red)}.project-icon{font:50px/1 Newsreader,Georgia,serif;opacity:.9}.gallery-note{font-size:13px;color:#657069;margin:17px 0 0}.contact{background:var(--ink);color:#f9faf5;display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(48px,9vw,150px);padding:105px clamp(24px,10vw,160px)}.contact .eyebrow{color:var(--yellow)}.contact h2{font-size:clamp(44px,4.6vw,68px)}.contact-intro>p:not(.eyebrow):not(.areas){max-width:360px;color:#c5d2ca;margin:29px 0}.phone{font:600 34px Newsreader,Georgia,serif;display:block}.email{display:block;font-size:15px;text-decoration:underline;text-underline-offset:5px;color:var(--yellow);margin-top:11px}.areas{font-size:13px;color:#c5d2ca;margin-top:55px}.areas strong{color:#fff}.contact-form{display:grid;gap:17px;padding-top:7px}.contact-form label{font-size:12px;font-weight:800;letter-spacing:.2px}.contact-form input:not([type=file]),.contact-form textarea{font:400 15px Manrope,Arial;width:100%;margin-top:6px;padding:12px 0;border:0;border-bottom:1px solid #75857c;background:transparent;color:#fff;outline:none;border-radius:0}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--yellow)}.contact-form textarea{resize:vertical}.contact-form .file-label{margin-top:4px;border:1px dashed #75857c;padding:14px;color:#fff}.file-label span{font-weight:400;color:#c5d2ca;margin-left:5px}.file-label input{display:block;margin-top:8px;color:#c5d2ca;max-width:100%}.contact-form .primary{justify-self:start;margin-top:5px;background:var(--yellow);color:var(--ink)}.form-status{font-size:11px;color:#aebcb4;margin:0}footer{padding:22px clamp(24px,7vw,110px);display:flex;justify-content:space-between;background:#112019;color:#b5c2ba;font-size:12px}@media(max-width:800px){.site-header{height:67px;gap:14px;padding:0 20px}.header-call{display:none}.menu-toggle{display:block;margin-left:auto;border:0;background:transparent;color:var(--ink);font:800 13px Manrope,Arial}.nav{display:none;position:absolute;left:0;right:0;top:67px;padding:14px 20px 20px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:2px}.nav.open{display:flex}.nav a{padding:9px 0;border:0}.hero{grid-template-columns:1fr}.hero-copy{padding:70px 25px 58px}.hero-photo{height:310px;min-height:0}.service-grid{grid-template-columns:1fr;gap:28px}.services,.work{padding:65px 25px}.section-heading{display:block}.section-heading h2{font-size:52px}.section-heading>p{margin-top:20px}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:280px 180px 180px}.gallery-card.large{grid-column:span 2;grid-row:auto}.contact{grid-template-columns:1fr;padding:70px 25px;gap:50px}.contact h2{font-size:53px}.phone{font-size:32px}footer{padding:20px 25px;gap:12px;flex-direction:column}}
