:root{--ivory:#f3efe7;--paper:#e8e1d6;--clay:#b66e54;--charcoal:#272623;--stone:#a39a8c;--line:#cfc6b9;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace;--ease:cubic-bezier(.23,1,.32,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);line-height:1.55}img{width:100%;display:block;object-fit:cover}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{height:78px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 4.5vw;gap:3rem;position:sticky;top:0;background:rgba(243,239,231,.94);backdrop-filter:blur(12px);z-index:10}.wordmark{display:flex;align-items:center;gap:11px;line-height:.9;font-size:12px;letter-spacing:.06em}.wordmark>span{font-family:var(--serif);font-size:22px;border:1px solid var(--charcoal);padding:10px 5px;line-height:.7}.wordmark b{font-weight:500}.main-nav{display:flex;gap:2.1rem;margin:auto;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em}.main-nav a,.header-call,.footer-nav a{transition:color .2s ease}.main-nav a:hover,.header-call:hover,.footer-nav a:hover,.contact-details>a:hover{color:var(--clay)}.header-call{font-family:var(--mono);font-size:11px;white-space:nowrap}.header-call span,.button span,.text-link span,.arrow-link span{font-size:17px;margin-left:8px}.section-rule{border-bottom:1px solid var(--line)}.hero{min-height:calc(100vh - 78px);padding:7vw 4.5vw 5vw;display:grid;grid-template-columns:48% 42%;gap:6%;align-items:center;position:relative}.hero-copy{padding-top:4vw}.eyebrow,.section-kicker,.hero-side-label,.hero-index,.hero-image figcaption,.gallery figcaption,.review-meta,.footer-bottom{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.eyebrow{color:var(--clay);margin:0 0 1.5rem}.hero h1{font-family:var(--serif);font-size:clamp(60px,9.5vw,148px);line-height:.88;font-weight:500;letter-spacing:-.065em;margin:0 0 2.4rem}.hero h1 em,h2 em{color:var(--clay);font-weight:500}.hero-lead{font-size:clamp(18px,2vw,25px);max-width:405px;line-height:1.3;margin:0 0 2.8rem}.hero-actions{display:flex;align-items:center;gap:2rem}.button{border:0;display:inline-flex;align-items:center;justify-content:center;padding:16px 21px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;transition:transform .2s var(--ease),background .2s ease}.button:hover{transform:translateY(-3px)}.button-dark{background:var(--charcoal);color:var(--ivory)}.button-dark:hover{background:#4b4640}.button-clay{background:var(--clay);color:var(--ivory);padding:21px 28px}.text-link,.arrow-link{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--charcoal);padding-bottom:8px}.hero-image{margin:0;position:relative;height:min(68vh,680px);overflow:hidden}.hero-image img{height:100%;transition:transform 1.2s var(--ease)}.hero-image:hover img{transform:scale(1.03)}.hero-image figcaption{position:absolute;bottom:0;left:0;right:0;padding:14px 16px;color:white;display:flex;justify-content:space-between;background:linear-gradient(transparent,rgba(0,0,0,.55))}.hero-side-label{position:absolute;right:1.7vw;top:44%;writing-mode:vertical-rl;transform:rotate(180deg);color:var(--stone);line-height:1.8}.hero-index{position:absolute;bottom:22px;left:4.5vw;color:var(--stone)}.hero-index span{padding:0 8px}.section-pad{padding:9vw 8vw}.section-kicker{display:flex;gap:14px;color:var(--stone);border-top:1px solid var(--line);padding-top:12px;margin-bottom:6vw}.section-kicker span:first-child{color:var(--clay)}.about-grid{display:grid;grid-template-columns:55% 32%;gap:13%;margin-bottom:6vw}.about-title h2,.services h2,.gallery h2,.contact h2{font-family:var(--serif);font-size:clamp(43px,6.5vw,90px);line-height:.95;font-weight:500;letter-spacing:-.05em;margin:0}.about-body{padding-top:2.2rem}.large-copy{font-family:var(--serif);font-size:clamp(23px,2.4vw,35px);line-height:1.25;margin:0 0 1.7rem}.about-body p:not(.large-copy){max-width:375px;color:#5e5952;font-size:15px;margin-bottom:2.6rem}.arrow-link{display:inline-block}.about-image{margin:0 0 0 18%;width:68%;position:relative}.about-image img{height:470px}.about-image figcaption{font-family:var(--mono);font-size:10px;color:var(--stone);padding-top:12px}.section-tint{background:var(--paper)}.services-head{display:grid;grid-template-columns:56% 27%;gap:10%;align-items:end;margin-bottom:5vw}.services-head p,.gallery-intro p{color:#655f57;max-width:300px;margin:0 0 .4rem}.service-index{border-top:1px solid var(--charcoal)}details{border-bottom:1px solid var(--line)}summary{list-style:none;display:grid;grid-template-columns:9% 1fr 30px;gap:2rem;align-items:center;padding:23px 0;cursor:pointer}summary::-webkit-details-marker{display:none}summary span{font-family:var(--mono);font-size:11px;color:var(--clay)}summary strong{font-family:var(--serif);font-size:clamp(20px,2.3vw,31px);font-weight:500}summary i{font-size:20px;font-style:normal;color:var(--clay);transition:transform .3s var(--ease)}details[open] summary i{transform:rotate(45deg)}details p{max-width:530px;margin:0 0 23px 9%;color:#655f57} .service-note{margin:4vw 0 0 auto;max-width:300px;font-family:var(--mono);font-size:11px;color:var(--stone);line-height:1.7}.gallery{background:var(--ivory)}.gallery-intro{display:grid;grid-template-columns:58% 24%;gap:10%;align-items:end;margin-bottom:4rem}.editorial-gallery{display:grid;grid-template-columns:1.2fr .68fr .75fr;grid-template-rows:350px 230px;gap:18px}.editorial-gallery figure{margin:0;position:relative;overflow:hidden;background:var(--stone)}.editorial-gallery img{height:100%;transition:transform .8s var(--ease)}.editorial-gallery figure:hover img{transform:scale(1.05)}.gallery-main{grid-row:span 2}.gallery-tall{grid-row:span 2}.gallery-small{margin-top:55px!important}.gallery-wide{grid-column:span 1}.gallery-detail{grid-column:3}.gallery figcaption{position:absolute;bottom:0;left:0;padding:14px;color:white;text-transform:none;letter-spacing:.02em;font-family:var(--sans);font-size:11px;background:linear-gradient(transparent,rgba(0,0,0,.7));width:100%;padding-top:36px}.gallery figcaption span{font-family:var(--mono);margin-right:12px}.section-dark{background:var(--charcoal);color:var(--ivory)}.light{border-color:#514d47}.light span:last-child{color:#b3aa9d}.review-layout{display:grid;grid-template-columns:12% 60% 1fr;gap:3%;align-items:start;min-height:280px}.quote-mark{font-family:var(--serif);font-size:160px;line-height:.5;color:var(--clay);margin:0}.review-copy blockquote{font-family:var(--serif);font-size:clamp(29px,4vw,58px);line-height:1.1;margin:0 0 2.2rem;letter-spacing:-.035em}.review-meta{display:flex;gap:2rem;color:#a9a095}.review-count{font-family:var(--mono);font-size:13px;color:var(--clay);justify-self:end}.review-count span{color:#777069;margin:0 8px}.review-count small{color:#a9a095;font-size:10px;display:block;margin-top:13px}.review-strip{border-top:1px solid #514d47;margin-top:4rem;padding-top:17px;display:flex;gap:7%;font-size:13px;color:#d0c8bd}.review-strip p{margin:0;max-width:390px}.review-strip span{display:block;color:#8f877e;margin-top:8px;font-family:var(--mono);font-size:10px}.cta-band{background:var(--clay);color:var(--ivory)}.cta-band .eyebrow{color:#e7c2b5}.cta-row{display:flex;align-items:end;justify-content:space-between;gap:3rem}.cta-row h2{font-family:var(--serif);font-size:clamp(43px,6vw,88px);line-height:.95;font-weight:500;letter-spacing:-.05em;margin:0}.contact-grid{display:grid;grid-template-columns:43% 43%;gap:12%}.contact-details h2{margin-bottom:2rem}.contact-details>p{max-width:370px;color:#655f57;margin-bottom:2.5rem}.contact-details address{font-style:normal;font-family:var(--mono);font-size:12px;line-height:1.8;margin-bottom:1.2rem}.contact-details>a{display:block;font-family:var(--mono);font-size:12px;margin:5px 0}.map{border:0;width:100%;height:180px;margin-top:2.2rem;filter:grayscale(1) contrast(.85);mix-blend-mode:multiply}.form-wrap{padding-top:1.3rem}.form-intro{font-family:var(--serif);font-size:26px;margin:0 0 2rem}form{display:grid;grid-template-columns:1fr 1fr;gap:22px 18px}label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--stone)}label:nth-of-type(5){grid-column:span 2}label span{color:#aaa;text-transform:none}input,textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--stone);padding:12px 0;color:var(--charcoal);outline:0;resize:vertical}input:focus,textarea:focus{border-color:var(--clay)}form button{justify-self:start;margin-top:8px}#form-success{display:none;grid-column:span 2;padding:18px;background:#d8e0d2;color:#31432f;font-family:var(--mono);font-size:11px}.error-message{font-family:var(--sans);font-size:12px;text-transform:none;letter-spacing:0;color:#a74938;margin-top:5px}.site-footer{background:#1f1e1b;color:var(--ivory);padding:5rem 8vw 1.5rem;display:grid;grid-template-columns:1fr 1fr;gap:4rem;position:relative}.footer-mark{display:inline-flex}.site-footer p{color:#a9a095;max-width:260px;font-size:13px;margin-top:1.7rem}.footer-nav{display:flex;justify-content:space-between;gap:2rem}.footer-nav nav{display:flex;gap:5rem}.footer-nav nav div{display:flex;flex-direction:column;gap:13px;font-family:var(--mono);font-size:10px;text-transform:uppercase}.footer-contact{display:flex;flex-direction:column;gap:10px;font-family:var(--mono);font-size:10px;color:#a9a095;text-align:right}.footer-bottom{grid-column:span 2;border-top:1px solid #47443f;padding-top:14px;display:flex;justify-content:space-between;color:#777069;margin-top:2rem}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.site-header{padding:0 5vw;gap:1rem}.main-nav{gap:1rem;font-size:9px}.header-call{display:none}.hero{grid-template-columns:1fr;gap:3rem;padding-top:16vw}.hero-image{height:58vh;order:2}.hero-side-label{display:none}.hero-index{bottom:15px}.about-grid,.services-head,.gallery-intro,.contact-grid{grid-template-columns:1fr;gap:2rem}.about-image{margin:0;width:100%}.about-image img{height:360px}.editorial-gallery{grid-template-columns:1fr 1fr;grid-template-rows:260px 220px 220px}.gallery-main{grid-row:span 2}.gallery-tall{grid-row:span 1}.gallery-small{margin-top:0!important}.gallery-wide{grid-column:span 2}.gallery-detail{grid-column:span 1}.review-layout{grid-template-columns:12% 1fr;gap:1rem}.review-count{grid-column:2;justify-self:start}.review-strip{display:block}.review-strip p+p{margin-top:1.5rem}.cta-row{display:block}.cta-row .button{margin-top:2.2rem}.contact-grid{gap:4rem}.site-footer{grid-template-columns:1fr}.footer-nav{display:block}.footer-nav nav{gap:4rem;margin-bottom:2rem}.footer-contact{text-align:left}.footer-bottom{grid-column:span 1}}@media(max-width:560px){.site-header{height:66px}.wordmark{font-size:10px}.wordmark>span{font-size:17px;padding:8px 4px}.main-nav{overflow-x:auto;white-space:nowrap;gap:1.3rem}.hero{min-height:auto;padding-bottom:5rem}.hero h1{font-size:68px}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.5rem}.section-pad{padding:18vw 6vw}.section-kicker{margin-bottom:12vw}.about-title h2,.services h2,.gallery h2,.contact h2{font-size:52px}.about-image img{height:280px}.editorial-gallery{display:grid;grid-template-columns:1fr;grid-template-rows:300px 220px 220px 220px 220px}.gallery-main,.gallery-tall,.gallery-wide,.gallery-detail{grid-column:span 1;grid-row:auto}.gallery-small{margin-top:0!important}.review-layout{grid-template-columns:1fr}.quote-mark{font-size:100px}.review-copy blockquote{font-size:35px}.review-count{grid-column:1}.review-meta{display:block}.review-meta span{display:block;margin-bottom:7px}.form-wrap{padding-top:0}form{grid-template-columns:1fr}label:nth-of-type(5),#form-success{grid-column:span 1}form button{width:100%}.footer-nav nav{gap:2.5rem}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{transition:none}.hero-image img,.editorial-gallery img,.button{transition:none}}
