@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--ink:#202d2a;--forest:#172724;--gold:#c99c59;--cream:#f7f5f0;--muted:#6d746e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:#fff;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.wrap{max-width:1210px;width:calc(100% - 64px);margin:auto}.section{padding-top:100px;padding-bottom:100px}.topline{display:flex;justify-content:space-between;background:var(--forest);color:#d8ded7;padding:6px 4%;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.site-header{height:87px;display:flex;align-items:center;padding:0 4%;gap:30px;background:#fff;position:relative;z-index:10}.brand{display:flex;align-items:center;gap:12px;line-height:1.08;font-size:17px;font-weight:700;letter-spacing:.045em;white-space:nowrap}.brand b{display:block;font-size:11px;letter-spacing:.185em;margin-top:4px}.brand-mark{width:44px;height:44px;border:1.7px solid var(--gold);display:grid;place-items:center;font-family:Georgia,serif;font-size:28px;color:#7b602c;position:relative}.brand-mark span{font-size:9px;position:absolute;right:4px;bottom:3px}.nav{display:flex;gap:31px;margin-left:auto;font-size:13px;font-weight:700}.nav a:hover,.text-arrow:hover{color:#aa7c37}.header-call{background:var(--forest);color:white;padding:12px 23px;font-size:13px;font-weight:700}.menu-toggle{display:none}.hero{height:min(750px,76vw);min-height:580px;position:relative;display:flex;align-items:center;overflow:hidden;color:#fff}.hero-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 59%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,27,24,.89),rgba(16,27,24,.58) 54%,rgba(13,27,24,.10))}.hero-content{position:relative;padding:70px 0;z-index:1}.eyebrow{font-size:11px;letter-spacing:.24em;color:#ae823e;font-weight:700;margin-bottom:22px}.eyebrow.light{color:#e2b979}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.15;letter-spacing:-.025em}h1{font-size:clamp(50px,6.3vw,91px);margin-bottom:25px}h1 em,h2 em{font-weight:500;color:var(--gold)}.hero-content>p{max-width:510px;color:#e1e6df;font-size:17px}.hero-actions,.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:35px}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;font-size:13px;letter-spacing:.04em;font-weight:700;padding:15px 24px;min-height:52px;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn.gold{background:var(--gold);color:#1c2824}.btn.outline{border-color:#d2c9b5;color:#fff}.btn.dark{background:var(--forest);color:white}.hero-proof{display:flex;align-items:center;gap:18px;color:#f2eee5;font-size:12px;letter-spacing:.04em;margin-top:43px}.hero-proof .dot{color:var(--gold)}.vertical-caption{position:absolute;right:24px;bottom:40px;writing-mode:vertical-rl;font-size:10px;letter-spacing:.3em}.intro{display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center}.intro h2,.section-head h2,.area h2{font-size:clamp(38px,4vw,59px)}.intro-copy{max-width:460px;color:#59635b}.text-arrow{display:inline-flex;gap:24px;margin-top:12px;border-bottom:1px solid var(--gold);padding-bottom:6px;font-weight:700;color:var(--ink)}.services{background:var(--cream)}.section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:42px}.section-head p{color:var(--muted);max-width:350px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e0ded6;border:1px solid #e0ded6}.service-grid article{background:var(--cream);padding:38px 32px;min-height:210px}.svc-num{color:#a47b40;font-size:12px;letter-spacing:.12em}.service-grid h3{font-family:'Playfair Display',serif;font-size:24px;font-weight:500;margin:22px 0 10px}.service-grid p{color:var(--muted);font-size:14px;margin:0}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.gallery-tile{position:relative;display:block;overflow:hidden;padding:0;border:0;background:#ece7df;aspect-ratio:1.24}.gallery-tile:nth-child(7n+1){grid-row:span 2;aspect-ratio:auto}.gallery-tile img{width:100%;height:100%;object-fit:cover;transition:transform .4s;display:block}.gallery-tile:hover img{transform:scale(1.06)}.gallery-tile span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#18221fd9);color:white;font-size:12px;padding:40px 18px 12px;text-align:right;opacity:0}.gallery-tile:hover span{opacity:1}.gallery-note{color:var(--muted);font-size:12px;margin:18px 0 0}.about{display:grid;grid-template-columns:1fr 1fr;background:var(--forest);color:white;min-height:570px}.about-image{min-height:490px}.about-image img{width:100%;height:100%;object-fit:cover}.about-text{padding:80px clamp(36px,7vw,110px);align-self:center}.about-text h2,.estimate h2{font-size:clamp(38px,4vw,60px)}.about-text>p{color:#ccd6d0;max-width:470px}.about-rule{height:1px;background:#50625a;margin:34px 0}.about-stats{display:flex;align-items:center;gap:20px;margin-bottom:32px}.about-stats strong{font-family:Georgia,serif;font-size:57px;line-height:1}.about-stats strong span{color:var(--gold)}.about-stats>span{color:#c7d3cd;font-size:13px}.area{text-align:center;max-width:800px}.area p{color:var(--muted);margin:auto;max-width:650px}.estimate{background:#273933;color:#fff}.estimate-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:8%;align-items:center}.estimate-lead>p{max-width:400px;color:#cbd7d0}.phone-caption{margin-top:30px;color:white!important}.phone-caption strong{white-space:nowrap;color:#ecc88e}.microcopy{font-size:12px!important}.form-panel{background:#fff;color:var(--ink);padding:40px;box-shadow:0 16px 50px #13221d22}.form-panel h3{font-family:Georgia,serif;font-size:29px;font-weight:500;margin-bottom:4px}.form-panel>p{color:var(--muted);font-size:13px;margin-bottom:24px}.form-panel form{display:grid;gap:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{font-size:12px;font-weight:700;display:grid;gap:5px}label span{color:#a35d39}input,textarea,select{width:100%;padding:12px;background:#f9f9f7;border:1px solid #d6d9d3;border-radius:0;color:#27332e;font-size:14px}input:focus,textarea:focus,select:focus{outline:2px solid #c99c59;outline-offset:1px}.trap{position:absolute;left:-10000px}.form-panel small{font-size:11px;color:#717a71}.submit{border:0}.footer-main{display:flex;justify-content:space-between;gap:25px;align-items:start;padding:52px 0}.footer-main>div p{font-size:13px;color:var(--muted)}.footer-main>div strong{font-size:14px}.foot-links{display:flex;gap:15px;font-size:13px}.bottom{border-top:1px solid #dde0db;padding:15px 0;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.mobile-bar{display:none}.lightbox{max-width:96vw;max-height:96vh;border:0;background:#101916;padding:36px 9px 9px}.lightbox::backdrop{background:#050d0bcf}.lightbox img{max-width:90vw;max-height:84vh;object-fit:contain}.close-lightbox{position:absolute;top:0;right:8px;color:white;background:transparent;border:0;font-size:30px;line-height:1}
@media(max-width:900px){.nav{gap:16px}.site-header{gap:15px}.header-call{display:none}.intro{gap:35px}.section{padding-top:75px;padding-bottom:75px}.service-grid{grid-template-columns:repeat(2,1fr)}.about-text{padding:55px 35px}.estimate-grid{gap:35px}.form-panel{padding:28px}.brand{font-size:14px}.brand b{font-size:9px}}
@media(max-width:650px){body{padding-bottom:62px}.wrap{width:calc(100% - 36px)}.topline{justify-content:center;font-size:9px}.topline span:last-child{display:none}.site-header{height:70px;padding:0 18px}.brand{font-size:14px}.brand-mark{width:37px;height:37px}.menu-toggle{display:block;margin-left:auto;background:transparent;border:0;font-size:26px;color:var(--forest)}.nav{display:none;position:absolute;left:0;right:0;top:70px;background:#fff;padding:22px;box-shadow:0 15px 24px #0002;flex-direction:column}.nav.open{display:flex}.hero{height:650px;min-height:0}.hero-photo{object-position:60% center}.hero-shade{background:linear-gradient(90deg,#14241fda,#14241f79),linear-gradient(0deg,#14241f7d,transparent)}.hero-content{padding:40px 0}.hero h1{font-size:clamp(49px,12vw,72px)}.hero-content>p{font-size:15px}.hero-actions{flex-direction:column;align-items:stretch;max-width:315px}.hero-proof{flex-wrap:wrap;gap:10px;margin-top:26px}.vertical-caption{display:none}.intro,.estimate-grid,.about{grid-template-columns:1fr}.intro{gap:8px}.intro h2,.section-head h2,.area h2{font-size:39px}.section-head{display:block}.service-grid{grid-template-columns:1fr}.service-grid article{min-height:0;padding:28px}.gallery{grid-template-columns:repeat(2,1fr);gap:8px}.gallery-tile{aspect-ratio:1!important;grid-row:auto!important}.about-image{min-height:290px;max-height:350px}.about-text{padding:55px 22px}.area{padding-left:15px;padding-right:15px}.estimate{padding:65px 0}.estimate-lead h2{font-size:42px}.form-panel{padding:23px 18px}.form-row{grid-template-columns:1fr}.footer-main{flex-wrap:wrap;padding:36px 0;flex-direction:column}.bottom{flex-direction:column}.mobile-bar{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:15;box-shadow:0 -2px 12px #0003}.mobile-bar a{text-align:center;padding:15px 7px;font-size:14px;font-weight:700;background:var(--forest);color:#fff}.mobile-bar a+ a{background:var(--gold);color:#1c2824}.gallery-tile span{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* V2: add visual warmth and section definition across the light middle of the page */
.intro{background:#faf8f3;max-width:none;width:100%;padding-left:max(32px,calc((100% - 1146px)/2));padding-right:max(32px,calc((100% - 1146px)/2));}
.gallery-section{background:#f7f5f0;max-width:none;width:100%;padding-left:max(32px,calc((100% - 1146px)/2));padding-right:max(32px,calc((100% - 1146px)/2));}
.services{background:#eeeae1;}
.service-grid article{background:#f9f7f2;}
@media(max-width:650px){.intro,.gallery-section{padding-left:18px;padding-right:18px;}}

/* Keep required marks next to their labels, not in separate grid rows. */
.form-panel label .field-label{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;color:var(--ink)}
.form-panel label .field-label .required-mark{color:#a35d39}
/* Allow the extra footer link to wrap neatly on smaller screens. */
.foot-links{flex-wrap:wrap}
