
:root{--ink:#17251f;--green:#1d3028;--green2:#263b31;--cream:#f4f0e8;--paper:#fbf9f4;--tan:#c6a27b;--text:#26312c;--muted:#6c746f;--line:#d9d3c8;--white:#fff;--shadow:0 16px 46px rgba(18,31,25,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--paper);line-height:1.58}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 40px));margin:auto}
header{position:sticky;top:0;z-index:50;background:rgba(244,240,232,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(29,48,40,.08)}nav{height:82px;display:flex;align-items:center;justify-content:space-between;gap:28px}.wordmark{display:inline-flex;flex-direction:column;line-height:.92;color:var(--green);font-weight:800;letter-spacing:.22em;font-size:19px}.wordmark small{font-size:8px;letter-spacing:.28em;margin-top:9px;font-weight:650}.navlinks{display:flex;align-items:center;gap:25px;font-size:14px;font-weight:650}.navlinks>a:not(.btn):hover{color:#84684b}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid transparent;font-weight:750;letter-spacing:.02em;transition:.2s}.btn-primary{background:var(--tan);color:#18231e}.btn-dark{background:var(--green);color:white}.btn-light{background:var(--cream);color:var(--green);border-color:#d7cfc0}.btn-outline{border-color:rgba(255,255,255,.65);color:white;background:rgba(0,0,0,.12)}.btn:hover{transform:translateY(-1px)}.menu-toggle{display:none;border:0;background:none;font-size:26px;color:var(--green);padding:8px}
.hero{background:var(--green);color:white}.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;min-height:640px}.hero-copy{padding:84px 56px 74px 0;display:flex;flex-direction:column;justify-content:center}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.22em;font-size:12px;font-weight:800;color:var(--tan)}h1,h2,h3{line-height:1.06;margin:0 0 18px}h1{font-size:clamp(3.4rem,6.8vw,6.8rem);letter-spacing:-.045em}h2{font-size:clamp(2.2rem,4vw,4.2rem);letter-spacing:-.035em;color:var(--green)}h3{font-size:1.35rem;color:var(--green)}.hero p{font-size:1.12rem;color:#e7ece8;max-width:680px}.hero-image{position:relative;min-height:520px}.hero-image img{width:100%;height:100%;object-fit:cover}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,48,40,.2),transparent 45%)}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.trustline{margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.24);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#e0e6e2}
section{padding:86px 0}.intro{font-size:1.08rem;color:#59615d;max-width:780px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}.service-card{background:#fff;border:1px solid #e4ddd2;padding:30px;min-height:240px;display:flex;flex-direction:column}.service-card .num{color:var(--tan);font-size:12px;letter-spacing:.16em;font-weight:800}.service-card p{color:#656d68}.service-card a{margin-top:auto;font-weight:800;color:var(--green)}
.about-home{background:var(--cream)}.about-split{display:grid;grid-template-columns:.78fr 1.22fr;gap:0;background:var(--green);color:white;box-shadow:var(--shadow)}.about-photo{min-height:610px}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%}.about-copy{padding:62px}.about-copy h2{color:white}.about-copy p{color:#e6ebe8}.signature{font-family:Georgia,serif;font-style:italic;font-size:1.5rem;color:#e5c6a3;margin-top:28px}.strengths{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:28px}.strength{border-top:1px solid rgba(255,255,255,.2);padding-top:12px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#f4f0e8}
.endorsement{background:#efe7da}.quote-wrap{display:grid;grid-template-columns:1.55fr .45fr;gap:54px;align-items:center}.quote{font-family:Georgia,serif;font-size:clamp(1.35rem,2.3vw,2.15rem);line-height:1.45;color:#24352d}.quote:before{content:'“';font-size:5rem;line-height:0;vertical-align:-.35em;color:var(--tan);margin-right:8px}.quote-by{margin-top:24px;font-weight:800}.quote-side{border-left:1px solid #cdbfae;padding-left:38px}.quote-side strong{display:block;font-size:1.3rem;color:var(--green);margin-bottom:8px}.quote-side p{color:#606863}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}.gallery figure{margin:0;background:#fff;border:1px solid #e4ddd2}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover}.gallery figcaption{padding:16px 18px;font-weight:750}.gallery .wide{grid-column:span 2}.gallery .wide img{aspect-ratio:2/1}
.page-hero{background:var(--green);color:white;padding:70px 0}.page-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:50px;align-items:center}.page-hero h1{font-size:clamp(3rem,6vw,6rem)}.page-hero p{color:#e4ebe7;font-size:1.12rem}.page-hero img{width:100%;aspect-ratio:4/3;object-fit:cover}.content-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:54px}.panel{background:var(--cream);padding:34px;border:1px solid #ded5c8}.list{padding-left:18px}.list li{margin:9px 0}.dark-section{background:var(--green);color:white}.dark-section h2,.dark-section h3{color:white}.dark-section p{color:#dfe6e2}.cta{background:linear-gradient(rgba(22,37,31,.86),rgba(22,37,31,.86)),url('images/joinery-storage.jpg') center/cover;color:white}.cta-grid{display:grid;grid-template-columns:1fr auto;gap:35px;align-items:center}.cta h2{color:white;margin-bottom:8px}.cta p{color:#e5ebe7;margin:0}.contact-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:48px}.contact-card{background:var(--green);color:white;padding:38px}.contact-card h3{color:white}.contact-card a{display:block;margin:12px 0}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.contact-form label{font-size:13px;font-weight:800;color:var(--green)}.contact-form input,.contact-form select,.contact-form textarea{width:100%;padding:14px;border:1px solid #cfc8bc;background:#fff;font:inherit}.contact-form textarea{min-height:150px;resize:vertical}.contact-form .full{grid-column:1/-1}.form-note{font-size:12px;color:#7a807c}
footer{background:#13241d;color:#e8edea;padding:48px 0 22px}.footer-grid{display:grid;grid-template-columns:1.25fr .7fr 1fr;gap:50px}.footer-wordmark{color:white}.footer-grid h4{margin:0 0 14px;color:#d7b693}.footer-grid a{display:block;margin:8px 0;color:#e7ece9}.legal{border-top:1px solid rgba(255,255,255,.14);margin-top:36px;padding-top:20px;font-size:12px;color:#aebbb4}
@media(max-width:900px){.navlinks{position:fixed;top:82px;left:0;right:0;background:var(--cream);padding:22px;display:none;flex-direction:column;align-items:stretch;border-bottom:1px solid #d9d0c2;box-shadow:0 18px 40px rgba(0,0,0,.12)}.navlinks.open{display:flex}.menu-toggle{display:block}.hero-grid,.page-hero-grid,.about-split,.quote-wrap,.content-grid,.contact-grid,.cta-grid{grid-template-columns:1fr}.hero-copy{padding:62px 0 48px}.hero-image{min-height:430px}.service-grid{grid-template-columns:1fr 1fr}.about-photo{min-height:460px}.about-copy{padding:42px 30px}.quote-side{border-left:0;border-top:1px solid #cdbfae;padding:28px 0 0}.gallery{grid-template-columns:1fr 1fr}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.cta .btn{justify-self:start}}
@media(max-width:620px){.wrap{width:min(100% - 28px,1180px)}nav{height:72px}.navlinks{top:72px}.wordmark{font-size:16px}section{padding:60px 0}.hero-grid{min-height:auto}.hero-copy{padding:52px 0 38px}h1{font-size:clamp(3rem,15vw,4.7rem)}h2{font-size:clamp(2.1rem,11vw,3.4rem)}.hero-image{min-height:360px}.buttons{flex-direction:column}.buttons .btn{width:100%}.service-grid,.gallery,.strengths,.contact-form{grid-template-columns:1fr}.gallery .wide{grid-column:auto}.about-photo{min-height:420px}.about-copy{padding:34px 22px}.quote{font-size:1.28rem}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.page-hero{padding:50px 0}.page-hero-grid{gap:30px}.page-hero img{aspect-ratio:1.15}.contact-form .full{grid-column:auto}}


/* v20 homepage hero: based on approved warm Hilltown concept, using a real project photograph */
.brand-logo{display:flex;align-items:center;flex:0 0 auto}.brand-logo img{width:178px;height:auto;max-height:62px;object-fit:contain}
.home header{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(13,24,20,.72),rgba(13,24,20,.18),transparent);border-bottom:0;backdrop-filter:none;color:#fff}.home header .navlinks>a:not(.btn){color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.25)}.home header .navlinks>a:not(.btn):hover{color:#e5c39c}.home header .menu-toggle{color:#fff}.home header nav{height:108px}.home header .btn-primary{background:#d2a56d;color:#172019}
.home-hero{position:relative;min-height:900px;background:#17251f;overflow:hidden;display:flex;align-items:stretch;padding:0}.home-hero .hero-bg,.home-hero .hero-shade{position:absolute;inset:0}.home-hero .hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 47%;filter:saturate(1.12) contrast(1.06) brightness(.88)}.home-hero .hero-shade{background:linear-gradient(90deg,rgba(10,20,16,.78) 0%,rgba(10,20,16,.48) 34%,rgba(10,20,16,.12) 64%,rgba(10,20,16,.08) 100%),linear-gradient(180deg,rgba(9,17,14,.2) 0%,transparent 45%,rgba(8,15,12,.45) 100%)}
.hero-overlay{position:relative;z-index:2;min-height:900px;display:flex;flex-direction:column;justify-content:center;padding-top:105px}.home-hero .hero-copy{padding:40px 0 150px;max-width:760px}.home-hero .eyebrow{color:#fff;letter-spacing:.28em;margin-bottom:22px}.home-hero h1{font-size:clamp(3.35rem,6vw,6.6rem);line-height:.98;letter-spacing:-.045em;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.28)}.home-hero h1 span{color:#d7ad79}.home-hero p{font-size:clamp(1.05rem,1.6vw,1.3rem);max-width:620px;color:#f2f2ed;text-shadow:0 1px 15px rgba(0,0,0,.35)}.home-hero .buttons{margin-top:30px}.home-hero .btn{min-height:56px;padding:15px 28px}.home-hero .btn-primary{background:#d2a56d;color:#172019}.home-hero .btn-outline{background:rgba(20,29,25,.18);backdrop-filter:blur(4px)}
.hero-benefits{position:absolute;left:20px;right:20px;bottom:34px;display:flex;gap:0;align-items:stretch;max-width:930px}.hero-benefits>div{display:flex;align-items:center;gap:14px;padding:14px 28px 14px 0;margin-right:28px;border-right:1px solid rgba(255,255,255,.35);color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.hero-benefits>div:last-child{border-right:0;margin-right:0}.benefit-icon{font-size:28px;color:#e0bb8b;line-height:1}
@media(max-width:900px){.brand-logo img{width:150px}.home header nav{height:84px}.home .navlinks{top:84px;background:#f4f0e8}.home header .navlinks.open a:not(.btn){color:var(--green);text-shadow:none}.home-hero,.hero-overlay{min-height:760px}.home-hero .hero-bg img{object-position:58% center}.home-hero .hero-shade{background:linear-gradient(90deg,rgba(9,18,14,.78),rgba(9,18,14,.38) 68%,rgba(9,18,14,.12)),linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.18))}.home-hero .hero-copy{max-width:650px;padding:70px 0 180px}.hero-benefits{left:20px;right:20px;bottom:24px;max-width:none;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(12,23,18,.48);backdrop-filter:blur(5px)}.hero-benefits>div{padding:16px;margin:0}.hero-benefits>div strong{font-size:10px}}
@media(max-width:620px){.brand-logo img{width:132px}.home header nav{height:72px}.home .navlinks{top:72px}.home-hero,.hero-overlay{min-height:720px}.home-hero .hero-bg img{object-position:61% center}.home-hero .hero-shade{background:linear-gradient(180deg,rgba(10,19,15,.62) 0%,rgba(10,19,15,.42) 30%,rgba(10,19,15,.24) 58%,rgba(10,19,15,.62) 100%)}.hero-overlay{justify-content:flex-end;padding-top:90px}.home-hero .hero-copy{padding:0 0 180px;max-width:100%}.home-hero .eyebrow{font-size:10px;margin-bottom:15px}.home-hero h1{font-size:clamp(2.65rem,13vw,4.2rem)}.home-hero p{font-size:1rem;max-width:92%}.home-hero .buttons{flex-direction:row}.home-hero .buttons .btn{width:auto;min-height:50px;padding:12px 16px;font-size:13px}.hero-benefits{left:14px;right:14px;bottom:16px;grid-template-columns:1fr 1fr}.hero-benefits>div{padding:11px 10px}.hero-benefits>div:nth-child(2){border-right:0}.hero-benefits>div:nth-child(3){grid-column:1/-1;border-top:1px solid rgba(255,255,255,.25);border-right:0}.benefit-icon{font-size:22px}}
