*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,picture{max-width:100%}h1,h2,h3{margin:0;font-weight:400}p{margin:0}ul{margin:0;padding:0}address{font-style:normal}a{color:inherit}:focus-visible{outline:2px solid var(--oak);outline-offset:3px}::selection{background:var(--oak);color:#fff}.shell{width:100%;max-width:var(--shell);margin-inline:auto;padding-inline:var(--gutter)}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;padding:.75rem 1rem;background:var(--ink);color:var(--paper)}.skip-link:focus{left:1rem;top:1rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1.35rem;border:1px solid var(--oak);border-radius:var(--radius);background:var(--oak);color:#fff;font-size:.78rem;letter-spacing:.09em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .18s ease,border-color .18s ease,color .18s ease}.button:hover{background:var(--oak-dark);border-color:var(--oak-dark)}.button--small{padding:.5rem .9rem;font-size:.7rem}.button--ghost{background:0 0;border-color:rgba(246,241,231,.45);color:var(--paper)}.button--ghost:hover{background:rgba(246,241,231,.12);border-color:var(--paper)}.button--light{background:var(--paper);border-color:var(--paper);color:var(--ink)}.button--light:hover{background:#fff;border-color:#fff}.button--outline{background:0 0;border-color:var(--line);color:var(--ink)}.button--outline:hover{background:0 0;border-color:var(--ink);color:var(--ink)}.site-header{position:relative;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-block:1rem}.brand{display:inline-flex;flex-direction:column;line-height:1.1;text-decoration:none}.brand__name{font-family:var(--serif);font-size:1.45rem;letter-spacing:-.01em;color:var(--ink)}.brand__sub{margin-top:.35rem;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.nav__list{display:flex;gap:1.6rem;list-style:none}.nav__link{display:inline-block;padding-block:.35rem;border-bottom:1px solid transparent;color:var(--ink-soft);font-size:.82rem;text-decoration:none;transition:color .18s ease,border-color .18s ease}.nav__link:hover,.nav__link[aria-current=page]{color:var(--ink);border-color:var(--oak)}.site-header__actions{display:flex;align-items:center;gap:.5rem}.button .icon{flex:none;width:1.05em;height:1.05em;margin-top:-.05em}.site-header__email{background:0 0;border-color:var(--line);color:var(--ink)}.site-header__email:hover{background:0 0;border-color:var(--ink);color:var(--ink)}.btn-short{display:none}.lang{display:flex;gap:.3rem}.lang__link{padding:.22rem .5rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.68rem;letter-spacing:.04em;text-decoration:none}.lang__link:hover{border-color:var(--muted)}.lang__link.is-active{border-color:var(--ink);background:var(--ink);color:var(--paper)}.hero{background:var(--paper-2);border-bottom:1px solid var(--line)}.hero__grid{display:grid;grid-template-columns:minmax(0,1.02fr)minmax(0,.98fr);gap:clamp(1.5rem,5vw,4rem);align-items:center;padding-block:clamp(1.75rem,3.5vw,2.75rem)}.hero__text{max-width:34rem}.hero__title{margin-block:.8rem 1.1rem;font-family:var(--serif);font-size:clamp(2.5rem,5.4vw,4.3rem);line-height:1.03;letter-spacing:-.02em;text-wrap:balance}.hero__lead{max-width:42ch;color:var(--ink-soft);font-size:clamp(1.02rem,1.4vw,1.16rem)}.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.hero__media{margin:0}.hero__img{display:block}.hero__img img{display:block;width:100%;height:clamp(420px,58vh,620px);object-fit:cover;object-position:50% 62%}.section{padding-block:clamp(3.5rem,7vw,6rem)}.section-title{font-family:var(--serif);font-size:clamp(1.9rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.015em;text-wrap:balance}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(1.5rem,3vw,2.5rem);padding-bottom:1rem;border-bottom:1px solid var(--line)}.eyebrow{margin-bottom:.9rem;color:var(--oak-dark);font-size:.66rem;letter-spacing:.19em;text-transform:uppercase}.eyebrow--light{color:#d9c5a8}.section-link{color:var(--ink);font-size:.74rem;letter-spacing:.08em;text-decoration:none;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--oak);padding-bottom:.15rem}.section-link:hover{color:var(--oak-dark)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.4vw,2rem)}.card{display:flex;flex-direction:column;color:inherit;text-decoration:none}.card__media{display:block;overflow:hidden;aspect-ratio:4/3;background:var(--paper-2)}.card__img{display:block;width:100%;height:100%}.card__placeholder{display:grid;width:100%;height:100%;place-items:center;background:var(--paper-2);color:var(--muted);font-family:var(--serif);font-size:1rem}.card__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.card:hover .card__placeholder{display:grid;width:100%;height:100%;place-items:center;background:var(--paper-2);color:var(--muted);font-family:var(--serif);font-size:1rem}.card__img img{transform:scale(1.035)}.card__body{padding-top:1rem}.card__meta{display:block;color:var(--oak-dark);font-size:.64rem;letter-spacing:.17em;text-transform:uppercase}.card__title{display:block;margin-top:.35rem;font-family:var(--serif);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.25}.services__list{list-style:none;border-top:1px solid var(--ink)}.service{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;align-items:baseline;padding-block:1.35rem;border-bottom:1px solid var(--line)}.service__num{color:var(--oak);font-family:var(--serif);font-size:.95rem}.service__name{display:block;font-family:var(--serif);font-size:clamp(1.2rem,1.8vw,1.5rem)}.service__desc{display:block;max-width:48ch;margin-top:.3rem;color:var(--muted);font-size:.92rem}.services__list--page{margin-top:clamp(2rem,4vw,3rem);margin-bottom:clamp(2.5rem,5vw,4rem)}.projects-heading{margin-bottom:clamp(1.5rem,3vw,2.5rem)}.about{display:grid;grid-template-columns:minmax(0,5fr)minmax(0,6fr);gap:clamp(2rem,6vw,6rem);align-items:center}.photo-matted{margin:0;padding:.7rem;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}.photo-matted img{display:block;width:100%;height:auto}.about__text>p{max-width:46ch;margin-block:1rem 1.5rem;color:var(--ink-soft)}.ig{padding-block:clamp(3rem,6vw,5rem);background:var(--ink);color:var(--paper)}.ig__inner{display:grid;grid-template-columns:minmax(0,6fr)minmax(0,5fr);gap:clamp(2rem,5vw,4rem);align-items:center}.ig__title{margin-block:.6rem 1rem;font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.1}.ig__desc{max-width:40ch;margin-bottom:1.6rem;color:#c9c1b1}.ig__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.ig__grid{list-style:none}.ig__widget{min-width:0;color:#c9c1b1}.ig__posts{min-width:0}.ig__posts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;list-style:none}.ig__post{margin:0}.ig__post-btn{position:relative;display:block;width:100%;aspect-ratio:4/5;padding:0;overflow:hidden;border:1px solid rgba(246,241,231,.18);background:#2a2822;cursor:pointer}.ig__post-btn img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.ig__post-btn::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(18,14,9,.7),rgba(18,14,9,0) 55%);opacity:.85;transition:opacity .25s ease}.ig__post-btn:hover img,.ig__post-btn:focus-visible img{transform:scale(1.045)}.ig__post-btn:hover::after,.ig__post-btn:focus-visible::after{opacity:1}.ig__post-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#8b8477;font-family:var(--serif);font-size:1rem}.ig__embed{margin-top:clamp(1.5rem,3vw,2.5rem);padding:clamp(1rem,2.5vw,1.75rem);background:var(--paper);color:var(--ink)}.ig__embed-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ig__embed-label{color:var(--oak-dark);font-size:.64rem;letter-spacing:.17em;text-transform:uppercase}.ig__embed-actions{display:flex;align-items:center;gap:1rem}.ig__embed-open{border-bottom:1px solid var(--oak);color:var(--ink);font-size:.74rem;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.ig__embed-close{width:2rem;height:2rem;border:1px solid var(--line);background:0 0;color:var(--ink);font-size:1.1rem;line-height:1;cursor:pointer}.ig__embed-close:hover{border-color:var(--ink)}.ig__embed-slot{display:flex;justify-content:center;min-height:2rem}.ig__embed-slot iframe{max-width:100%}.ig__inner--widget{grid-template-columns:1fr}.ig__inner--widget .ig__text{max-width:46ch}.ig__inner--widget .ig__widget{width:100%}.ig__widget iframe,.ig__widget img,.ig__widget>*{max-width:100%}.ig__item{margin:0}.ig__link{position:relative;display:block;overflow:hidden}.ig__link img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;transition:transform .5s ease}.ig__link::after{content:"";position:absolute;inset:0;background:rgba(18,14,9,0);transition:background .25s ease}.ig__link:hover img,.ig__link:focus-visible img{transform:scale(1.045)}.ig__link:hover::after,.ig__link:focus-visible::after{background:rgba(18,14,9,.3)}.page-head{padding-block:clamp(2.5rem,5vw,4rem)1.5rem}.page-title{max-width:22ch;font-family:var(--serif);font-size:clamp(2.1rem,4.5vw,3.4rem);line-height:1.05;letter-spacing:-.02em;text-wrap:balance}.page-lead{max-width:54ch;margin-top:1rem;color:var(--ink-soft);font-size:clamp(1.02rem,1.5vw,1.16rem)}.page-body{padding-bottom:clamp(3rem,6vw,5rem)}.about-page{display:grid;gap:clamp(2.2rem,5vw,4rem)}.about-page__grid{display:grid;grid-template-columns:minmax(0,7fr)minmax(0,4fr);gap:clamp(2rem,5vw,4rem);align-items:start}.about-page__media{margin:0}.about-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;margin:0;padding-block:clamp(1.3rem,2.5vw,1.8rem);border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.about-facts dt{font-family:var(--serif);font-size:1.05rem}.about-facts dd{margin:.3rem 0 0;color:var(--muted);font-size:.88rem}.steps{display:grid;gap:1.5rem}.steps__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,3vw,2.5rem);margin:0;padding:1.5rem 0 0;list-style:none;border-top:1px solid var(--ink)}.step{display:grid;grid-template-columns:2.2rem 1fr;gap:.9rem;align-items:start}.step__num{color:var(--oak);font-family:var(--serif);font-size:.95rem}.step__name{display:block;font-family:var(--serif);font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.2}.step__text{display:block;margin-top:.4rem;color:var(--muted);font-size:.9rem}.about-cta{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center;justify-content:space-between;padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);background:var(--paper-2)}.about-cta p{max-width:30ch;font-family:var(--serif);font-size:clamp(1.25rem,2.2vw,1.6rem);line-height:1.25}.about-cta__actions{display:flex;flex-wrap:wrap;gap:.75rem}.page-body--split{display:grid;grid-template-columns:minmax(0,7fr)minmax(0,4fr);gap:clamp(2rem,5vw,4rem);align-items:start}.page-media{order:2}.page-cta{margin-top:clamp(2rem,4vw,3rem)}.prose{max-width:68ch}.prose>*+*{margin-top:1.05em}.prose p{color:var(--ink-soft)}.prose h2{margin-top:1.9em;font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,1.9rem)}.prose ul{padding-left:1.15rem}.prose li{margin-top:.35rem;color:var(--ink-soft)}.prose a{color:var(--oak-dark)}.prose em{color:var(--muted);font-size:.92em}.prose--lead>p:first-child{color:var(--ink);font-family:var(--serif);font-size:clamp(1.2rem,1.9vw,1.5rem);line-height:1.45}.project-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.5rem 1.5rem;margin:clamp(1.6rem,3vw,2.3rem)0 0;padding-block:clamp(.9rem,1.8vw,1.2rem);border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.project-facts dt{color:var(--oak-dark);font-size:.62rem;letter-spacing:.17em;text-transform:uppercase}.project-facts dd{margin:.25rem 0 0;font-family:var(--serif);font-size:clamp(1rem,1.5vw,1.12rem);line-height:1.35}.project-cover{margin:0;overflow:hidden;background:var(--paper-2)}.project-cover picture{display:block}.project-cover img{display:block;width:100%;height:auto;max-height:620px;aspect-ratio:16/9;object-fit:cover;object-position:50% 48%}.project-body{display:grid;gap:clamp(2rem,4vw,3rem);padding-block:clamp(2rem,4vw,3.5rem)clamp(3rem,6vw,5rem)}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.6rem,1.4vw,1.25rem)}.gallery__item{margin:0}.gallery__item img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}.gallery__item:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - clamp(.3rem,.7vw,.625rem));justify-self:center}.back{margin-top:.5rem}.beforeafter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.6rem,1.4vw,1.25rem)}.beforeafter__item{margin:0}.beforeafter__item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.beforeafter__item figcaption{margin-top:.5rem;color:var(--oak-dark);font-size:.64rem;letter-spacing:.17em;text-transform:uppercase}.mobile-contact{display:none}.contact{display:grid;grid-template-columns:minmax(0,5fr)minmax(0,6fr);gap:clamp(2rem,5vw,5rem);align-items:start}.contact__card{padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}.contact__list{display:grid;gap:1.4rem}.contact__list dt{margin-bottom:.3rem;color:var(--oak-dark);font-size:.64rem;letter-spacing:.17em;text-transform:uppercase}.contact__list dd{margin:0;font-size:1.02rem;line-height:1.7}.contact__list a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.contact__list a:hover{border-color:var(--oak)}.contact__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}.contact-hero{position:relative;display:grid;align-items:end;min-height:clamp(360px,56vh,540px);overflow:hidden;background:#1d1c17}.contact-hero__media,.contact-hero__media picture,.contact-hero__media img{position:absolute;inset:0;width:100%;height:100%}.contact-hero__media img{object-fit:cover;object-position:50% 62%}.contact-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,18,14,.78) 0%,rgba(20,18,14,.42) 55%,rgba(20,18,14,.15) 100%)}.contact-hero__content{position:relative;z-index:1;padding-block:clamp(2.5rem,6vw,4.5rem);max-width:44rem}.contact-hero .eyebrow{color:#d9c5a8}.contact-hero__title{margin-block:.6rem .9rem;color:var(--paper);font-family:var(--serif);font-size:clamp(2.6rem,5.6vw,4.5rem);line-height:1.02;letter-spacing:-.02em}.contact-hero__lead{max-width:40ch;color:#eee6d9;font-size:clamp(1.02rem,1.4vw,1.16rem)}.contact-details{display:grid;grid-template-columns:minmax(0,7fr)minmax(0,4fr);gap:clamp(2rem,5vw,4rem);padding-block:clamp(2.2rem,4vw,3.2rem);border-bottom:1px solid var(--line)}.contact-details__direct{display:grid;gap:clamp(1.2rem,2.4vw,1.7rem)}.contact-detail{display:grid;gap:.3rem}.contact-detail__label{color:var(--oak-dark);font-size:.63rem;letter-spacing:.19em;text-transform:uppercase}.contact-detail__phone{font-family:var(--serif);font-size:clamp(1.8rem,3.2vw,2.6rem);line-height:1.1;text-decoration:none}.contact-detail__email{font-family:var(--serif);font-size:clamp(1.1rem,1.9vw,1.45rem);line-height:1.3;text-decoration:none;overflow-wrap:anywhere}.contact-detail__phone:hover,.contact-detail__email:hover{color:var(--oak-dark)}.contact-details__meta{display:grid;gap:clamp(1.1rem,2vw,1.5rem);align-content:start;padding-top:.2rem}.contact-details__meta p{margin-top:.35rem;font-size:.98rem;line-height:1.7}.contact-detail__link{display:inline-block;margin-top:.45rem;color:var(--ink);font-size:.78rem;letter-spacing:.04em;text-decoration:none;border-bottom:1px solid var(--line)}.contact-detail__link:hover{border-color:var(--oak)}.contact-details__actions{display:flex;flex-wrap:wrap;gap:.6rem;padding-top:clamp(.9rem,2vw,1.3rem);border-top:1px solid var(--line)}.contact-page__body{max-width:62ch;margin-top:clamp(1.8rem,3.5vw,2.6rem)}.contact-page__caption{margin-top:1.4rem;color:var(--muted);font-size:.78rem;letter-spacing:.03em}.faq{max-width:62ch;margin-top:clamp(2.5rem,5vw,4rem)}.faq__heading{margin-bottom:clamp(1rem,2vw,1.5rem)}.faq__list{border-bottom:1px solid var(--line)}.faq__item{border-top:1px solid var(--line)}.faq__question{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding-block:1.1rem;font-family:var(--serif);font-size:clamp(1.08rem,1.7vw,1.25rem);line-height:1.3;cursor:pointer;list-style:none}.faq__question::-webkit-details-marker{display:none}.faq__question::after{content:"+";flex:none;color:var(--oak);font-family:var(--sans);font-size:1.15rem;line-height:1}.faq__item[open] .faq__question::after{content:"−"}.faq__answer{max-width:58ch;padding-bottom:1.2rem;color:var(--ink-soft);font-size:.95rem}.faq__answer p{margin:0}.site-footer{padding-block:clamp(2.5rem,5vw,4rem)1.5rem;background:#1d1c17;color:#cdc6b7}.site-footer__inner{display:grid;grid-template-columns:1.2fr 1fr 1.3fr;gap:clamp(1.5rem,4vw,3.5rem)}.site-footer .brand__name{color:var(--paper);font-size:1.2rem}.site-footer__sub{margin-top:.4rem;color:#a9a294;font-size:.85rem}.site-footer__meta{margin-top:1rem;color:#8b8477;font-size:.72rem;letter-spacing:.05em}.footer-heading{margin-bottom:1rem;color:#8b8477;font-size:.64rem;letter-spacing:.19em;text-transform:uppercase}.site-footer__nav ul{display:grid;gap:.55rem;list-style:none}.site-footer a{color:#d7d0c1;text-decoration:none;border-bottom:1px solid transparent}.site-footer a:hover{color:#fff;border-color:#6f6858}.site-footer address{line-height:1.85}.site-footer__ig{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.42rem .75rem;border:1px solid #3a382f;border-radius:999px;color:#d7d0c1;font-size:.84rem}.site-footer__ig:hover{border-color:#6f6858;color:#fff}.site-footer__ig .icon{width:1.05rem;height:1.05rem}.site-footer__bottom{display:flex;justify-content:space-between;gap:1rem;margin-top:clamp(2rem,4vw,3rem);padding-top:1.2rem;border-top:1px solid #3a382f;color:#8b8477;font-size:.72rem}@media(max-width:960px){.site-header__inner{flex-wrap:wrap;gap:.8rem 1.5rem}.nav{order:3;width:100%;overflow-x:auto}.nav__list{gap:1.1rem}.site-header__actions{margin-left:auto}.intro,.services,.about,.contact,.ig__inner,.page-body--split,.about-page__grid,.hero__grid{grid-template-columns:1fr}.about-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.project-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.steps__list{grid-template-columns:1fr}.contact-details{grid-template-columns:1fr}.contact-hero{min-height:clamp(320px,48vh,460px)}.contact-hero__shade{background:linear-gradient(180deg,rgba(20,18,14,.35) 0%,rgba(20,18,14,.82) 100%)}.hero__text{max-width:46rem}.hero__img img{height:clamp(300px,44vh,430px);object-position:50% 58%}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ig__grid{max-width:420px}.ig__posts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-media{order:0}.services__list{margin-top:1rem}.site-footer__inner{grid-template-columns:1fr 1fr}}@media(max-width:620px){body{font-size:16px;padding-bottom:calc(4.6rem + env(safe-area-inset-bottom))}.cards{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}.project-cover img{aspect-ratio:4/3;max-height:none}.site-footer__inner{grid-template-columns:1fr}.site-footer__bottom{flex-direction:column;gap:.35rem}.facts{gap:.9rem}.page-title{font-size:clamp(1.9rem,8vw,2.6rem)}.section-head{flex-direction:column;align-items:flex-start;gap:.6rem}.contact-choices{grid-template-columns:1fr}.contact-details{grid-template-columns:1fr;gap:1.1rem}.btn-full{display:none}.btn-short{display:inline}.site-header__phone{display:inline-flex}.mobile-contact{position:fixed;right:0;bottom:0;left:0;z-index:60;display:flex;gap:.5rem;padding:.55rem .75rem calc(.55rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper)}.mobile-contact__btn{flex:1}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}