*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;color:#231b2b;background:#fff;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #a12ade;outline-offset:5px}.wrap{width:min(1280px,90%);margin:auto}.draft{background:#eee8f3;text-align:center;font-size:14px;padding:7px 16px}header{min-height:106px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:23px;font-weight:800;letter-spacing:1px;line-height:1.1;display:flex;align-items:center;gap:13px}.brand small{display:block;font-size:11px;letter-spacing:2.8px;margin-top:7px}.mark{border:2px solid #231b2b;padding:11px 7px;font-size:22px}nav{display:flex;gap:30px;font-size:14px}.button{display:inline-flex;gap:38px;align-items:center;background:#231b2b;color:#fff;padding:17px 24px;font-weight:600;font-size:16px}.button:hover{background:#74239c}.button.small{font-size:14px;padding:12px 18px;gap:22px}.hero{display:grid;grid-template-columns:1fr 1fr;position:relative;background:#f7f3fa}.hero-copy{padding:76px 8% 42px 9%}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;margin:0 0 24px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,serif;font-size:clamp(48px,5.2vw,76px);font-weight:400;line-height:1.05;letter-spacing:-2.5px;margin-bottom:28px}.intro{font-size:19px;line-height:1.65;margin-bottom:30px}.hero-note{font-size:13px;margin-top:23px;color:#655a6d}.hero-photo{margin:0;position:relative;min-height:550px}.hero-photo img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 57%}.hero-photo figcaption{position:absolute;bottom:0;padding:18px 24px;color:white;background:linear-gradient(transparent,#14241bc9);width:100%;display:flex;justify-content:space-between;gap:12px;font-size:12px}.hero-photo figcaption span:first-child{letter-spacing:1.4px}.hero-bottom{grid-column:1/-1;border-top:1px solid #e3d8e9;display:flex;justify-content:space-around;padding:19px;font-size:12px;letter-spacing:2px}.section{padding-top:95px;padding-bottom:95px}h2{font-family:Georgia,serif;font-size:clamp(36px,4vw,50px);font-weight:400;line-height:1.15;letter-spacing:-1px;margin-bottom:24px}h3{font-size:24px;line-height:1.3;margin-bottom:13px}.services{display:grid;grid-template-columns:1fr 1fr;gap:60px}.service-list article{display:flex;gap:28px;padding:24px 0;border-top:1px solid #e3d8e9}.service-list article:last-child{border-bottom:1px solid #e3d8e9}.service-list p{color:#655a6d;margin:0;max-width:450px}.number{font-size:13px;color:#7b6887;padding-top:6px}.work{background:#f7f3fa}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.section-heading p:last-child{color:#655a6d}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:30px}.gallery figure{margin:0}.gallery img{display:block;width:100%;height:410px;object-fit:cover}.gallery figure:first-child img{object-position:50% 53%}.gallery figcaption{padding:17px 0;display:flex;justify-content:space-between;gap:20px;font-size:14px}.gallery figcaption span{color:#6f6079}.area{text-align:center;max-width:760px}.area>p:not(.eyebrow){color:#655a6d;font-size:18px}.area-tags{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:30px}.area-tags span{border:1px solid #e3d8e9;padding:8px 16px;font-size:14px}.estimate{background:#231b2b;color:#fff;padding:80px 0}.estimate-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}.estimate .eyebrow{color:#f0b4ff}.estimate h2{font-size:54px}.estimate p{color:#e8dfee}.contact-options{display:flex;gap:20px;margin-top:30px;color:#f0b4ff}.preview-note{font-size:13px;max-width:330px;margin-top:16px}form{background:white;color:#231b2b;padding:32px}form h3{font-size:24px}.form-note{font-size:13px;color:#655a6d!important}label{display:block;font-size:14px;margin-bottom:15px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}input,select,textarea{display:block;width:100%;border:1px solid #d6c8df;border-radius:0;padding:10px 12px;margin-top:6px;background:#fff;color:#231b2b;min-width:0}textarea{resize:vertical}form button{width:100%;border:0;padding:14px;background:#e9e0ee;color:#6e5e78;font-size:14px}footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-top:38px;padding-bottom:38px;font-size:12px;color:#6f6079}footer .brand{display:block;color:#231b2b;font-size:20px}footer p{margin:0}@media(max-width:900px){nav{gap:15px}.hero-copy{padding:50px 7% 25px}h1{font-size:52px}.hero-photo{min-height:520px}.hero-photo figcaption span:last-child{display:none}.services{gap:30px}.estimate-grid{gap:30px}.estimate h2{font-size:43px}.gallery img{height:330px}.gallery figcaption{display:block}.gallery figcaption span{display:block}.fields{grid-template-columns:1fr;gap:0}}@media(max-width:640px){header{min-height:90px;gap:12px}header nav{display:none}.brand{font-size:18px;gap:8px}.brand small{font-size:9px;letter-spacing:2px}.mark{font-size:17px;padding:8px 5px}.button.small{font-size:12px;padding:11px;gap:8px}.hero{grid-template-columns:1fr}.hero-copy{padding:42px 25px 20px}h1{font-size:55px}.intro{font-size:17px}.hero-photo{min-height:380px}.hero-bottom{font-size:10px;letter-spacing:1px;padding:16px 8px}.section{padding-top:58px;padding-bottom:58px}.services,.gallery,.estimate-grid{grid-template-columns:1fr}.services{gap:15px}.section-heading{display:block}.gallery{gap:24px}.gallery img{height:350px}.gallery figure:last-child img{height:270px}.estimate{padding:55px 0}form{padding:24px}.fields{grid-template-columns:1fr 1fr;gap:12px}footer{flex-wrap:wrap;gap:24px}.draft{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Branding from the supplied business card. Logo paths extracted from its PDF. */
:root{--brand-gradient:linear-gradient(115deg,#bd3cfc 0%,#ce69f2 50%,#dc65c9 100%)}header.wrap{width:100%;padding:14px 5%;background:#231b2b;color:#fff;min-height:130px}header .brand img,footer .brand img{display:block;width:145px;height:auto}h1,h2{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:-2px}h1{font-size:clamp(44px,4.8vw,68px)}.hero{margin-top:28px}.hero-copy{background:var(--brand-gradient);color:#25142e}.hero-note{color:#402649}.hero-bottom{background:#231b2b;color:#fff;border:0;position:relative}.hero-bottom:after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:9px;background:repeating-linear-gradient(135deg,#c64bf2 0 14px,#fff 14px 28px)}.button{background:#231b2b;color:#fff}header .button{background:var(--brand-gradient);color:#25142e}a:focus-visible{outline-color:#be3ff4}.number{color:#8821b1}.estimate{background:#231b2b;border-top:9px solid #ce69f2}.estimate h2{font-size:clamp(38px,4vw,54px)}.estimate .eyebrow{color:#e4a4ff}.contact-options{color:#e4a4ff}.area-tags span{background:#f7f3fa;border-color:#e2c4ef}footer.wrap{width:100%;padding:32px 5%;background:#17121d;color:#d8cce0}footer .brand{color:#fff}@media(max-width:640px){header.wrap{min-height:106px;padding:10px 5%}header .brand img{width:112px;height:auto}.hero{margin-top:18px}h1{font-size:48px}.hero-copy{padding-top:36px}.hero-bottom{font-size:10px}footer .brand img{width:130px}}

.hero-bottom{gap:12px;flex-wrap:wrap;text-align:center}.hero-bottom span{white-space:nowrap}

/* Persistent licensing notice in the shared site header. */
header.wrap{position:sticky;top:0;z-index:20;flex-wrap:wrap;row-gap:10px;padding-top:0}.license-banner{flex:0 0 calc(100% + 11.112%);margin:0 -5.556%;padding:7px 16px;text-align:center;background:#e7b6fa;color:#261232;font-size:14px;font-weight:800;letter-spacing:1.6px}.footer-license{display:inline-block;color:#edbeff;font-size:16px;margin-bottom:8px}html{scroll-padding-top:180px}@media(max-width:640px){header.wrap{padding-top:0;row-gap:8px}.license-banner{font-size:12px;padding:6px 12px}html{scroll-padding-top:160px}}

.hero{grid-template-columns:0.8fr 1.2fr}.hero-photo img{object-position:center}.hero-photo{min-height:450px}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-photo{min-height:0;aspect-ratio:16/9}.hero-photo img{position:absolute;object-fit:cover}}

/* Equal emphasis for deck and fence services. */
.services{display:block}.services>div:first-child{margin-bottom:32px}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.service-list article,.service-list article:last-child{border:1px solid #e3d8e9;background:#f7f3fa;padding:30px;gap:18px}.service-list article>div{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:0}.service-list h3{font-size:26px}.service-list p{margin-bottom:24px}.service-cta{margin-top:auto;gap:14px;font-size:14px}.service-list article{scroll-margin-top:20px}@media(max-width:700px){.service-list{grid-template-columns:1fr}.service-list article,.service-list article:last-child{padding:24px}.service-list h3{font-size:24px}.service-cta{padding:14px 16px}}

.gallery figcaption{display:block}.gallery figcaption strong,.gallery figcaption span{display:block}.gallery figcaption strong{margin-bottom:6px}.gallery figcaption span{max-width:52ch}

.safety-intro{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:44px 0;border-bottom:1px solid #e3d8e9}.safety-intro h2{font-size:clamp(28px,3vw,40px)}.safety-intro p:last-child{max-width:650px;margin-bottom:0}.safety-intro .button{flex-shrink:0}.safety-intro .eyebrow{margin-bottom:12px}.featured-project{border-top:1px solid #e3d8e9}.project-story{max-width:800px;color:#655a6d;font-size:18px}.project-comparison{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}.project-comparison figure{margin:0;background:#f7f3fa}.project-comparison img{display:block;width:100%;height:480px;object-fit:contain;background:#eee8f3}.project-comparison figcaption{padding:20px}.project-comparison strong,.project-comparison span{display:block}.project-comparison span{color:#655a6d;margin-top:6px;font-size:14px}@media(max-width:700px){.safety-intro{display:block}.safety-intro .button{margin-top:22px}.project-comparison{grid-template-columns:1fr}.project-comparison img{height:auto;max-height:620px}}

.project-viewer{margin:28px 0 24px}.project-toggle{display:flex;gap:8px;margin-bottom:16px}.project-toggle button{border:1px solid #231b2b;background:#fff;color:#231b2b;padding:12px 28px;cursor:pointer;font-weight:700}.project-toggle button[aria-pressed="true"]{background:#231b2b;color:#fff}.project-viewer figure{margin:0;background:#f7f3fa}.project-viewer figure[hidden]{display:none}.project-viewer img{display:block;width:100%;height:560px;object-fit:contain;background:#eee8f3}.project-viewer figcaption{padding:20px}.project-viewer figcaption strong,.project-viewer figcaption span{display:block}.project-viewer figcaption span{color:#655a6d;font-size:14px;margin-top:6px}.featured-project .project-story{margin-bottom:28px}@media(max-width:700px){.project-viewer img{height:400px}.project-toggle button{flex:1}}

/* Direct contact links use the business number supplied by the owner. */
.contact-phone{display:inline-block;font-size:clamp(24px,3vw,32px);font-weight:700;color:#fff}.contact-options{flex-wrap:wrap;gap:12px;margin-top:18px}.contact-options a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid #e4a4ff;font-weight:700}.contact-options a:hover{background:#e4a4ff;color:#231b2b}.contact-note{font-size:14px;margin-top:18px;max-width:360px}.footer-phone{display:inline-block;margin-top:8px;color:#edbeff;font-size:16px}.contact-phone:hover,.footer-phone:hover{text-decoration:underline}
.estimate-grid.contact-only{grid-template-columns:minmax(0,720px);justify-content:center}.contact-only form[hidden]{display:none}
