:root {
  --ink: #17201a;
  --forest: #213d2c;
  --sage: #a5ad96;
  --cream: #f3eee5;
  --paper: #fbf9f4;
  --gold: #b58a52;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
a { color: inherit; text-decoration: none; }
.site-header { align-items: center; background: rgba(251,249,244,.96); border-bottom: 1px solid rgba(23,32,26,.12); display: grid; gap: 2rem; grid-template-columns: 1fr auto 1fr; padding: 1rem clamp(1.25rem,4vw,4.5rem); position: absolute; top: 0; width: 100%; z-index: 10; }
.brand { align-items: center; display: flex; gap: .75rem; width: max-content; }
.brand-mark { align-items: center; background: var(--forest); color: white; display: flex; font-family: Georgia,serif; font-size: .9rem; height: 2.8rem; justify-content: center; letter-spacing: .08em; width: 2.8rem; }
.brand strong,.brand small { display:block; }
.brand strong { font-family: Georgia,serif; font-size:1.2rem; font-weight:500; }
.brand small { color:#586257; font-size:.68rem; letter-spacing:.15em; margin-top:.2rem; text-transform:uppercase; }
nav { display:flex; gap:2rem; }
nav a { font-size:.85rem; }
.header-call { justify-self:end; border-bottom:1px solid var(--ink); font-size:.85rem; padding-bottom:.25rem; }
.hero { display:grid; grid-template-columns:52% 48%; min-height:100vh; padding-top:4.85rem; }
.hero-copy { align-items:flex-start; background:var(--cream); display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,8vw,8rem) clamp(1.5rem,7vw,7rem); }
.eyebrow { color:#657061; font-size:.72rem; letter-spacing:.2em; margin:0 0 2rem; text-transform:uppercase; }
h1 { font-family:Georgia,'Times New Roman',serif; font-size:clamp(3.2rem,6vw,6.6rem); font-weight:400; letter-spacing:-.045em; line-height:.92; margin:0; }
h1 em { color:var(--forest); font-weight:400; }
.hero-intro { color:#4f5a50; font-family:Georgia,serif; font-size:clamp(1.05rem,1.5vw,1.35rem); line-height:1.6; margin:2.3rem 0; max-width:35rem; }
.hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:2rem; }
.button { display:inline-flex; padding:1rem 1.35rem; }
.button-primary { background:var(--forest); color:white; }
.text-link { border-bottom:1px solid #9e927e; font-size:.9rem; padding-bottom:.35rem; }
.text-link span { margin-left:.5rem; }
.trust-line { border-top:1px solid #cec5b5; display:flex; flex-wrap:wrap; gap:.7rem 1.4rem; margin-top:clamp(3rem,8vh,6rem); padding-top:1.2rem; width:100%; }
.trust-line span { color:#687066; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; }
.hero-image { margin:0; min-height:36rem; overflow:hidden; position:relative; }
.hero-image img { height:100%; object-fit:cover; width:100%; }
.hero-image figcaption { background:var(--paper); bottom:0; font-family:Georgia,serif; font-size:.9rem; left:0; padding:1rem 1.4rem; position:absolute; }
.section-label { color:#687366; font-size:.68rem; letter-spacing:.2em; margin:0 0 1.5rem; text-transform:uppercase; }
.section-label.light { color:#aab2a8; }
.intro-strip { align-items:start; background:var(--forest); color:white; display:grid; gap:2rem; grid-template-columns:1fr 2fr; padding:clamp(4rem,8vw,8rem) clamp(1.5rem,7vw,7rem); }
.intro-strip .section-label { color:#b6c0b3; }
.intro-statement { font-family:Georgia,serif; font-size:clamp(1.7rem,3.2vw,3.1rem); line-height:1.23; margin:0; max-width:58rem; }
.services,.process { padding:clamp(5rem,10vw,9rem) clamp(1.5rem,7vw,7rem); }
.section-heading { align-items:end; display:flex; gap:4rem; justify-content:space-between; margin-bottom:4rem; }
.section-heading h2,.work-copy h2,.reviews h2,.contact h2 { font-family:Georgia,serif; font-size:clamp(2.6rem,5vw,5.2rem); font-weight:400; letter-spacing:-.04em; line-height:1; margin:0; }
.section-heading>p { color:#687066; line-height:1.7; margin:0; max-width:25rem; }
.service-grid { border-left:1px solid #d2cabc; display:grid; grid-template-columns:repeat(3,1fr); }
.service-card { border-bottom:1px solid #d2cabc; border-right:1px solid #d2cabc; min-height:19rem; padding:2rem; transition:background .25s,color .25s; }
.service-card:nth-child(-n+3) { border-top:1px solid #d2cabc; }
.service-card>span,.process-grid>li>span { color:var(--gold); font-family:Georgia,serif; font-size:.8rem; }
.service-card h3,.process-grid h3 { font-family:Georgia,serif; font-size:1.6rem; font-weight:400; margin:4.5rem 0 1rem; }
.service-card p,.process-grid p { color:#687066; font-size:.91rem; line-height:1.7; margin:0; }
.service-card:hover { background:var(--forest); color:white; }
.service-card:hover p { color:#c7cec5; }
.work-feature { background:#d8d4ca; display:grid; grid-template-columns:1.1fr .9fr; min-height:48rem; }
.work-image { background:url('/work/bathroom-paneling.jpg') center/cover no-repeat; min-height:42rem; }
.work-copy { align-self:center; padding:clamp(3rem,8vw,8rem); }
.project-kicker { color:var(--gold); font-family:Georgia,serif; font-size:1.1rem; font-style:italic; }
.work-copy>p:not(.section-label):not(.project-kicker) { color:#586158; line-height:1.75; margin:2rem 0; max-width:33rem; }
.project-tags { display:flex; flex-wrap:wrap; gap:.6rem; }
.project-tags span { border:1px solid #b8b2a7; border-radius:5rem; font-size:.72rem; padding:.55rem .8rem; }
.process { background:var(--paper); }
.process-grid { display:grid; grid-template-columns:repeat(3,1fr); list-style:none; margin:0; padding:0; }
.process-grid li { border-left:1px solid #d2cabc; padding:.5rem 3rem 1rem; }
.process-grid li:last-child { border-right:1px solid #d2cabc; }
.process-grid h3 { margin-top:3rem; }
.reviews { background:#17201a; color:white; display:grid; gap:8vw; grid-template-columns:.8fr 1.2fr; padding:clamp(5rem,10vw,9rem) clamp(1.5rem,7vw,7rem); }
.reviews-title>p:last-child { color:#aeb8ae; line-height:1.7; max-width:23rem; }
.review-list blockquote { border-top:1px solid #485248; margin:0; padding:2.2rem 0; }
.review-list blockquote:last-child { border-bottom:1px solid #485248; }
.review-list blockquote p { font-family:Georgia,serif; font-size:clamp(1.35rem,2vw,2rem); line-height:1.4; margin:0 0 1.5rem; }
.review-list footer { color:#adb7ad; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }
.contact { align-items:center; background:var(--cream); display:flex; flex-direction:column; padding:clamp(5rem,12vw,11rem) 1.5rem; text-align:center; }
.contact h2 em { color:var(--forest); font-weight:400; }
.contact>p:not(.section-label) { color:#5d675e; line-height:1.7; max-width:35rem; }
.contact-actions { display:flex; flex-wrap:wrap; gap:.75rem; justify-content:center; margin-top:2rem; }
.button-outline { border:1px solid var(--forest); }
.site-footer { align-items:center; background:var(--paper); display:grid; gap:2rem; grid-template-columns:1fr 1fr 1fr; padding:3rem clamp(1.5rem,7vw,7rem); }
.site-footer>div { display:flex; flex-direction:column; font-size:.78rem; gap:.5rem; justify-self:center; }
.site-footer>div span { color:#7b837b; }
.back-top { font-size:.78rem; justify-self:end; }
@media(max-width:850px){.site-header{grid-template-columns:1fr auto}nav{display:none}.hero{grid-template-columns:1fr}.hero-copy{min-height:80vh;padding-top:7rem}.hero-image{min-height:65vh}.intro-strip,.reviews{grid-template-columns:1fr}.section-heading{align-items:start;flex-direction:column}.service-grid{grid-template-columns:repeat(2,1fr)}.service-card:nth-child(3){border-top:0}.service-card:nth-child(-n+2){border-top:1px solid #d2cabc}.work-feature{grid-template-columns:1fr}.work-image{min-height:65vh}.process-grid{grid-template-columns:1fr}.process-grid li,.process-grid li:last-child{border:0;border-top:1px solid #d2cabc;padding:2rem 0}.site-footer{grid-template-columns:1fr 1fr}.site-footer>div{justify-self:end;text-align:right}.back-top{display:none}}
@media(max-width:520px){.site-header{gap:.5rem;padding:.85rem 1rem}.brand small{display:none}.brand strong{font-size:1rem}.brand-mark{height:2.2rem;width:2.2rem}.header-call{font-size:.72rem}.hero{padding-top:3.9rem}.hero-copy{min-height:75vh;padding:5rem 1.25rem 3rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.25rem}.intro-strip{gap:.5rem}.service-grid{border-left:0;grid-template-columns:1fr}.service-card,.service-card:nth-child(3),.service-card:nth-child(-n+2){border-left:1px solid #d2cabc;border-top:0}.service-card:first-child{border-top:1px solid #d2cabc}.service-card{min-height:auto}.service-card h3{margin-top:2.5rem}.work-copy{padding:4rem 1.5rem}.site-footer{grid-template-columns:1fr}.site-footer>div{justify-self:start;text-align:left}}
