:root{--ink:#102538;--blue:#0478b5;--cyan:#25bafa;--pale:#edf3f7;--line:#cdd9e2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);font:17px/1.65 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,textarea,select{outline-offset:5px}button{cursor:pointer}.skip{position:fixed;top:-100px;z-index:5;background:white;padding:12px}.skip:focus{top:0}header{position:sticky;top:0;z-index:3;background:#ffffffed;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:20px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{width:255px;line-height:0}.brand img{width:100%}nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:600}nav a:hover,.text-link:hover{color:var(--blue)}#menu{display:none}.button{display:inline-block;background:var(--blue);color:white;border:1px solid var(--blue);padding:15px 25px;font-weight:600;font-size:15px;line-height:1.4;border-radius:2px}.button:hover{background:#075f90;color:white}.small{padding:11px 17px}.hero{padding:70px 5% 55px;display:grid;grid-template-columns:1fr 1fr;gap:5%;background:linear-gradient(110deg,#fff 50%,#eaf2f7)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2.1px;margin:0 0 23px;color:var(--blue)}h1{font-size:clamp(42px,5.1vw,76px);line-height:1.06;letter-spacing:-3px;margin:0 0 27px;font-weight:700}h2{font-size:clamp(33px,3.7vw,53px);letter-spacing:-1.8px;line-height:1.12;margin:0 0 25px}h3{font-size:22px;line-height:1.3;margin:12px 0}.lede{max-width:530px;font-size:19px;color:#506377}.actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:28px}.text-link{font-size:15px;font-weight:700;border-bottom:1px solid var(--blue);padding-bottom:4px}.hero-foot{margin-top:60px;font-size:12px;letter-spacing:1.7px;font-weight:700}.hero-foot span{display:block;margin-top:6px;font-size:11px;color:#5c7284}.flow-panel{background:#0b1d2c;border:1px solid #24465e;box-shadow:0 22px 60px #0e2c421a;color:#b9d4e7;align-self:center;padding:20px}.panel-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:1.5px}.quiet{background:transparent;border:1px solid #3f637f;color:#cce6f7;font-size:12px;padding:6px 10px;letter-spacing:0}.diagram{width:100%;display:block;margin-top:15px}.water{stroke-dasharray:14 18;animation:flow 2.6s linear infinite}.drain{opacity:.6}.paused .water,.paused .drop{animation-play-state:paused}.logo-flow{position:relative;background:#fff;padding:17px 60px;margin:0 14px}.logo-flow img{width:100%;display:block}.drop{position:absolute;left:13%;top:53%;color:#08a4e8;font-size:13px;animation:drip 2.4s infinite}.caption{text-align:center;font-size:12px;margin:15px 0 0}@keyframes flow{to{stroke-dashoffset:-96}}@keyframes drip{0%,20%{transform:translateY(0);opacity:0}30%{opacity:1}100%{transform:translateY(26px);opacity:0}}.ribbon{background:var(--ink);color:#d0e3ef;padding:23px 5%;display:flex;justify-content:space-between;font-size:12px;letter-spacing:2px}.section{padding:90px 7%;scroll-margin-top:0}.about{display:grid;grid-template-columns:.6fr 1.4fr .8fr;gap:6%}.about p{color:#526678}.signature{border-left:1px solid var(--line);padding-left:30px;align-self:center}.signature strong{display:block;font-size:29px}.signature span{font-size:14px}.signature hr{border:0;border-top:1px solid var(--line);margin:25px 0}.signature p{font-size:15px}.pale{background:var(--pale)}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:40px}.section-heading>p{font-size:16px;color:#526678}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.service-grid article{padding:26px 27px 25px 0;border-top:1px solid #aebfcc;margin-right:30px}.number{font-size:13px;color:var(--blue);font-weight:700}.service-grid p{font-size:16px;color:#526678}.partners{background:#102538;color:#fff;display:grid;grid-template-columns:1.2fr 1fr;gap:15%}.partners .eyebrow{color:#57c4fa}.partners p{color:#c1d0dc}.steps article{padding:0 0 20px;margin-bottom:23px;border-bottom:1px solid #405565}.steps span{font-size:12px;color:#59c5fb;letter-spacing:1.8px}.steps p{font-size:16px}.max-copy{max-width:680px;color:#526678}.planner{display:grid;grid-template-columns:1fr 1.25fr;gap:10%}.planner p{max-width:380px;color:#526678}form{background:var(--pale);padding:30px}label{display:block;font-size:14px;font-weight:600;margin-bottom:18px}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:12px;border:1px solid #aebfcc;background:white;margin-top:7px;color:var(--ink);border-radius:2px;font-size:16px}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}fieldset{border:0;padding:0;margin:0 0 16px}legend{font-size:14px;font-weight:600;margin-bottom:12px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.checks label{font-weight:400;margin:0}.checks input{accent-color:var(--blue);margin-right:8px}.note{font-size:13px!important;color:#607487!important}#briefBox{margin-top:28px;border-top:1px solid var(--line);padding-top:18px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font:15px/1.7 Arial}#feedback{font-size:14px}.contact{display:grid;grid-template-columns:1.4fr 1fr;gap:10%;border-top:1px solid var(--line)}.contact p{max-width:520px;color:#526678}.contact-details{align-self:center}.contact-details>a{display:block;font-size:clamp(19px,2vw,28px);line-height:1.8}.contact-details>a:hover{color:var(--blue)}footer{padding:30px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px;color:#637688}footer>span:first-child{font-weight:700;letter-spacing:1px}@media(min-width:1600px){main,header,footer{max-width:1600px;margin:auto}}@media(max-width:1000px){nav{gap:15px}.brand{width:205px}.about{grid-template-columns:1fr 1fr}.about>.eyebrow{grid-column:1/-1}.hero{gap:3%}.hero-foot{margin-top:35px}.partners{gap:7%}.section{padding:65px 5%}}@media(max-width:760px){header{padding:15px 5%;flex-wrap:wrap}.brand{width:210px}#menu{display:block;background:white;border:1px solid var(--line);padding:7px 12px;font-size:14px}nav{display:none;width:100%;flex-wrap:wrap;padding:10px 0}nav.open{display:flex}.hero{grid-template-columns:1fr;padding-top:45px;gap:35px}h1{letter-spacing:-2px}.hero-foot{margin-top:30px}.flow-panel{max-width:600px}.ribbon{gap:15px;flex-wrap:wrap;font-size:10px}.about,.partners,.planner,.contact{grid-template-columns:1fr;gap:32px}.signature{padding-left:20px}.section-heading{display:block}.service-grid{grid-template-columns:1fr 1fr}.service-grid article{margin-right:15px;padding-right:12px}.section{padding:55px 6%}.form-row{grid-template-columns:1fr;gap:0}form{padding:22px}footer{flex-direction:column;gap:10px}.logo-flow{padding:15px 45px}}@media(max-width:420px){.service-grid,.checks{grid-template-columns:1fr}.service-grid article{margin:0}.actions{gap:18px}.panel-head{letter-spacing:0;font-size:9px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.water,.drop{animation:none}}
/* Version 2: preserve the established palette and layout rhythm. */
[hidden]{display:none!important}.about{grid-template-columns:1.3fr 1fr;gap:9%}.signature strong{font-size:clamp(30px,3.1vw,47px);line-height:1.2;letter-spacing:-1.4px}.signature p{font-size:17px;color:var(--ink)}.upgrade-callout{border-left:4px solid var(--blue);padding:12px 25px 22px;background:white;margin:0 0 35px}.upgrade-callout p{max-width:870px}.materials a{text-decoration:underline}.inspection-callout{padding:30px;background:#fff;border:1px solid var(--line);margin-top:35px;scroll-margin-top:120px}.inspection-callout p{max-width:820px}.outline{background:transparent;border-color:#86b9d7;color:white}.outline:hover{background:#23475e}.trust,.visualize,.plans{display:grid;grid-template-columns:1.3fr 1fr;gap:9%}.trust-actions{align-self:center}.trust-actions .button{width:100%;text-align:center}.disabled:disabled{cursor:default;background:#e9eef2;border-color:#cdd9e2;color:#526678}.visualize-prompt{padding:30px 7%;border-top:1px solid var(--line);display:flex;align-items:center;gap:25px}.visualize-prompt h3{margin:0}.future-feature{border:1px solid #b3c9d8;background:#fff;padding:30px;align-self:center}.future-feature li{margin:15px 0}.status-label{display:inline-block;font-size:12px;letter-spacing:1.8px;color:#0478b5;font-weight:700;padding:5px 10px;border:1px solid #9fc6df}.logo-flow{padding:14px 20px;margin:10px 0 0}.animated-logo{width:100%;display:block;overflow:visible}.logo-water{stroke-dasharray:70 2150;animation:logoFlow 4s linear infinite}.logo-drop{animation:logoDrip 4s linear infinite;transform-box:view-box;transform-origin:35px 275px}.paused .logo-water,.paused .logo-drop{animation-play-state:paused}.schematic-note{text-align:center;font-size:12px;margin:3px 0 12px;color:#a9c1d4}.water{animation:flow 2.6s linear infinite;stroke-dasharray:10 14}.vent{opacity:.8}.panel-head{font-size:12px;letter-spacing:.8px;gap:12px}.quiet{font-size:13px;white-space:nowrap}.service-grid .text-link{display:inline-block}.contact-details>a{overflow-wrap:anywhere}.about p{color:#526678}#heaterNote{margin-top:0}nav{gap:20px}@keyframes logoFlow{0%{stroke-dashoffset:70}100%{stroke-dashoffset:-2150}}@keyframes logoDrip{0%,84%{opacity:0;transform:translateY(0) scale(.3)}85%{opacity:1;transform:translateY(0) scale(.5)}89%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(90px) scale(1)}}@media(max-width:1000px){nav{gap:12px}.brand{width:185px}}@media(max-width:760px){.about,.trust,.visualize,.plans{grid-template-columns:1fr;gap:30px}.signature{padding-left:23px}.visualize-prompt{align-items:start;flex-direction:column;gap:12px}.panel-head{font-size:11px}.logo-flow{padding:10px 13px}.service-grid .text-link{font-size:14px}.brand{width:210px}.checks label{display:flex;align-items:baseline;gap:5px}}@media(prefers-reduced-motion:reduce){.logo-water,.logo-drop,.water{animation:none}.logo-drop{opacity:1;transform:translateY(25px)}}

/* Version 3 additions */
.character-counter{display:block;text-align:right;font-size:13px;font-weight:400;color:#607487;margin-top:5px}.brand .animated-logo{display:block;width:100%}.paused .water,.paused .logo-water,.paused .logo-drop{animation-play-state:paused}.reserved-partners p{max-width:650px}.trust-actions>.button+ .button{margin-top:20px}
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 12px}.gallery-filters button{border:1px solid var(--line);border-radius:24px;background:white;padding:9px 18px;color:var(--ink)}.gallery-filters button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}.project-story{padding:38px 0;border-top:1px solid var(--line)}.project-story[hidden]{display:none}.project-heading{max-width:800px}.project-heading h3{font-size:clamp(23px,3vw,34px);line-height:1.2;margin:8px 0 15px}.job-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:25px}.job-gallery figure{margin:0;min-width:0;background:white;border-radius:8px;overflow:hidden}.photo-open{display:block;width:100%;border:0;padding:0;background:white;color:var(--ink);text-align:left}.photo-open img{width:100%;height:270px;object-fit:cover;display:block}.photo-open span{display:block;padding:10px 15px;font-size:14px}.photo-open:hover img{filter:brightness(.92)}.job-video{grid-column:span 2}.job-video video{display:block;width:100%;max-height:440px;background:#102538}.job-video figcaption{padding:12px 15px;font-size:14px}#photo-dialog{border:0;border-radius:8px;background:#fff;padding:20px;max-width:95vw;max-height:94vh;width:fit-content}#photo-dialog::backdrop{background:#071522df}#full-photo{display:block;max-width:85vw;max-height:73vh;object-fit:contain;margin-top:12px}#photo-close{display:block;margin-left:auto;padding:8px 18px;border:1px solid var(--line);background:white;border-radius:6px}#photo-caption{margin:12px 0 0;font-size:14px}@media(max-width:800px){.job-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-open img{height:230px}}@media(max-width:520px){.job-gallery{grid-template-columns:1fr}.job-video{grid-column:auto}.photo-open img{height:300px}.gallery-filters button{font-size:14px;padding:8px 12px}}

.video-direct{display:block;padding:12px 15px;text-decoration:underline;color:var(--blue)}

#photo-dialog{width:min(1100px,95vw);padding:16px;overflow:hidden} .photo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.photo-zoom-controls{display:flex;align-items:center;gap:8px}.photo-zoom-controls button{min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:6px;background:white;padding:6px 12px}.photo-zoom-controls button:disabled{opacity:.4;cursor:default}#zoom-level{min-width:58px;text-align:center;font-size:15px;font-variant-numeric:tabular-nums}#photo-stage{position:relative;height:65vh;background:#e8eef2;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;border-radius:5px}#photo-stage.zoomed{cursor:grab}#photo-stage.dragging{cursor:grabbing}#full-photo{max-width:100%;max-height:100%;width:auto;height:auto;margin:0;object-fit:contain;transform-origin:center;user-select:none;pointer-events:none;will-change:transform}.photo-help{font-size:13px;margin:6px 0 0;color:#536575}#photo-caption{margin-top:8px}#photo-close{margin:0;min-height:44px}@media(max-width:520px){.photo-toolbar{flex-wrap:wrap}.photo-zoom-controls{gap:4px}.photo-zoom-controls button{padding:6px 8px}#photo-stage{height:58vh}}

.video-actions{display:flex;gap:10px;padding:12px 15px;flex-wrap:wrap}.video-actions button{background:var(--ink);color:white;border:0;border-radius:6px;padding:10px 16px;min-height:44px}.job-video.video-enlarged{position:fixed;inset:3vh 3vw;z-index:1000;display:flex;flex-direction:column;background:#071522;box-shadow:0 0 0 100vmax #071522e8;border-radius:8px;overflow:auto}.job-video.video-enlarged video{flex:1;min-height:0;max-height:80vh;object-fit:contain;width:100%;height:calc(90vh - 110px)}.job-video.video-enlarged figcaption{color:white}.job-video:fullscreen{width:100vw;height:100vh;background:#071522;display:flex;flex-direction:column;justify-content:center}.job-video:fullscreen video{width:100%;max-height:85vh;object-fit:contain}.job-video:fullscreen figcaption{color:white}

.video-actions{position:relative;z-index:2;flex-shrink:0}.video-actions button{pointer-events:auto}.job-video.video-enlarged video{flex:1 1 auto;position:relative;z-index:1;pointer-events:auto}.fullscreen-feedback{color:var(--ink);font-size:14px;flex-basis:100%}.fullscreen-feedback:empty{display:none}.video-enlarged .fullscreen-feedback{color:white}.fullscreen-feedback a{text-decoration:underline}.video-enlarged .video-actions{background:#071522}.job-video:fullscreen .video-actions{background:#071522}.job-video:fullscreen .fullscreen-feedback{color:white}

#projects figure[hidden],#projects .job-gallery[hidden],#projects h4[hidden]{display:none!important}

/* Shared photo caption typography across every gallery project. */
.job-gallery figure:not(.job-video) > figcaption{font-family:inherit;font-size:1rem;font-weight:400;line-height:inherit;}
