:root{--ink:#202523;--steel:#6f827d;--steel-deep:#3f514d;--cream:#f3f0e7;--paper:#faf9f5;--line:rgba(32,37,35,.22);--white:#fff;--rust:#9a5c3d;--shadow:0 24px 70px rgba(25,30,28,.16);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);scroll-behavior:smooth}
*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;overflow-x:hidden;background:var(--paper)}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.wrap{width:min(1180px,calc(100% - 40px));margin-inline:auto}.narrow{width:min(900px,calc(100% - 40px));margin-inline:auto}.section-pad{padding:110px 0;position:relative}.eyebrow{font-size:.77rem;letter-spacing:.2em;font-weight:750;margin:0 0 18px;text-transform:uppercase}.section-heading h2{font:500 clamp(2.35rem,5vw,4.8rem)/1.02 Georgia,"Times New Roman",serif;letter-spacing:-.045em;margin:0 0 22px}.section-heading>p:last-child{font-size:1.05rem;line-height:1.75;max-width:660px}.centered{text-align:center}.centered>p:last-child{margin-inline:auto}.light{color:var(--white)}
.site-header{height:92px;padding:12px clamp(20px,4vw,64px);display:grid;grid-template-columns:220px 1fr auto;align-items:center;gap:28px;position:absolute;inset:0 0 auto;z-index:20;color:white;border-bottom:1px solid rgba(255,255,255,.28);transition:.3s}.site-header.is-scrolled{position:fixed;background:rgba(25,30,28,.96);box-shadow:0 8px 30px rgba(0,0,0,.18);height:76px}.brand{background:rgba(247,245,237,.96);padding:5px 10px}.brand img{width:198px}.site-header nav{display:flex;justify-content:center;gap:clamp(14px,2.2vw,34px)}.site-header nav a,.header-contact{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;position:relative}.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:#fff;transition:.25s}.site-header nav a:hover:after,.site-header nav a:focus-visible:after{right:0}.header-contact{border:1px solid rgba(255,255,255,.55);padding:12px 15px}.menu-toggle{display:none;background:none;border:0;color:white;padding:8px}.menu-toggle>span:not(.sr-only){display:block;width:25px;height:1px;background:currentColor;margin:6px}
.hero{min-height:100svh;display:grid;align-items:end;position:relative;color:#fff;background:url("assets/hawkins-avenue-arbour.png") center 38%/cover fixed;padding:160px clamp(24px,8vw,120px) 100px}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,20,18,.84) 0%,rgba(20,25,23,.54) 48%,rgba(20,25,23,.14) 100%),linear-gradient(0deg,rgba(8,12,10,.55),transparent 55%)}.hero-frame{position:absolute;inset:112px 28px 28px;border:1px solid rgba(255,255,255,.82);border-bottom:0;pointer-events:none}.hero-frame:before,.hero-frame:after{content:"";position:absolute;bottom:0;width:32%;border-bottom:1px solid rgba(255,255,255,.82)}.hero-frame:before{left:0}.hero-frame:after{right:0}.hero-content{position:relative;z-index:2;max-width:830px;padding-left:clamp(0px,3vw,42px)}.hero h1{font:500 clamp(3.2rem,7.3vw,7.2rem)/.91 Georgia,"Times New Roman",serif;letter-spacing:-.055em;margin:0 0 28px}.hero h1 em{font-weight:400;color:#dfe7e3}.hero-content>p:not(.eyebrow){font-size:clamp(1rem,1.6vw,1.25rem);line-height:1.7;max-width:630px;margin:0 0 34px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 25px;background:var(--ink);color:white;border:1px solid var(--ink);font-weight:750;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:.22s}.button:hover,.button:focus-visible{background:var(--steel-deep);border-color:var(--steel-deep);transform:translateY(-1px)}.button-light{background:var(--cream);border-color:var(--cream);color:var(--ink)}.button-light:hover{background:white;border-color:white}.button-ghost{background:transparent;color:var(--ink)}.scroll-cue{position:absolute;z-index:2;right:clamp(45px,8vw,120px);bottom:20px;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase}.scroll-cue span{font-size:1.1rem;margin-left:8px}
.questionnaire{overflow:hidden;background:var(--cream)}.section-photo,.section-wash{position:absolute;inset:0}.photo-gate{background:url("assets/project-08.jpg") center/cover fixed;opacity:.25}.section-wash{background:rgba(243,240,231,.78)}.questionnaire .wrap,.faq .wrap{position:relative}.quote-form{background:rgba(250,249,245,.88);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.95);outline:1px solid rgba(32,37,35,.42);outline-offset:7px;padding:clamp(25px,5vw,54px);margin-top:55px;box-shadow:var(--shadow)}.form-topline{display:flex;align-items:center;gap:18px;margin-bottom:42px}.step-label{font-size:.74rem;font-weight:750;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.progress-track{height:2px;background:rgba(32,37,35,.18);flex:1}.progress-bar{display:block;height:100%;width:16.666%;background:var(--steel-deep);transition:width .3s}.form-step{display:none;border:0;padding:0;margin:0;min-height:210px}.form-step.active{display:block;animation:stepIn .28s ease}.form-step legend{width:100%;font:500 clamp(1.6rem,4vw,2.65rem)/1.15 Georgia,"Times New Roman",serif;margin-bottom:32px}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.choice-grid.three{grid-template-columns:repeat(3,1fr)}.choice-grid label{cursor:pointer}.choice-grid input{position:absolute;opacity:0}.choice-grid span{display:grid;place-items:center;min-height:88px;padding:15px;text-align:center;border:1px solid rgba(32,37,35,.28);background:rgba(255,255,255,.5);font-weight:650;transition:.2s}.choice-grid input:checked+span{background:var(--steel-deep);color:white;border-color:var(--steel-deep)}.choice-grid label:hover span{border-color:var(--steel-deep)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.full{grid-column:1/-1}.text-field{display:grid;gap:8px;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.text-field input,.text-field textarea{width:100%;border:0;border-bottom:1px solid rgba(32,37,35,.5);background:rgba(255,255,255,.6);padding:14px 12px;color:var(--ink);outline:0}.text-field input:focus,.text-field textarea:focus{border-bottom-color:var(--steel-deep);box-shadow:inset 0 -1px var(--steel-deep)}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:36px}.form-error{color:#8b2f25;font-size:.88rem;margin:12px 0 0}@keyframes stepIn{from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}
.testimonials{background:var(--ink);color:#fff}.testimonials:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 44%,rgba(255,255,255,.035) 44%,rgba(255,255,255,.035) 45%,transparent 45%)}.testimonial-card{position:relative;max-width:900px;margin:52px auto 0;padding:55px clamp(25px,7vw,85px);text-align:center;border:1px solid rgba(255,255,255,.55);outline:1px solid rgba(255,255,255,.13);outline-offset:8px}.stars{color:#d9b06f;letter-spacing:.25em;margin-bottom:28px}.testimonial-card blockquote{font:400 clamp(1.45rem,3vw,2.45rem)/1.45 Georgia,"Times New Roman",serif;margin:0}.testimonial-card>p{font-size:.75rem;font-weight:750;letter-spacing:.14em;text-transform:uppercase;margin:32px 0 0}.testimonial-card>p span{color:#aebbb7}
.faq{overflow:hidden}.photo-slats{background:url("assets/project-10.jpg") center/cover fixed;opacity:.2}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(40px,8vw,105px);align-items:start}.accordion{background:rgba(250,249,245,.86);padding:4px 30px;border:1px solid rgba(255,255,255,.9);box-shadow:var(--shadow)}details{border-bottom:1px solid var(--line)}details:last-child{border-bottom:0}summary{list-style:none;cursor:pointer;padding:26px 40px 26px 0;font-weight:720;position:relative;font-size:1.02rem}summary::-webkit-details-marker{display:none}summary:after{content:"+";position:absolute;right:4px;font:400 1.5rem Georgia,serif;top:21px}details[open] summary:after{content:"−"}details p{line-height:1.75;color:#48514e;margin:0;padding:0 25px 26px 0}
.services{background:var(--paper)}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:60px}.service-card{display:grid;grid-template-columns:42% 58%;min-height:345px;background:var(--cream);border:1px solid rgba(32,37,35,.5);padding:8px;box-shadow:0 12px 40px rgba(29,34,32,.08)}.service-card img{height:100%;width:100%;object-fit:cover;min-height:328px}.service-card>div{padding:34px 28px}.service-card span{font:500 1rem Georgia,serif;color:var(--steel)}.service-card h3{font:500 1.8rem/1.12 Georgia,serif;margin:18px 0}.service-card p{line-height:1.7;color:#4c5552;margin:0}.design-feature{display:grid;grid-template-columns:.75fr 1.25fr;gap:60px;align-items:center;margin-top:100px;padding-top:90px;border-top:1px solid var(--line)}.design-copy h3{font:500 clamp(2rem,4vw,3.8rem)/1.04 Georgia,serif;letter-spacing:-.04em;margin:0 0 24px}.design-copy>p:not(.eyebrow){line-height:1.8;color:#4c5552}.text-link{font-weight:750;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;display:inline-block;margin-top:20px}.text-link span{margin-left:10px}.render-stack{display:grid;grid-template-columns:1fr 1fr;gap:15px}.render-stack img{aspect-ratio:4/3;object-fit:cover;background:#eeece2;border:1px solid var(--line);padding:6px}
.gallery{background:#dfe4e1}.gallery-heading{display:flex;justify-content:space-between;gap:40px;align-items:end}.gallery-heading>p{max-width:380px;line-height:1.7}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:280px;grid-auto-flow:dense;gap:14px;margin-top:55px}.gallery-grid figure{position:relative;overflow:hidden;margin:0;background:#bac1bd}.gallery-grid figure.wide{grid-column:span 2}.gallery-grid figure.tall{grid-row:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .65s ease}.gallery-grid figure:hover img{transform:scale(1.035)}.gallery-grid figcaption{position:absolute;left:0;right:0;bottom:0;padding:32px 18px 15px;color:#fff;font-size:.76rem;font-weight:700;letter-spacing:.06em;background:linear-gradient(transparent,rgba(0,0,0,.72));transform:translateY(100%);transition:.25s}.gallery-grid figure:hover figcaption{transform:none}
.about-contact{background:var(--cream)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px}.about-grid h2{font:500 clamp(2.3rem,5vw,4.7rem)/1.02 Georgia,serif;letter-spacing:-.045em;margin:0 0 30px}.about-grid>div>p:last-child{font-size:1.05rem;line-height:1.8;max-width:680px}.about-grid address{font-style:normal;border-left:1px solid var(--line);padding-left:50px;display:grid;align-content:center;gap:8px}.about-grid address span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:750;margin-top:18px;color:var(--steel-deep)}.about-grid address a{font:500 1.35rem/1.45 Georgia,serif}footer{background:var(--ink);color:#fff;padding:52px 0}.footer-grid{display:grid;grid-template-columns:240px 1fr auto;align-items:center;gap:35px}.footer-grid img{width:220px;background:var(--cream);padding:5px}.footer-grid p{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:#c8d0cd}.footer-grid>p:last-child{grid-column:2/4;margin:0}.footer-grid>div{display:flex;gap:20px;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:1020px){.site-header{grid-template-columns:190px 1fr auto}.site-header nav{gap:14px}.site-header nav a{font-size:.67rem}.service-card{grid-template-columns:1fr}.service-card img{height:260px;min-height:0}.gallery-grid{grid-template-columns:repeat(3,1fr)}.gallery-grid figure.wide{grid-column:span 2}}
@media(max-width:820px){.section-pad{padding:80px 0}.site-header{height:76px;grid-template-columns:165px 1fr auto;padding:10px 18px}.brand img{width:145px}.header-contact{display:none}.menu-toggle{display:block;justify-self:end}.site-header nav{display:none;position:absolute;top:76px;left:0;right:0;background:rgba(25,30,28,.98);padding:25px;flex-direction:column;align-items:center}.site-header nav.open{display:flex}.hero{background-attachment:scroll;padding:140px 30px 80px}.hero-frame{inset:95px 16px 16px}.hero h1{font-size:clamp(3rem,12vw,5.2rem)}.choice-grid.three{grid-template-columns:1fr}.faq-layout,.design-feature,.about-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:240px}.about-grid{gap:35px}.about-grid address{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.footer-grid{grid-template-columns:1fr;text-align:center}.footer-grid img{margin:auto}.footer-grid>div{justify-content:center}.footer-grid>p:last-child{grid-column:auto}.gallery-heading{display:block}}
@media(max-width:560px){.wrap,.narrow{width:min(100% - 28px,1180px)}.hero-content{padding:0}.hero h1{font-size:2.85rem}.hero-content>p:not(.eyebrow){font-size:.98rem}.quote-form{padding:24px 17px;outline-offset:4px}.choice-grid,.contact-grid{grid-template-columns:1fr}.full{grid-column:auto}.form-step{min-height:320px}.form-actions{justify-content:space-between}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:300px}.gallery-grid figure.wide{grid-column:auto}.gallery-grid figure.tall{grid-row:auto}.gallery-grid figcaption{transform:none}.render-stack{grid-template-columns:1fr}.testimonial-card{padding:40px 22px}.service-card>div{padding:28px 20px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.gallery-grid img,.button{transition:none}.hero{background-attachment:scroll}}
.gallery-grid figure{cursor:zoom-in}.gallery-grid figure:focus-visible{outline:3px solid #fff;outline-offset:-5px}.lightbox-open{overflow:hidden}.gallery-lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(8,11,10,.96);padding:70px clamp(16px,4vw,56px) 24px}.gallery-lightbox[hidden]{display:none}.gallery-lightbox-content{display:grid;place-items:center;gap:14px;width:100%;height:100%;min-height:0}.gallery-lightbox img{display:block;max-width:100%;max-height:calc(100svh - 130px);width:auto;height:auto;object-fit:contain}.gallery-lightbox p{margin:0;color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-align:center;text-transform:uppercase}.gallery-lightbox-close{position:absolute;top:18px;right:22px;display:flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.7);background:rgba(20,24,22,.7);color:#fff;padding:10px 14px;font:700 .72rem/1 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.gallery-lightbox-close span{font-size:1.35rem;font-weight:400;line-height:.7}.gallery-lightbox-close:hover,.gallery-lightbox-close:focus-visible{background:#fff;color:#1b211e;outline:none}@media(max-width:560px){.gallery-lightbox{padding:64px 12px 18px}.gallery-lightbox img{max-height:calc(100svh - 112px)}.gallery-lightbox-close{top:12px;right:12px}}

/* Transparent Ellis mark and framed navigation focus/hover state. */
.brand{background:transparent;padding:0}
.site-header.is-scrolled .brand img{width:180px}
.footer-grid img{background:transparent;padding:0}
.site-header nav a::before,.site-header nav a::after{content:'';position:absolute;top:50%;bottom:auto;width:11px;height:15px;background:linear-gradient(currentColor,currentColor) center/1px 100% no-repeat,linear-gradient(currentColor,currentColor) top center/11px 1px no-repeat,linear-gradient(currentColor,currentColor) bottom center/11px 1px no-repeat;opacity:0;transform:translateY(-50%);transition:opacity .2s}
.site-header nav a::before{left:-16px}
.site-header nav a::after{left:auto;right:-16px}
.site-header nav a:hover::before,.site-header nav a:hover::after,.site-header nav a:focus-visible::before,.site-header nav a:focus-visible::after{opacity:1}

.site-header nav a:hover::after,.site-header nav a:focus-visible::after{right:-16px}@media(max-width:820px){.site-header.is-scrolled .brand img{width:145px}}

/* Render-to-install project comparisons. */
.render-stack{grid-template-columns:1fr;gap:22px}
.comparison-card{margin:0;min-width:0}
.compare-frame{position:relative;display:block;width:100%;aspect-ratio:16/9;overflow:hidden;padding:0;border:1px solid var(--line);background:#eeece2;cursor:pointer;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.compare-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border:0;padding:0;background:none;pointer-events:none;transition:opacity .25s ease}
.compare-frame .pergola-installed{object-fit:cover;object-position:center 60%;filter:brightness(1.08)}
.compare-frame .installed-image{opacity:0}
.image-label{position:absolute;left:14px;bottom:14px;z-index:1;padding:7px 10px;background:rgba(24,34,30,.86);color:#fff;font:700 10px/1.1 Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase;pointer-events:none}
.installed-label{opacity:0;transition:opacity .25s ease}
.render-label{transition:opacity .25s ease}
.comparison-card figcaption{display:flex;justify-content:space-between;gap:14px;margin-top:9px;color:var(--ink);font-size:12px;line-height:1.35}
.comparison-card figcaption span{color:var(--steel-deep);text-align:right}
@media(hover:hover) and (pointer:fine){.compare-frame:hover .installed-image,.compare-frame:hover .installed-label{opacity:1}.compare-frame:hover .render-label{opacity:0}}
.compare-frame.is-pressed .installed-image,.compare-frame.is-pressed .installed-label,.compare-frame:focus-visible .installed-image,.compare-frame:focus-visible .installed-label{opacity:1}
.compare-frame.is-pressed .render-label,.compare-frame:focus-visible .render-label{opacity:0}
@media(max-width:560px){.comparison-card figcaption{flex-wrap:wrap}.comparison-card figcaption span{text-align:left}}
@media(prefers-reduced-motion:reduce){.compare-frame img,.image-label{transition:none}}
