:root{--red:#500000;--red-dark:#330000;--ink:#201417;--paper:#f2eee7;--white:#fff;--muted:#b7adb0;--gold:#c7a35d;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit}button,a{touch-action:manipulation}.site-header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 max(30px,calc((100vw - var(--max))/2));color:var(--white);position:absolute;top:24px;left:0;right:0;z-index:20}.brand{display:flex;align-items:center;text-decoration:none}.brand img{display:block;width:106px;height:106px;object-fit:contain}.site-header nav{display:flex;align-items:center;gap:30px}.site-header nav a{text-decoration:none;font-size:.88rem;font-weight:700}.nav-cta{background:var(--red);padding:14px 20px;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem!important}.menu-button{display:none;background:transparent;color:white;border:1px solid #ffffff77;padding:9px 12px;font-weight:700}.hero{min-height:900px;position:relative;color:var(--white);display:flex;align-items:center;overflow:hidden}.hero-bg,.hero-shade{position:absolute;inset:0}.hero-bg{background:url('assets/construction-hero.png') center/cover no-repeat;transform:scale(1.02)}.hero-shade{background:linear-gradient(90deg,rgba(28,15,18,.92) 0%,rgba(28,15,18,.65) 48%,rgba(28,15,18,.20) 100%),linear-gradient(0deg,rgba(22,11,14,.65),transparent 45%)}.hero-copy{position:relative;z-index:2;width:min(850px,calc(100% - 60px));margin-left:max(30px,calc((100vw - var(--max))/2));padding:180px 0 190px}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.75rem;font-weight:800;color:#eee7e8;margin:0 0 22px}.eyebrow:before{content:"";display:inline-block;width:40px;height:1px;background:var(--gold);margin:0 14px 4px 0}.eyebrow.red{color:var(--red)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.8rem,7.4vw,6.8rem);text-transform:uppercase;line-height:.95;letter-spacing:-.045em;margin-bottom:30px;max-width:900px}h1 span{color:#fff}.hero-copy>p:not(.eyebrow){font-size:1.12rem;max-width:680px;color:#eee8e9}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 24px;text-decoration:none;font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.76rem}.button.primary{background:var(--red)}.button.secondary{border:1px solid #ffffffaa;background:transparent}.hero-stat{position:absolute;z-index:3;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);background:#1c1013e8;color:var(--white);border-top:1px solid #ffffff2e}.hero-stat div{padding:24px;text-align:center;border-right:1px solid #ffffff2e}.hero-stat strong,.hero-stat span{display:block}.hero-stat strong{font-size:1.7rem}.hero-stat span{text-transform:uppercase;letter-spacing:.18em;font-size:.66rem;color:#d8cfd1}.section{max-width:var(--max);margin:auto;padding:120px 30px}.section-heading{display:grid;grid-template-columns:.8fr 2fr;gap:60px;align-items:start;margin-bottom:62px}.section h2,.work h2,.contact h2{font-size:clamp(2.5rem,5vw,4.6rem);text-transform:uppercase;line-height:1;letter-spacing:-.04em;margin-bottom:24px}.service-grid{border-top:1px solid #bdb5aa}.service-grid .service-item{display:grid;grid-template-columns:70px 1fr 1.35fr 54px;align-items:center;gap:24px;padding:29px 0;border-bottom:1px solid #bdb5aa;text-decoration:none;color:inherit}.service-grid .service-item:hover h3,.service-grid .service-item:focus-visible h3{color:var(--red)}.number{font-weight:900;color:var(--red);font-size:.78rem}.service-grid h3{font-size:1.4rem;text-transform:uppercase;margin:0}.service-grid p{color:#625b56;margin:0}.service-arrow{width:46px;height:46px;border:1px solid #999087;display:grid;place-items:center;color:var(--red);font-size:1.3rem}.work{background:var(--ink);color:white;padding:110px max(30px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1fr 1fr;gap:110px}.work-intro>p:last-child{color:var(--muted);font-size:1.05rem}.process{list-style:none;padding:0;margin:0;border-top:1px solid #ffffff2d}.process li{display:grid;grid-template-columns:60px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid #ffffff2d}.process li>span{color:var(--gold);font-weight:900}.process h3{font-size:1.3rem;text-transform:uppercase;margin-bottom:4px}.process p{color:var(--muted);margin:0}.about-card{background:#fff;border-left:8px solid var(--red);padding:70px;display:grid;grid-template-columns:1fr 1fr;gap:90px}.about-card p,.about-card li{color:#5f5854}.about-card ul{padding-left:20px}.contact{background:var(--red);color:white;padding:100px max(30px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:1.2fr 1fr;gap:100px}.contact-links{border-top:1px solid #ffffff66}.contact-links a,.contact-links>p{display:grid;padding:18px 0;border-bottom:1px solid #ffffff66;text-decoration:none;margin:0}.contact-links span{text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;opacity:.8}.contact-links strong{font-size:1.08rem}.site-footer{background:#100b0d;color:#c9bec0;padding:80px max(30px,calc((100vw - var(--max))/2)) 28px;display:grid;grid-template-columns:1.45fr repeat(4,1fr);gap:46px 34px;font-size:.9rem}.footer-logo{display:block;width:150px;margin-bottom:18px}.footer-logo img{display:block;width:100%;height:auto}.footer-intro p{max-width:290px;color:#b9afb1}.site-footer h2{color:#fff;font-size:.84rem;text-transform:uppercase;letter-spacing:.16em;margin:0 0 20px}.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{text-decoration:underline}.site-footer p{margin:0}.footer-proposal{display:inline-flex;background:var(--red);padding:13px 16px;font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:900}.footer-proposal.small{margin-top:10px}.footer-contact a{overflow-wrap:anywhere}.footer-bottom{grid-column:1/-1;border-top:1px solid #ffffff26;padding-top:24px;margin-top:22px;display:flex;justify-content:space-between;gap:24px;color:#a99fa1}
.gallery{padding-top:50px}.gallery-intro{max-width:680px;color:#625b56}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery-slot{min-height:320px;background:#ded8cf;border:1px solid #c8c0b5;padding:28px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.gallery-slot:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,transparent 49.5%,#c8c0b5 50%,transparent 50.5%)}.gallery-slot span,.gallery-slot strong,.gallery-slot small{position:relative}.gallery-slot span{color:var(--red);font-weight:900;margin-bottom:auto}.gallery-slot strong{text-transform:uppercase;font-size:1.12rem}.gallery-slot small{color:#6e665f}
.reviews{padding-top:60px}.reviews-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:56px;align-items:start}.review-form{background:#fff;border-top:6px solid var(--red);padding:34px;display:grid;gap:12px}.review-form label,.review-form legend{font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:.76rem}.review-form input[type="text"],.review-form textarea{width:100%;border:1px solid #aaa198;background:#fff;padding:13px 14px;font:inherit;color:var(--ink)}.review-form textarea{resize:vertical;min-height:130px}.review-form input:focus,.review-form textarea:focus{outline:3px solid #50000033;border-color:var(--red)}.review-form fieldset{border:0;padding:2px 0;margin:0}.star-rating{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:5px}.star-rating input{position:absolute;opacity:0;pointer-events:none}.star-rating label{font-size:2.2rem;line-height:1;color:#b9b0a8;cursor:pointer;letter-spacing:0}.star-rating label:hover,.star-rating label:hover~label,.star-rating input:checked~label,.star-rating input:focus-visible+label{color:var(--red)}.review-form .button{border:0;cursor:pointer;margin-top:8px}.review-status{min-height:1.5em;margin:0;color:#4f4945;font-weight:700}.review-list{display:grid;gap:16px}.review-empty{padding:30px;border:1px solid #c8c0b5;color:#6e665f}.review-card{background:#fff;padding:28px;border-left:5px solid var(--red)}.review-card header{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:12px}.review-card strong{text-transform:uppercase}.review-card .stars{color:var(--red);letter-spacing:.08em;white-space:nowrap}.review-card p{margin:0;color:#5f5854;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:1000px){.site-footer{grid-template-columns:1.35fr repeat(2,1fr)}.footer-intro{grid-row:span 2}}
@media(max-width:800px){.site-header{height:74px;top:10px;padding:0 20px}.menu-button{display:block}.site-header nav{display:none;position:absolute;top:74px;left:20px;right:20px;background:var(--ink);padding:24px;flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.site-header nav a{padding:7px}.nav-cta{text-align:center}.hero{min-height:820px}.hero-copy{padding:150px 0 230px;margin-left:20px;width:calc(100% - 40px)}.hero-stat{grid-template-columns:repeat(3,1fr)}.hero-stat div{padding:16px 8px}.hero-stat strong{font-size:1.05rem}.hero-stat span{font-size:.57rem}.section{padding:85px 20px}.section-heading,.reviews-layout,.work,.about-card,.contact{grid-template-columns:1fr}.section-heading{gap:4px}.service-grid .service-item{grid-template-columns:48px 1fr 42px;gap:12px}.service-grid .service-item p{grid-column:2/4}.service-arrow{grid-column:3;grid-row:1}.gallery-grid{grid-template-columns:1fr}.gallery-slot{min-height:220px}.reviews-layout{gap:28px}.review-form{padding:26px 20px}.work{padding:85px 20px;gap:50px}.about-card{padding:38px 28px;gap:25px}.contact{padding:80px 20px;gap:42px}.site-footer{grid-template-columns:1fr 1fr;padding:60px 20px 24px}.footer-intro{grid-column:1/-1;grid-row:auto}.footer-bottom{flex-direction:column}.hero-shade{background:linear-gradient(90deg,rgba(28,15,18,.94),rgba(28,15,18,.45))}}
@media(max-width:520px){.site-footer{grid-template-columns:1fr}.footer-intro,.footer-bottom{grid-column:1}.footer-logo{width:130px}}
@media(max-width:500px){h1{font-size:3.25rem}.hero-actions{flex-direction:column}.button{width:100%}.brand img{width:76px;height:76px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.menu-button{width:48px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:0;cursor:pointer}.menu-button span{display:block;width:24px;height:2px;background:#fff;transition:transform .2s ease,opacity .2s ease}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav-capabilities{display:none}
@media(max-width:800px){.menu-button{display:flex}.site-header nav{max-height:calc(100vh - 104px);overflow-y:auto}.nav-capabilities{display:flex;flex-direction:column;border-top:1px solid #ffffff2d;border-bottom:1px solid #ffffff2d;margin:5px 0;padding:12px 0}.nav-capabilities>span{color:var(--gold);font-size:.7rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;padding:0 7px 7px}.site-header nav .nav-capabilities a{padding:6px 7px 6px 18px;font-size:.82rem;color:#e2dadd}}
.service-copy p{margin-bottom:12px}.service-copy strong{display:block;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;margin-bottom:7px}.service-materials{margin:0;padding-left:20px;display:grid;grid-template-columns:1fr 1fr;gap:3px 18px;color:#625b56;font-size:.92rem}@media(max-width:800px){.service-grid .roofing-item .service-copy{grid-column:2/4}.service-materials{grid-template-columns:1fr}}
.gallery-slot.has-photos{grid-column:span 2;padding:0;background:var(--ink);border-color:var(--ink);justify-content:stretch}.gallery-slot.has-photos:before{display:none}.gallery-photos{display:grid;grid-template-columns:1fr 1fr;min-height:0}.gallery-photos img{display:block;width:100%;height:260px;min-height:0;object-fit:cover}.gallery-caption{padding:22px 26px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;color:#fff}.gallery-caption span{margin:0}.gallery-caption small{color:#c9bec0}@media(max-width:800px){.gallery-slot.has-photos{grid-column:auto}.gallery-photos{grid-template-columns:1fr}.gallery-photos img{height:260px;min-height:0}.gallery-caption{grid-template-columns:auto 1fr}.gallery-caption small{grid-column:2}}
#gallery-siding .gallery-photos{grid-template-columns:repeat(2,1fr)}
.gallery-slot.roofing-project{grid-column:1/-1}.roofing-sequence{grid-template-columns:repeat(3,1fr);min-height:0}.roofing-sequence figure{position:relative;margin:0;overflow:hidden;background:#171415}.roofing-sequence img{height:260px;min-height:0;object-fit:cover}.roofing-sequence figcaption{position:absolute;left:14px;bottom:14px;padding:7px 11px;background:rgba(74,0,30,.94);color:#fff;font-size:.76rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}@media(max-width:800px){.gallery-slot.roofing-project{grid-column:auto}.roofing-sequence{grid-template-columns:repeat(3,1fr)}.roofing-sequence img{height:auto;min-height:0;aspect-ratio:4/3}.roofing-sequence figcaption{left:7px;bottom:7px;padding:5px 7px;font-size:.65rem;letter-spacing:.06em}}
.fascia-sequence{grid-template-columns:repeat(4,1fr)}@media(max-width:800px){.fascia-sequence{grid-template-columns:repeat(4,1fr)}}
.fencing-sequence{grid-template-columns:repeat(5,1fr)}@media(max-width:800px){.fencing-sequence{grid-template-columns:repeat(5,1fr)}}
.gallery-photos img{cursor:zoom-in;transition:filter .2s ease}.gallery-photos img:hover{filter:brightness(.88)}.gallery-photos img:focus-visible{outline:4px solid var(--gold);outline-offset:-4px}.gallery-lightbox{width:min(94vw,1200px);height:min(92vh,900px);padding:54px 24px 20px;border:0;background:#100b0df2;color:#fff;overflow:hidden}.gallery-lightbox::backdrop{background:rgba(9,5,7,.88)}.gallery-lightbox[open]{display:flex;flex-direction:column;align-items:center;justify-content:center}.gallery-lightbox img{display:block;max-width:100%;max-height:calc(100% - 42px);width:auto;height:auto;object-fit:contain}.gallery-lightbox p{margin:12px 0 0;text-align:center;font-size:.9rem;color:#ddd3d5}.lightbox-close{position:absolute;top:10px;right:14px;width:42px;height:42px;border:1px solid #ffffff77;border-radius:50%;background:#500000;color:#fff;font-size:2rem;line-height:1;cursor:pointer}.lightbox-close:hover,.lightbox-close:focus-visible{background:#700000;outline:3px solid var(--gold)}
#gallery-painting .gallery-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
.hero-bg{background-image:none;background-color:#100b0d;transform:none}
