:root{--ink:#1d1b19;--char:#2a2724;--cream:#f6f1e9;--sand:#e8dfd1;--gold:#a8844f;--gold2:#c4a26e;--mut:#6b625a;--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font:16px/1.65 var(--sans);color:var(--ink);background:var(--cream)}
a{color:inherit}.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px;z-index:99}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;line-height:1.15}
h2{font-size:clamp(2rem,4vw,2.9rem);margin-bottom:1.4rem}h3{font-size:1.45rem;margin:.6rem 0 .3rem}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;color:var(--gold);font-weight:600;margin-bottom:.6rem}
.btn{display:inline-block;background:var(--gold);color:#fff;text-decoration:none;padding:14px 26px;border:0;border-radius:2px;font:600 .95rem var(--sans);letter-spacing:.03em;cursor:pointer;transition:.2s}
.btn:hover{background:#8e6d3c}.btn-ghost{background:transparent;border:1px solid var(--gold2);color:var(--cream)}.btn-ghost:hover{background:rgba(196,162,110,.15)}.btn-sm{padding:9px 16px}
:focus-visible{outline:2px solid var(--gold2);outline-offset:3px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(29,27,25,.96);color:var(--cream);border-bottom:1px solid #3a352f}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-family:var(--serif);font-size:1.35rem;font-weight:600;line-height:1}
.brand small{display:block;font:500 .65rem var(--sans);letter-spacing:.25em;text-transform:uppercase;color:var(--gold2);margin-top:4px}
.mark{width:42px;height:42px;border:1px solid var(--gold2);display:grid;place-items:center;color:var(--gold2);font-size:1.1rem}
nav{display:flex;gap:28px;align-items:center}nav a{text-decoration:none;font-size:.92rem}nav a:not(.btn):hover{color:var(--gold2)}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:8px}.menu-btn span{display:block;width:24px;height:2px;background:var(--cream);margin:5px 0}
.hero{background:linear-gradient(rgba(20,18,16,.72),rgba(20,18,16,.85)),repeating-linear-gradient(90deg,#3b3129 0 120px,#352c25 120px 122px,#40352c 122px 260px,#352c25 260px 262px);color:var(--cream);padding:130px 0 120px}
.hero h1{font-size:clamp(2.6rem,6.5vw,4.8rem);max-width:800px;margin-bottom:1.2rem}.hero em{color:var(--gold2)}
.lead{max-width:620px;font-size:1.12rem;color:#ddd3c4;margin-bottom:2rem}.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.section{padding:96px 0}.alt{background:var(--sand)}.dark{background:var(--char);color:var(--cream)}.dark p{color:#cfc5b6}
.grid{display:grid;gap:22px}.services{grid-template-columns:repeat(3,1fr)}
.card{background:#fff;padding:30px;border:1px solid #e6dccd;border-top:3px solid var(--gold);transition:.25s}.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(40,30,20,.08)}
.card p{color:var(--mut)}.card.wide{grid-column:span 3}
.card svg{width:44px;height:44px;fill:none;stroke:var(--gold);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.why{grid-template-columns:repeat(4,1fr)}.why>div{border-left:1px solid var(--gold);padding-left:20px}.why h3{color:var(--gold2)}
.note{color:var(--mut);font-style:italic;margin:-.8rem 0 1.4rem}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:220px;gap:14px}
.ph{position:relative;display:flex;align-items:flex-end;border:1px dashed rgba(255,255,255,.3)}.ph.tall{grid-row:span 2}.ph.wide{grid-column:span 2}
.ph figcaption{color:#fff;background:rgba(0,0,0,.4);padding:8px 14px;font-size:.85rem;letter-spacing:.04em}
.p1{background:linear-gradient(135deg,#6e5843,#3d3128)}.p2{background:linear-gradient(135deg,#8c7a66,#4b4038)}.p3{background:repeating-linear-gradient(100deg,#7a5f45 0 40px,#6b523b 40px 42px)}
.p4{background:linear-gradient(135deg,#cfc3b1,#9b8d79)}.p5{background:linear-gradient(135deg,#545049,#2b2926)}.p6{background:linear-gradient(135deg,#b9ab96,#7d6f5d)}
.steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.steps li{background:var(--cream);padding:28px;border:1px solid #d8ccba}.steps span{font-family:var(--serif);font-size:2.6rem;color:var(--gold)}.steps p{color:var(--mut)}
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:56px}
.info{list-style:none;margin-top:1.6rem}.info li{padding:12px 0;border-bottom:1px solid #e0d6c6;display:flex;flex-direction:column}
.info strong{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.info a{font-size:1.15rem}
.placeholder{background:#fff4d6;color:#7a5a1d;padding:0 6px;border:1px dashed #c4a26e}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:#fff;padding:32px;border:1px solid #e6dccd}
label{display:flex;flex-direction:column;font-size:.85rem;font-weight:500;gap:6px}.full{grid-column:1/-1}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid #cfc3b1;background:var(--cream);border-radius:2px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--gold);border-color:var(--gold)}
.form-msg{font-size:.9rem;color:var(--gold)}
.site-footer{background:var(--ink);color:#cfc5b6;padding:40px 0}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center}
.foot strong{color:var(--cream);font-size:1.3rem}.copy{width:100%;font-size:.8rem;border-top:1px solid #3a352f;padding-top:16px}
@media(max-width:900px){.services,.why{grid-template-columns:1fr 1fr}.card.wide{grid-column:span 2}.steps{grid-template-columns:1fr 1fr}.contact{grid-template-columns:1fr}}
@media(max-width:720px){.menu-btn{display:block}nav{display:none;position:absolute;top:72px;left:0;right:0;flex-direction:column;background:var(--ink);padding:20px;gap:16px}nav.open{display:flex}
.services,.why,.steps,form{grid-template-columns:1fr}.card.wide{grid-column:auto}.gallery{grid-template-columns:1fr 1fr;grid-auto-rows:160px}.ph.wide{grid-column:span 2}
.section{padding:68px 0}.hero{padding:90px 0 80px}form{padding:22px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.hero{background:linear-gradient(90deg,rgba(18,16,14,.9),rgba(18,16,14,.6)),url(images/two-story-black-shiplap-fireplace.jpg) center 40%/cover;min-height:640px;display:flex;align-items:center}
.card-img{display:block;width:calc(100% + 60px);margin:-30px -30px 20px;height:180px;object-fit:cover}
.gallery{display:block;columns:3 300px;column-gap:14px;grid-auto-rows:auto}
.gallery figure{break-inside:avoid;margin:0 0 14px;background:#fff;border:1px solid #e6dccd}
.g-item{display:block;width:100%;border:0;padding:0;cursor:zoom-in;background:none;overflow:hidden}
.g-item img{display:block;width:100%;height:auto;transition:transform .4s}.g-item:hover img{transform:scale(1.04)}
.gallery figcaption{font-size:.85rem;color:var(--mut);padding:10px 14px}
.lightbox{position:fixed;inset:0;background:rgba(12,11,10,.94);z-index:100;display:flex;align-items:center;justify-content:center;padding:40px 60px}.lightbox[hidden]{display:none}
.lightbox figure{margin:0;text-align:center}.lightbox img{max-width:100%;max-height:82vh;display:block;margin:auto}.lightbox figcaption{color:var(--cream);margin-top:12px}
.lightbox button{position:absolute;background:none;border:0;color:var(--cream);font-size:3rem;cursor:pointer;line-height:1;padding:10px}
.lb-close{top:10px;right:16px}.lb-prev{left:8px;top:50%;transform:translateY(-50%)}.lb-next{right:8px;top:50%;transform:translateY(-50%)}
@media(max-width:720px){.gallery{columns:2 150px;column-gap:10px}.gallery figure{margin-bottom:10px}.gallery figcaption{font-size:.75rem;padding:6px 8px}.lightbox{padding:50px 10px}.hero{min-height:560px;background-position:center}.card-img{width:calc(100% + 60px)}}
