@font-face{font-family:Manrope;src:url('./manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{--ink:#18211a;--green:#29683a;--bright:#a8cf7d;--soft:#f2f5ed;--muted:#5a655b;--line:#d7dfd3;--gutter:clamp(24px,5.6vw,96px);font-family:Manrope,sans-serif;color:var(--ink);background:#fff;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}button{color:inherit}button:disabled{cursor:wait;opacity:.5}img{display:block;max-width:100%}::selection{background:var(--bright);color:var(--ink)}:focus-visible{outline:3px solid #469158;outline-offset:5px}input,textarea{caret-color:var(--green)}body{scrollbar-color:var(--green) var(--soft)}[hidden]{display:none!important}p{line-height:1.75;margin:0 0 22px}h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.04em;line-height:1.08;text-wrap:balance}h2{font-size:clamp(40px,5.8vw,78px)}h3{font-size:24px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;flex-shrink:0}.skip{position:fixed;top:-100px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.site-header{height:94px;padding:0 var(--gutter);display:flex;align-items:center;gap:36px;border-bottom:1px solid #e9ede6;background:#fff;position:sticky;top:0;z-index:10}.brand{width:144px;flex-shrink:0}.brand img{width:144px;height:auto}.header-nav{display:flex;align-items:center;gap:30px;margin-left:auto;font-size:14px;font-weight:600}.header-nav a{text-decoration:none}.header-nav a:hover{color:var(--green)}.header-quote{background:none;border:1px solid var(--line);padding:12px 17px;font-size:14px}.menu-toggle{display:none}.hero{position:relative;min-height:632px;display:flex;align-items:center;overflow:hidden}.hero-photo{position:absolute;inset:0 auto 0 0;width:68%;height:100%;object-fit:cover;object-position:40% center;mask-image:linear-gradient(to right,#000 68%,transparent 100%)}.hero-copy{position:relative;margin-left:57%;padding:68px var(--gutter) 70px 0;max-width:760px}.hero h1{font-size:clamp(52px,5.75vw,84px);font-weight:650}.hero h1 span{color:var(--green)}.hero-copy p{font-size:17px;margin:28px 0 28px;max-width:390px}.text-link{display:inline-flex;align-items:center;gap:16px;color:var(--green);font-weight:650;text-decoration:none;border-bottom:1px solid currentColor;padding:0 0 9px}.text-link:hover{color:#133b1d}.hero-reference{position:absolute;bottom:24px;left:var(--gutter);background:#fff;padding:8px 12px;font-size:11px;letter-spacing:.015em}.topic-nav{display:grid;grid-template-columns:repeat(4,1fr);padding:0 var(--gutter);border-bottom:1px solid var(--line);gap:36px}.topic-nav a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:116px;font-size:17px;font-weight:600;text-decoration:none;line-height:1.4}.topic-nav a:hover{color:var(--green)}.topic-nav svg{color:var(--green);transform:rotate(45deg)}.chapter{padding:114px var(--gutter)}.chapter-head{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;align-items:start;margin-bottom:52px}.chapter-head p{font-size:18px;max-width:530px;padding-top:4px}.photo-button{position:relative;display:block;background:none;padding:0;border:0;width:100%;text-align:left}.photo-button img{width:100%;height:100%;object-fit:cover}.photo-button:hover .photo-open{background:var(--green);color:#fff}.photo-open{position:absolute;bottom:16px;right:16px;background:#fff;width:42px;height:42px;display:grid;place-items:center;transition:background .2s,color .2s}.photo-open svg{width:21px;height:21px}.photo-caption{display:flex;justify-content:space-between;gap:16px;padding-top:12px;font-size:12px;color:var(--muted)}figure{margin:0}.glass-photos{display:grid;grid-template-columns:2.1fr 1fr;gap:32px;align-items:end}.glass-photos .main-shot .photo-button{aspect-ratio:1.65}.glass-photos .detail-shot{padding-top:65px}.glass-photos .detail-shot .photo-button{aspect-ratio:.78}.detail-note{font-size:15px;color:var(--muted);max-width:290px;margin-bottom:35px}.chapter-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:10%;margin-top:34px}.gallery-link{border:0;background:none;padding:0 0 8px;display:inline-flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600}.gallery-link svg{color:var(--green)}.chapter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--green);color:white;border:1px solid var(--green);padding:15px 20px;text-decoration:none;font-size:14px;font-weight:600;min-height:50px}.button:hover{background:#174723;border-color:#174723}.button.secondary{background:white;color:var(--ink);border-color:var(--line)}.button.secondary:hover{background:var(--soft)}.contact-link{font-size:13px;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:4px}details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:28px}summary{display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;padding:18px 0;font-weight:600;font-size:14px;list-style:none}summary::-webkit-details-marker{display:none}summary svg{width:18px;height:18px;transition:transform .2s}details[open] summary svg{transform:rotate(45deg)}details p{font-size:14px;color:var(--muted);line-height:1.75;padding-right:10px}.poly{background:var(--soft)}.poly-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:8%;align-items:center}.poly-layout .photo-button{aspect-ratio:1.03}.poly h2{font-size:clamp(37px,4.7vw,66px);margin-bottom:28px}.poly .description{font-size:17px}.gallery-line{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px}.photo-type{font-size:12px;color:var(--muted)}.carport{padding-bottom:88px}.carport-head{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:end;margin-bottom:40px}.carport-head p{margin:0;font-size:17px}.carport-photo{display:grid;grid-template-columns:1.7fr 1fr;gap:48px;align-items:end}.carport-photo .photo-button{aspect-ratio:1.5}.carport-aside h3{margin-bottom:18px;max-width:270px}.carport-aside p{font-size:15px;color:var(--muted)}.winter{padding-top:64px;padding-bottom:120px}.winter-layout{border-top:1px solid var(--line);padding-top:76px;display:grid;grid-template-columns:.85fr 1.3fr;gap:9%;align-items:center}.winter h2{font-size:clamp(40px,5vw,68px);margin-bottom:28px}.winter p{font-size:17px}.winter .photo-button{aspect-ratio:1.5}.contact{background:#203f2a;color:#fff;padding:84px var(--gutter) 78px}.contact-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:12%;align-items:start}.contact h2{font-size:clamp(40px,4.8vw,66px);max-width:600px}.contact p{max-width:540px;color:#dfebdd;margin-top:24px;font-size:16px}.contact .button{background:white;border-color:#fff;color:#203f2a;margin-top:9px}.contact-person{padding-top:5px}.contact-person h3{font-size:24px;margin-bottom:30px}.contact-person a{display:block;width:fit-content;font-size:clamp(22px,2.3vw,34px);text-decoration:none;margin-bottom:15px;letter-spacing:-.025em}.contact-person a:hover{text-decoration:underline}.contact-person small{color:#d5e3d3;display:block;margin-top:25px;line-height:1.7;max-width:360px}.footer{padding:44px var(--gutter);display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:42px;font-size:12px;line-height:1.8;color:var(--muted)}.footer strong{display:block;color:var(--ink);font-weight:650;margin-bottom:8px}.footer p{margin:0}.footer a{text-decoration:none}.footer .end-link{justify-self:end}.dialog{padding:0;border:0;max-width:min(760px,calc(100vw - 40px));width:760px;max-height:calc(100dvh - 40px);color:var(--ink);background:#fff;box-shadow:0 25px 80px #0003}.dialog::backdrop{background:#15261cba}.dialog-header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:23px 30px;background:white;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:25px;letter-spacing:-.025em}.icon-button{border:1px solid var(--line);background:#fff;width:42px;height:42px;display:grid;place-items:center;flex-shrink:0}.icon-button:hover{background:var(--soft)}.dialog-content{padding:25px 30px 30px}.demo-note{font-size:13px;color:var(--muted);line-height:1.65;margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid var(--line)}.steps{font-size:12px;color:var(--green);font-weight:700;margin-bottom:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:650}.field.full{grid-column:1/-1}.field small{font-size:12px;font-weight:400;color:var(--muted)}input,textarea,select{width:100%;border:1px solid #b7c4b4;background:white;color:var(--ink);padding:12px;font-size:15px;border-radius:0;min-height:46px}textarea{resize:vertical;min-height:93px}input::placeholder,textarea::placeholder{color:#667361;opacity:1}.selected-service{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;background:var(--soft);margin-bottom:22px}.selected-service span{font-size:14px;font-weight:600}.plain-button{padding:5px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:13px;white-space:nowrap}.form-actions{display:flex;justify-content:space-between;gap:18px;margin-top:25px;align-items:center}.form-actions .button:only-child{margin-left:auto}.form-error{font-size:14px;color:#992e24;margin:20px 0 0}.priority-title{font-size:27px;margin-bottom:14px}.priority-intro{font-size:14px;color:var(--muted)}fieldset{padding:0;margin:0;border:0}.priority-choices{display:grid;gap:12px}.priority-choice{display:flex;align-items:center;gap:15px;border:1px solid var(--line);padding:19px 16px;cursor:pointer;font-size:16px}.priority-choice:has(input:checked){border-color:var(--green);background:var(--soft)}.priority-choice input{width:20px;min-height:20px;height:20px;accent-color:var(--green);margin:0}.result h3{margin-bottom:12px}.result .notice{font-size:14px;color:var(--green)}.result dl{margin:24px 0;display:grid;grid-template-columns:145px 1fr;gap:14px 20px;font-size:14px;line-height:1.6}.result dt{color:var(--muted)}.result dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.result-contact{font-size:13px;display:flex;gap:25px;flex-wrap:wrap;margin-top:26px}.lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;padding:0;background:#132218;color:white}.lightbox::backdrop{background:#132218}.lightbox-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:16px 28px;font-size:14px}.lightbox .icon-button{background:transparent;color:white;border-color:#617066}.lightbox-image{height:calc(100dvh - 160px);width:calc(100% - 150px);margin:auto;object-fit:contain}.lightbox-bottom{display:flex;justify-content:center;gap:28px;align-items:center;height:84px;font-size:13px}.lightbox-nav{position:absolute;top:50%;width:46px;height:46px}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-next svg{transform:rotate(180deg)}.reveal-photo{animation:photo-reveal 1.15s cubic-bezier(.16,1,.3,1) both}@keyframes photo-reveal{from{opacity:.8;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}
@media(min-width:1700px){.hero{min-height:730px}.hero-copy{padding-top:110px;padding-bottom:110px}}
@media(max-width:1100px){.header-nav{gap:20px}.header-nav .phone-top{display:none}.hero{min-height:560px}.hero-copy{margin-left:55%;padding-right:32px}.hero h1{font-size:60px}.hero-photo{width:72%}.chapter{padding:84px var(--gutter)}.topic-nav{gap:24px}.topic-nav a{font-size:15px}.carport-photo{gap:30px}.chapter-actions{gap:17px}.winter-layout{gap:6%}.footer{grid-template-columns:1fr 2fr}.footer .end-link{display:none}}
@media(max-width:760px){html{scroll-padding-top:85px}.site-header{height:76px;gap:18px}.brand,.brand img{width:122px}.header-quote{margin-left:auto;font-size:12px;padding:11px 13px}.menu-toggle{display:grid;width:40px;height:40px;background:none;border:0;place-items:center}.header-nav{display:none;position:absolute;top:76px;left:0;right:0;background:white;padding:24px var(--gutter);border-bottom:1px solid var(--line);margin:0}.header-nav.open{display:flex;flex-direction:column;align-items:flex-start;gap:24px}.header-nav .phone-top{display:block}.hero{display:flex;flex-direction:column;min-height:0;align-items:stretch;overflow:hidden;padding-top:34px}.hero-copy{display:contents}.hero h1{font-size:clamp(46px,10.8vw,68px);padding:0 var(--gutter);order:0;max-width:580px}.hero-photo{position:relative;width:100%;height:300px;order:1;margin-top:27px;object-position:40% center;mask-image:linear-gradient(to bottom,#000 83%,transparent 100%)}.hero-copy p{order:2;margin:12px var(--gutter) 20px;font-size:15px;max-width:530px}.hero-copy .text-link{order:3;align-self:flex-start;margin:0 var(--gutter) 28px;font-size:14px}.hero-reference{display:none}.topic-nav{grid-template-columns:1fr 1fr;gap:0 24px;border-top:1px solid var(--line);border-bottom:0}.topic-nav a{min-height:94px;border-bottom:1px solid var(--line);font-size:14px}.topic-nav svg{width:19px}.chapter{padding:65px var(--gutter)}h2{font-size:46px}.chapter-head{display:block;margin-bottom:28px}.chapter-head p{font-size:16px;margin-top:22px;max-width:540px}.glass-photos{grid-template-columns:1fr;gap:25px}.glass-photos .main-shot .photo-button{aspect-ratio:1.3}.glass-photos .detail-shot{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-top:0;align-items:center}.glass-photos .detail-shot .photo-button{aspect-ratio:.85}.detail-note{grid-column:2;grid-row:1;margin:0;font-size:13px}.detail-shot .photo-caption{grid-column:1;padding-top:0;font-size:11px;margin-top:-12px}.chapter-bottom{display:block;margin-top:30px}.chapter-bottom details{margin-top:26px}.poly-layout{display:flex;flex-direction:column;align-items:stretch;gap:33px}.poly-copy{order:-1}.poly h2{font-size:42px}.poly .description{font-size:16px}.poly-layout .photo-button{aspect-ratio:1.25}.carport-head{display:block;margin-bottom:30px}.carport-head p{margin-top:22px;font-size:16px}.carport-photo{display:block}.carport-aside{margin-top:36px}.carport-aside h3{max-width:none;font-size:26px}.carport .photo-button{aspect-ratio:1.3}.winter{padding-top:0}.winter-layout{padding-top:55px;display:flex;flex-direction:column;gap:35px;align-items:stretch}.winter h2{font-size:45px}.winter p{font-size:16px}.contact{padding:57px var(--gutter)}.contact-layout{display:block}.contact h2{font-size:43px}.contact p{font-size:15px}.contact-person{margin-top:48px}.contact-person h3{font-size:20px;margin-bottom:24px}.contact-person a{font-size:26px}.footer{display:block;padding:35px var(--gutter);font-size:11px}.footer>div+div{margin-top:20px}.dialog{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.dialog-header{padding:16px 20px}.dialog-header h2{font-size:21px}.dialog-content{padding:20px}.form-grid{gap:16px}.field.full-mobile{grid-column:1/-1}.form-actions{gap:14px}.form-actions .button{font-size:12px;padding:13px}.dialog-content .steps{font-size:11px}.selected-service{gap:12px;padding:12px}.selected-service span{font-size:12px}.result dl{grid-template-columns:1fr;gap:4px}.result dd{margin-bottom:12px}.lightbox-image{width:calc(100% - 24px);height:calc(100dvh - 200px)}.lightbox-header{padding:16px 18px;font-size:12px}.lightbox-nav{top:auto;bottom:42px}.lightbox-bottom{height:120px;align-items:center;padding-bottom:15px}.lightbox-prev{left:24px}.lightbox-next{right:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}

/* Reserve a second sticky-header row when the desktop/tablet navigation gap is too small. */
@media(min-width:761px){html.astra-review-dock-reserved{scroll-padding-top:142px}.site-header.astra-review-dock-reserved{height:136px;align-items:flex-start;padding-top:16px}}
/* Reserve a review-toolbar row in the mobile sticky header and keep anchor targets clear. */
@media(max-width:760px){html{scroll-padding-top:120px}.site-header{height:120px;align-items:flex-start;padding-top:16px;background:#fff}.header-nav{top:120px}html.astra-review-dock-hidden{scroll-padding-top:85px}html.astra-review-dock-hidden .site-header{height:76px;align-items:center;padding-top:0}html.astra-review-dock-hidden .header-nav{top:76px}}
/* Keep the native select as the only form control while giving its selected value room to wrap. */
.service-picker{display:block;position:relative;width:100%;min-height:46px}
.service-picker-value{display:flex;align-items:center;width:100%;min-height:50px;padding:11px 46px 11px 12px;border:1px solid #b7c4b4;background:#fff;color:var(--ink);font-size:16px;font-weight:400;line-height:1.35;text-align:left;overflow-wrap:normal}
.service-picker::after{content:"";position:absolute;z-index:0;right:17px;top:calc(50% - 4px);width:8px;height:8px;border:solid var(--ink);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);pointer-events:none}
.service-picker select{position:absolute;inset:0;z-index:1;width:100%;height:100%;min-height:46px;padding:0;border:0;background:transparent;color:transparent;font-size:16px;appearance:none;-webkit-appearance:none;cursor:pointer}
.service-picker select option{color:var(--ink)}
.service-picker:focus-within .service-picker-value{outline:3px solid #469158;outline-offset:3px}
@media(min-width:761px){.chapter.glass .chapter-head{margin-bottom:30px}.glass-photos .detail-shot{padding-top:20px}.glass-photos .detail-note{margin-bottom:18px}}
