@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
.arrow-icon{display:inline-block;width:10px;height:10px;border-top:1.7px solid currentColor;border-right:1.7px solid currentColor;position:relative;flex:0 0 auto;transform:translate(-1px,1px)}.arrow-icon:after{content:'';position:absolute;width:13px;height:1.7px;background:currentColor;right:-2px;top:3px;transform:rotate(-45deg);transform-origin:right center}.arrow-icon.arrow-up{transform:rotate(-45deg)}
.logo-link{display:flex;align-items:center;flex:0 0 auto}.brand-logo{width:150px;height:auto}.logo-light img{filter:brightness(0) invert(1);opacity:.98}.footer-logo{width:120px;height:auto}@media(max-width:650px){.brand-logo{width:124px}.contact-band .brand-logo{width:150px}.footer-logo{width:112px}}
:root{--paper:#f7f4ed;--green:#123e2c;--orange:#d74c06;--line:#c9cec4;--muted:#4c5c51}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--green);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.55}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--orange);outline-offset:5px}img{max-width:100%;display:block}button{color:inherit}h1,h2,h3,p,figure{margin:0}p{color:var(--muted)}h2,h3,em{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}h2{font-size:clamp(38px,4.3vw,66px);line-height:1.05;letter-spacing:-1.8px}h3{font-size:clamp(26px,2.4vw,36px);line-height:1.12;letter-spacing:-.5px}em{font-style:italic}.wrap{max-width:1400px;margin:auto;padding-inline:5%}.nav{min-height:95px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #123e2c12}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:29px;letter-spacing:-1px}.sun{font-size:48px;line-height:1;color:var(--orange);font-family:Georgia,serif}.nav nav{display:flex;gap:38px;font-size:14px;font-weight:600}.nav-phone{font-weight:700}.nav a:hover{color:var(--orange)}.hero{display:grid;grid-template-columns:1fr 1.1fr;align-items:center;min-height:630px;position:relative;padding-block:55px 15px;overflow:hidden}.hero-copy{z-index:1;padding-bottom:25px}.eyebrow,.section-label{font-size:12px;font-weight:600;letter-spacing:2.6px}.hero h1{font-size:clamp(48px,5.2vw,80px);line-height:1.01;letter-spacing:-4px;margin:28px 0 24px;font-weight:700}.hero h1 em{white-space:nowrap;letter-spacing:-2.8px}.intro{max-width:455px;font-size:18px;line-height:1.6}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{min-height:49px;border-radius:50px;padding:13px 23px;display:inline-flex;align-items:center;justify-content:center;gap:20px;font-size:14px;font-weight:600;border:1px solid transparent;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.orange{background:var(--orange);color:white}.outline{border-color:var(--green)}.hero-note{display:flex;align-items:center;gap:20px;letter-spacing:3px;font-size:11px;margin-top:64px}.hero-note span{width:60px;height:1px;background:var(--green)}.hero-art{position:relative;margin-left:-40px;margin-right:-50px;align-self:stretch;display:flex;align-items:center}.hero-art img{width:100%;height:auto;mix-blend-mode:multiply;animation:float 7s ease-in-out infinite}.callout{position:absolute;font-size:13px;font-weight:600;border-bottom:1px solid var(--green);padding-bottom:8px}.callout.solar{top:17%;left:12%}.callout.water{top:12%;right:12%}.callout.air{top:42%;right:2%}.handwritten{font-family:'Libre Caslon Display',Georgia,serif;font-size:27px;font-style:italic;line-height:1.1;transform:rotate(-12deg)}.hero-art .handwritten{position:absolute;bottom:6%;right:7%}.section{padding-block:55px}.section-label{display:flex;align-items:center;gap:26px;margin-bottom:25px;font-size:10px}.section-label i{flex:1;height:1px;background:currentColor;opacity:.35}.services h2,.process h2{margin-bottom:32px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.services article{padding-bottom:10px;display:flex;flex-direction:column}.service-image{position:relative;overflow:hidden;margin-bottom:21px}.service-image img{width:100%;height:260px;object-fit:cover;transition:transform .7s}.service-image:hover img{transform:scale(1.04)}.service-image>span{position:absolute;z-index:1;top:12px;left:14px;color:var(--orange);font-family:Georgia,serif;font-size:32px;background:var(--paper);padding:0 10px}.services h3{margin-bottom:12px}.services article p{font-size:15px;max-width:350px;margin-bottom:22px}.text-link{display:flex;align-items:center;gap:12px;font-weight:600;font-size:14px;border:0;background:none;padding:0;margin-top:auto;text-align:left}.text-link:after{content:'';height:1px;background:var(--line);flex:1;margin-left:12px}.projects{background:var(--green);color:var(--paper)}.projects p{color:#d5dfd3;margin-top:24px;font-size:16px;max-width:310px}.projects h2{font-size:clamp(34px,3.7vw,56px)}.project-layout{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:34px;align-items:start}.project-layout>div{display:flex;flex-direction:column;align-self:stretch}.project-layout .text-link{margin-top:36px;color:var(--paper)}.project-layout img{height:310px;width:100%;object-fit:cover}.projects figcaption{font-size:11px;letter-spacing:2px;margin-top:14px}.extra-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:35px}.extra-projects[hidden]{display:none}.extra-projects img{height:310px;width:100%;object-fit:cover}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.process article{display:flex;gap:20px;border-right:1px solid var(--line);padding-right:25px}.process article:last-child{border:0}.process article>span{font-family:Georgia,serif;color:var(--orange);font-size:32px}.process h3{font-size:27px;margin-bottom:10px}.process p{font-size:14px}.availability{border-top:1px solid #123e2c12}.availability-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px}.availability-layout>div>p{margin-top:22px}.big-phone{display:inline-block;border:1px solid var(--green);border-radius:40px;font-size:28px;font-weight:700;padding:7px 20px;margin-top:28px}.availability .handwritten{margin-left:170px;margin-top:25px}.calendar{background:#fffcf7;border:1px solid #123e210d;padding:27px;border-radius:12px;box-shadow:0 7px 35px #123e2109;min-width:0}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-head h3{font-size:28px}.calendar-nav{display:flex;gap:6px;align-items:center}.calendar-nav button{border:0;background:transparent;width:36px;height:40px;font-size:25px}.calendar-nav strong{font-size:14px;min-width:105px;text-align:center;text-transform:capitalize}.calendar-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;margin-top:22px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.days .weekday{font-size:12px;text-align:center;padding:5px}.days button{border:0;background:transparent;border-radius:50%;aspect-ratio:1;min-width:0;font-size:13px;position:relative}.days button.has-busy{background:#f6d1bd}.days button.selected{background:var(--green);color:#fff}.days button.today{box-shadow:inset 0 0 0 1px var(--green)}.legend{display:flex;gap:15px;font-size:12px;margin-top:18px}.legend span{display:flex;gap:6px;align-items:center}.legend i{border-radius:50%;width:11px;height:11px;background:#dfede0}.legend i.busy{background:#f6d1bd}.selected-title{font-weight:600;font-size:14px;margin-bottom:12px;text-transform:capitalize}.hours{display:grid;grid-template-columns:1fr 1fr;gap:7px}.hours span{background:#e2efe2;font-size:12px;padding:6px;text-align:center;border-radius:7px}.hours span.busy{background:#f6d1bd;color:#74361b}.calendar-note{font-size:12px;margin-top:12px;line-height:1.5}.calendar .button{background:var(--green);color:white;width:100%;padding:10px 12px;margin-top:16px;font-size:12px;gap:4px}.error{color:#91411a;font-size:14px;padding:12px;background:#fff1e7;border-radius:6px}.calendar-status{margin-top:12px;font-size:13px}.intervals{font-size:13px;margin-top:12px}.contact-band{background:var(--orange);color:#fff;padding:35px 0}.contact-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:35px}.contact-band .sun{color:#fff}.contact-band h2{font-style:italic;font-size:54px;text-align:center}.contact-band p{font-size:13px;color:#fff;margin-top:10px}.contact-band .wrap>a:last-child{font-size:25px;font-weight:700;white-space:nowrap}footer{display:flex;justify-content:space-between;gap:20px;padding-block:22px!important;font-size:11px;letter-spacing:1px}.floating-contact{display:none}.owner{max-width:950px;padding-block:50px}.owner h1{font-family:Georgia,serif;font-size:44px;margin:30px 0}.owner .calendar{margin-top:30px}.editor{border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.editor label{display:block;margin-block:12px}.editor input:not([type=checkbox]){padding:10px;border:1px solid var(--line);border-radius:5px;background:white;max-width:100%}.time-fields{display:flex;gap:20px;flex-wrap:wrap}.editor button{border:1px solid var(--green);padding:9px 15px;border-radius:6px;background:var(--green);color:white}.blocked-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:8px}.blocked-row button{font-size:13px;padding:5px 12px;background:white;border:1px solid var(--line);border-radius:6px}button:disabled{opacity:.5;cursor:wait}@keyframes float{50%{transform:translateY(-10px)}}@media(min-width:1500px){.hero{min-height:700px}}@media(max-width:1000px){.nav nav{gap:20px}.hero h1{letter-spacing:-2px}.hero h1 em{white-space:normal}.hero-art{margin-left:-10px}.service-image img{height:210px}.availability-layout{grid-template-columns:1fr;gap:30px}.availability-layout>div:first-child{max-width:650px}.availability .handwritten{display:none}.project-layout{gap:22px}.contact-band .wrap{flex-wrap:wrap}.hero-note{margin-top:35px}.calendar-columns{grid-template-columns:1fr 1fr}.days button{max-height:55px}}@media(max-width:650px){.wrap{padding-inline:6%}.nav{min-height:80px;flex-wrap:wrap;gap:10px;padding-block:14px}.brand{font-size:24px}.sun{font-size:38px}.nav-phone{font-size:14px}.nav nav{order:3;width:100%;justify-content:space-between;padding-top:10px;font-size:13px}.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:0;min-height:0}.hero h1{font-size:clamp(46px,10.8vw,68px);letter-spacing:-2px;margin-top:22px}.hero h1 em{white-space:nowrap;font-size:.98em}.eyebrow{font-size:10px;letter-spacing:2px}.intro{font-size:16px}.hero-copy{padding:0}.hero-note{display:none}.actions{gap:9px;margin-top:22px}.button{padding:12px 17px;font-size:13px}.hero-art{margin:0 -5%;min-height:320px}.hero-art img{width:100%}.callout.solar{top:18%;left:8%}.callout.water{top:13%;right:10%}.callout.air{right:0;top:44%}.callout{font-size:11px}.hero-art .handwritten{font-size:24px}.section{padding-block:38px}.section-label{font-size:9px;letter-spacing:1.5px;gap:14px}.section-label>span:last-child{display:none}h2{font-size:42px;letter-spacing:-1.2px}.services-grid{grid-template-columns:1fr;gap:32px}.service-image img{height:250px}.services h3{font-size:32px}.services article p{max-width:none;font-size:16px}.project-layout{grid-template-columns:1fr 1fr;gap:18px}.project-layout>div{grid-column:1/-1;margin-bottom:10px}.projects h2{font-size:42px}.projects p{max-width:100%;margin-top:18px}.project-layout img{height:225px}.project-layout .text-link{margin-top:20px}.extra-projects{grid-template-columns:1fr;gap:25px}.extra-projects img{height:320px}.process-grid{grid-template-columns:1fr;gap:24px}.process article{border-right:0;border-bottom:1px solid var(--line);padding:0 0 24px}.process article:last-child{padding-bottom:0}.process p{font-size:15px}.process h3{font-size:28px}.calendar{padding:18px}.calendar-head h3{font-size:25px}.calendar-nav strong{min-width:95px;font-size:12px}.calendar-nav button{width:26px}.calendar-columns{grid-template-columns:1fr;gap:24px}.days button{font-size:14px;max-height:45px}.hours{grid-template-columns:repeat(4,1fr)}.big-phone{font-size:25px}.contact-band .wrap{flex-direction:column;text-align:center;gap:24px}.contact-band h2{font-size:52px}footer{flex-direction:column;align-items:center;padding-bottom:90px!important}.floating-contact{display:block;position:fixed;bottom:18px;right:18px;border-radius:40px;background:var(--green);color:white;padding:13px 19px;font-size:14px;box-shadow:0 5px 20px #0003;z-index:10}.owner h1{font-size:35px}.owner .calendar-head{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
