@font-face{font-family:Inter;src:url('assets/inter-0.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url('assets/inter-1.ttf') format('truetype');font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url('assets/inter-2.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:Inter;src:url('assets/inter-3.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:Inter;src:url('assets/inter-4.ttf') format('truetype');font-weight:800;font-display:swap}
:root{--navy:#071e35;--blue:#153a5c;--green:#87df53;--paper:#f6f7f4;--muted:#61718a;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--paper);font-family:Inter,Arial,sans-serif;color:var(--navy);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,fieldset{border:0}button{color:inherit}button:disabled{cursor:wait}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #55b82d;outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2{font-weight:750;letter-spacing:-.055em;line-height:1.015}em{font-style:normal;color:var(--green)}[hidden]{display:none!important}.site{width:100%;max-width:1800px;margin:auto;overflow:hidden;overflow:clip}.sheet{--u:calc(100vw / 1086);position:relative;height:133.333333vw;max-height:2400px;aspect-ratio:1086/1448;isolation:isolate}.heating-visual,.craft-visual{display:none}.scene{position:absolute;inset:0;background-repeat:no-repeat;background-size:100% 100%;z-index:-1;pointer-events:none}.scene-one{background-image:url('assets/background-1.webp')}.scene-two{background-image:url('assets/background-2.webp')}.scene-three{background-image:url('assets/background-3.webp')}.scene-four{background-image:url('assets/background-4.webp')}.eyebrow{text-transform:uppercase;font-size:calc(12 * var(--u));letter-spacing:.22em;font-weight:500;line-height:1.6}.green{color:#5fbd30}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:calc(16 * var(--u)) calc(27 * var(--u));border:0;border-radius:calc(8 * var(--u));background:linear-gradient(110deg,#82d94d,#96e165);color:#061e28;font-size:calc(16 * var(--u));font-weight:600;letter-spacing:-.035em;line-height:1.15;transition:transform .3s var(--ease),box-shadow .3s,filter .3s;white-space:nowrap}.button:hover{filter:brightness(1.055);box-shadow:0 12px 30px #071e351b;transform:translateY(-3px)}.button:active{transform:translateY(1px)}.text-link{display:inline-block;font-size:calc(14 * var(--u));line-height:1.7;text-decoration:underline;text-underline-offset:.55em;text-decoration-thickness:1px}.text-link:hover{text-decoration-color:var(--green)}.light{color:#fff}.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}.skip-link{position:fixed;top:-100px;left:20px;background:var(--green);padding:14px;z-index:99}.skip-link:focus{top:10px}
.header{position:absolute;top:0;left:4.4%;right:3.8%;height:calc(70 * var(--u));display:flex;align-items:center;justify-content:space-between;color:white;z-index:15}.wordmark{font-size:calc(24 * var(--u));letter-spacing:-.045em;font-weight:750;white-space:nowrap}.desktop-nav{display:flex;gap:calc(38 * var(--u));font-size:calc(13 * var(--u));margin-left:calc(110 * var(--u))}.desktop-nav a{padding:14px 0;transition:color .2s}.desktop-nav a:hover{color:var(--green)}.header-cta{font-size:calc(12 * var(--u));padding:calc(14 * var(--u)) calc(24 * var(--u));min-height:36px}.menu-toggle,.mobile-nav{display:none}
.hero{position:absolute;top:0;left:0;width:100%;height:52%;color:#fff}.hero-copy{position:absolute;left:4.5%;top:17.1%;width:48%}.hero-eyebrow{font-size:calc(10 * var(--u));letter-spacing:.24em;margin-bottom:calc(20 * var(--u));color:#d5dfeb}.hero h1{font-size:calc(70 * var(--u));letter-spacing:-.057em;font-weight:750;line-height:.90}.hero h1 span{display:block}.hero-description{font-size:calc(20 * var(--u));line-height:1.35;font-weight:400;letter-spacing:-.035em;margin-top:calc(20 * var(--u))}.hero-actions{display:flex;align-items:center;gap:calc(32 * var(--u));margin-top:calc(23 * var(--u))}.hero-actions .button{min-height:calc(49 * var(--u))}.hero-light{position:absolute;inset:0;background:radial-gradient(circle at var(--mx,65%) var(--my,45%),#88dd4e15,transparent 40%);opacity:0;transition:opacity 1s;pointer-events:none}.hero:hover .hero-light{opacity:1}.scroll-cue{position:absolute;top:90.7%;left:50%;transform:translateX(-50%);font-size:calc(13 * var(--u));display:flex;align-items:center;flex-direction:column;gap:calc(8 * var(--u));white-space:nowrap}.scroll-cue i{display:block;height:calc(20 * var(--u));width:1px;background:#fff8;animation:cue 2.5s infinite}@keyframes cue{50%{transform:scaleY(.55);opacity:.5}}
.services{position:absolute;top:52%;left:0;width:100%;height:48%}.services-intro{position:absolute;top:7.8%;left:4.5%}.services-intro .eyebrow{font-size:calc(12 * var(--u));letter-spacing:.035em}.services h2{font-size:calc(68 * var(--u));margin-top:calc(13 * var(--u));line-height:.94}.service-stage{position:absolute;top:31%;left:0;width:62%;height:69%;pointer-events:none}.service-stage img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;animation:stage-in .7s var(--ease)}@keyframes stage-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}.sheet-one.has-service-image .scene-one{background-image:linear-gradient(transparent 52%,#f5f6f3 66%,#f5f6f3 100%),url('assets/background-1.webp')}.service-list{position:absolute;left:65.5%;top:17%;width:30.5%}.service-entry{margin-bottom:calc(47 * var(--u))}.service-entry button{background:none;padding:0;text-align:left;width:100%;transition:color .35s;color:#66758f;display:block}.service-entry.active button{color:var(--navy)}.service-number{display:flex;align-items:center;gap:calc(24 * var(--u));font-size:calc(15 * var(--u));font-weight:400;line-height:1.5;color:var(--navy);margin-bottom:calc(14 * var(--u))}.service-number i{display:block;width:calc(12 * var(--u));height:calc(12 * var(--u));border-radius:50%;background:#b5c2d2;transition:background .3s}.active .service-number i{background:#6bbd29}.service-title{font-size:calc(38 * var(--u));font-weight:750;letter-spacing:-.065em;line-height:1.05;display:block}.service-details{font-size:calc(14.5 * var(--u));line-height:1.5;margin-top:calc(12 * var(--u));letter-spacing:-.045em}.service-details a{display:inline-block;color:#4fae1e;margin-top:calc(8 * var(--u));font-weight:500}.service-details a:hover{text-decoration:underline;text-underline-offset:5px}.services-caption{position:absolute;left:65.8%;bottom:7%;width:31%;font-size:calc(13 * var(--u));letter-spacing:-.04em;line-height:1.7}.services-caption .text-link{margin-top:calc(11 * var(--u))}
.heating{position:absolute;top:0;left:0;width:100%;height:59.8%}.heating-head{position:absolute;left:6.3%;top:10.8%;width:65%}.heating h2{font-size:calc(80 * var(--u));line-height:.96;margin-top:calc(27 * var(--u));letter-spacing:-.062em}.heating-summary{position:absolute;top:16.5%;left:67.9%;width:27%;font-size:calc(18 * var(--u));line-height:1.35;letter-spacing:-.035em}.floor-controls{position:absolute;left:6.3%;top:39.7%;width:20.2%;display:flex;flex-direction:column}.floor-controls button{display:flex;align-items:center;gap:calc(26 * var(--u));text-align:left;min-height:calc(55 * var(--u));padding:calc(12 * var(--u)) calc(23 * var(--u));border-radius:calc(12 * var(--u));background:none;font-weight:650;font-size:calc(20 * var(--u));letter-spacing:-.04em;transition:background .3s,transform .3s}.floor-controls button:hover{transform:translateX(3px)}.floor-controls button.active{background:linear-gradient(110deg,#82d94d,#96e165)}.floor-controls button span{font-size:calc(16 * var(--u));font-weight:550}.floor-description{position:absolute;left:6.4%;top:65.6%;width:24.7%}.floor-description h3{font-size:calc(20 * var(--u));line-height:1.15;font-weight:650;letter-spacing:-.05em;max-width:93%}.floor-description p{color:#5a6572;font-size:calc(16 * var(--u));line-height:1.4;letter-spacing:-.03em;margin-top:calc(17 * var(--u))}.floor-description .button{margin-top:calc(26 * var(--u));padding:calc(18 * var(--u)) calc(27 * var(--u))}
.craft{position:absolute;top:59.8%;left:0;width:100%;height:40.2%;color:white}.craft h2{position:absolute;left:6.3%;top:12%;font-size:calc(76 * var(--u));line-height:.965;letter-spacing:-.057em}.material-caption{position:absolute;left:63.5%;top:57.5%;font-size:calc(11 * var(--u));color:#c4ceda}.craft-principles{position:absolute;top:73.7%;left:6.4%;right:4%;display:grid;grid-template-columns:1.1fr 1.1fr 1fr;gap:calc(48 * var(--u))}.craft-principles h3{font-size:calc(20 * var(--u));letter-spacing:-.045em;font-weight:600;white-space:nowrap}.craft-principles p{font-size:calc(17 * var(--u));line-height:1.35;letter-spacing:-.04em;color:#c4d1de;margin-top:calc(14 * var(--u))}
.process{position:absolute;top:0;left:0;width:100%;height:55.7%;color:white}.process-head{position:absolute;left:5.3%;top:12.7%}.process-head .eyebrow{color:#a3ed64;font-size:calc(13 * var(--u));letter-spacing:.3em}.process h2{font-size:calc(77 * var(--u));line-height:.98;margin-top:calc(15 * var(--u))}.process-steps{list-style:none;padding:0;margin:0;position:absolute;inset:0;pointer-events:none}.process-steps li{position:absolute;pointer-events:auto}.step-one{left:9.8%;top:42.6%;width:23%}.step-two{left:46.5%;top:44.2%;width:23%}.step-three{left:76.5%;top:31.7%;width:23%}.step-number{font-size:calc(83 * var(--u));font-weight:750;line-height:1;letter-spacing:-.055em;color:#34618c}.process-steps h3{font-size:calc(28 * var(--u));line-height:1.01;letter-spacing:-.05em;font-weight:700}.process-steps p{font-size:calc(20 * var(--u));line-height:1.2;letter-spacing:-.025em;margin-top:calc(12 * var(--u))}.process-cta{position:absolute;top:80.9%;left:5.6%;padding:calc(18 * var(--u)) calc(33 * var(--u))}.process-trace{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.2}.process-trace path{fill:none;stroke:#dbffa2;stroke-width:3;stroke-linecap:round;stroke-dasharray:10 2400;animation:trace 12s linear infinite;filter:drop-shadow(0 0 5px #c1f688)}@keyframes trace{to{stroke-dashoffset:-2410}}
.region{position:absolute;top:55.7%;left:0;width:100%;height:44.3%;overflow:clip}.region-copy{position:absolute;top:13.8%;left:5.3%;z-index:2}.region h2{font-size:calc(69 * var(--u));line-height:.99;margin-top:calc(25 * var(--u));letter-spacing:-.06em}.region-description{font-size:calc(21 * var(--u));line-height:1.4;margin-top:calc(24 * var(--u));letter-spacing:-.04em}.region-contact{position:absolute;top:68.6%;left:5.5%;z-index:3}.region-contact>p{font-size:calc(17 * var(--u));letter-spacing:-.03em}.phone-large{display:block;font-size:calc(58 * var(--u));font-weight:750;letter-spacing:-.055em;line-height:1.15;margin:calc(7 * var(--u)) 0 calc(14 * var(--u))}.map-wrap{position:absolute;right:-7%;top:1%;width:54%;height:90%;perspective:1200px}.map-perspective{position:absolute;inset:3% 4% 6% 2%;transform:rotateX(32deg) rotateZ(-12deg);transform-style:preserve-3d}.map-plate{position:absolute;inset:0;background:#fafbf7;border-radius:8%;box-shadow:-3px 5px 0 #dfdfd7,-6px 10px 0 #ebebe4,-9px 15px 0 #dadad2,-15px 30px 35px #14243324;overflow:visible}.map-tiles{position:absolute;inset:0;border-radius:inherit;overflow:hidden;filter:grayscale(1) sepia(.15) contrast(.75) brightness(1.15);background:#ecefe8}.map-tiles img{position:absolute;width:33.3334%;height:33.3334%;max-width:none}.map-pin{position:absolute;left:var(--pin-x,50%);top:var(--pin-y,50%);transform:translate(-50%,-93%) rotateZ(12deg) rotateX(-32deg);transform-origin:bottom center;display:flex;align-items:center;z-index:2;filter:drop-shadow(4px 8px 5px #22331938)}.map-pin svg{display:block;width:calc(58 * var(--u));height:calc(76 * var(--u));transition:transform .4s var(--ease)}.map-pin:hover svg{transform:translateY(-7px)}.map-pin span{position:absolute;left:calc(64 * var(--u));top:calc(38 * var(--u));font-size:calc(21 * var(--u));font-weight:750;letter-spacing:-.05em;text-shadow:0 1px 4px #fff;background:#f5f7f4dc;padding:4px 6px;border-radius:4px}.map-attribution{position:absolute;bottom:0;right:15%;font-size:calc(9 * var(--u));z-index:2;color:#536175;white-space:nowrap}.map-attribution a{text-decoration:underline;text-underline-offset:3px}
.faq{position:absolute;top:0;left:0;width:100%;height:29%}.faq-heading{position:absolute;left:6.3%;top:19%}.faq-heading h2{font-size:calc(98 * var(--u));line-height:.98;margin-top:calc(25 * var(--u));letter-spacing:-.065em}.faq-heading h2 span{color:#80c550}.faq-list{position:absolute;left:47.5%;top:15.7%;width:47.2%}.faq-list details{background:#eef1eb9c;border-radius:calc(18 * var(--u));padding:calc(16 * var(--u)) calc(24 * var(--u));margin-bottom:calc(10 * var(--u));font-size:calc(15 * var(--u));letter-spacing:-.03em;transition:background .3s}.faq-list details[open]{background:#eaf1e4bd}.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:650;cursor:pointer;list-style:none;line-height:1.4}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:calc(24 * var(--u));font-weight:500;color:#70bf3e;line-height:.7;transition:transform .3s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{font-size:calc(15 * var(--u));line-height:1.5;margin-top:calc(16 * var(--u));font-weight:400}.contact{position:absolute;top:29%;left:0;width:100%;height:35%;color:white}.contact-copy{position:absolute;left:5.3%;top:13.8%;width:50%}.contact h2{font-size:calc(61 * var(--u));line-height:1.04;letter-spacing:-.06em}.contact-intro{font-size:calc(32 * var(--u));line-height:1.2;letter-spacing:-.045em;margin-top:calc(26 * var(--u))}.contact-links{margin-top:calc(42 * var(--u));display:flex;flex-direction:column;gap:calc(12 * var(--u))}.contact-links>a{display:flex;align-items:center;gap:calc(24 * var(--u));font-size:calc(27 * var(--u));letter-spacing:-.035em}.contact-links>a:hover{color:var(--green)}.contact-icon{display:flex;align-items:center;justify-content:center;width:calc(40 * var(--u));height:calc(40 * var(--u));border-radius:50%;background:#95e261;color:#05253b;flex:none}.contact-icon svg{width:55%;height:55%;fill:currentColor}.contact-icon svg path+path{stroke:var(--green)}.contact-area{font-size:calc(19 * var(--u));letter-spacing:-.03em;color:#c5d2e1;margin-top:calc(26 * var(--u))}.quote-form{position:absolute;top:13.3%;left:58%;width:36.8%}.quote-form h3{font-size:calc(20 * var(--u));letter-spacing:-.04em;font-weight:600;color:#99e75c}.service-chips{display:flex;justify-content:space-between;padding:0;margin:calc(18 * var(--u)) 0 calc(22 * var(--u));gap:calc(7 * var(--u))}.service-chips label{position:relative;cursor:pointer}.service-chips input{position:absolute;opacity:0;width:100%;height:100%;margin:0;z-index:1;cursor:pointer}.service-chips span{display:block;background:#264c6bba;border-radius:100px;padding:calc(16 * var(--u)) calc(18 * var(--u));color:white;font-size:calc(12 * var(--u));font-weight:550;letter-spacing:-.04em;white-space:nowrap;transition:background .3s,color .3s}.service-chips input:checked+span{background:linear-gradient(110deg,#82d94d,#a0e865);color:#08252d}.service-chips input:focus-visible+span{outline:3px solid white;outline-offset:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:calc(11 * var(--u))}.form-grid label{display:block;min-width:0}.form-grid input,.form-grid textarea{display:block;width:100%;padding:calc(18 * var(--u));background:#294c6cbb;border:0;border-radius:calc(12 * var(--u));color:white;font-size:calc(13 * var(--u));line-height:1.4;box-shadow:inset 0 1px 1px #ffffff04;transition:background .3s}.form-grid input:focus,.form-grid textarea:focus{background:#365d7c}.form-grid ::placeholder{color:#c2d0de;opacity:1}.form-grid .message-label{grid-column:1/-1}.form-grid textarea{resize:vertical;min-height:calc(104 * var(--u));max-height:calc(155 * var(--u))}.form-submit{margin-top:calc(17 * var(--u));width:100%;min-height:calc(50 * var(--u));padding:calc(13 * var(--u));font-size:calc(17 * var(--u))}.form-note{font-size:calc(10 * var(--u));color:#c3d0df;line-height:1.4;margin-top:calc(9 * var(--u));text-align:center}.form-status{font-size:calc(12 * var(--u));color:#e4efdf;line-height:1.5;margin-top:8px;padding:8px;background:#123750e8;border-radius:6px}.footer{position:absolute;top:64%;left:0;width:100%;height:36%;color:#fff}.footer-brand{position:absolute;left:4.6%;right:4.5%;bottom:17.7%;font-size:calc(126 * var(--u));letter-spacing:-.047em;font-weight:750;line-height:1.15;white-space:nowrap}.footer-bottom{position:absolute;bottom:9.7%;left:5%;right:5%;display:flex;align-items:center;justify-content:space-between;font-size:calc(13 * var(--u));letter-spacing:-.035em}.footer-bottom nav{display:flex;gap:calc(45 * var(--u));font-size:calc(17 * var(--u));margin-right:calc(60 * var(--u))}.footer-bottom a:hover{color:var(--green)}.site-credit{font-size:calc(12 * var(--u))}
.js .reveal{transition:opacity .9s var(--ease),transform 1.1s var(--ease);opacity:0;transform:translateY(24px)}.js .reveal.visible{opacity:1;transform:none}.hero-copy h1 span{animation:hero-in 1.2s var(--ease) both}.hero-copy h1 span:nth-child(2){animation-delay:.12s}.hero-copy h1 span:nth-child(3){animation-delay:.24s}@keyframes hero-in{from{opacity:.25;transform:translateY(25px);filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
/* Flow-based layouts grow with phone font settings and translated/expanded content. */
@media(min-width:1800px){body{background:#e8ece7}.sheet{--u:1.6574585635px}}
@media(max-width:1100px){
.site{overflow:visible}.sheet{--u:1px;height:auto;max-height:none;aspect-ratio:auto;min-height:0}.sheet>.scene{display:none}.eyebrow{font-size:11px;letter-spacing:.15em;overflow-wrap:anywhere}.button{font-size:16px;padding:16px 23px;border-radius:8px;min-height:48px;max-width:100%;white-space:normal;text-align:center}.text-link{font-size:16px}h1,h2,h3{overflow-wrap:anywhere}p{overflow-wrap:break-word}.header{height:88px;left:6%;right:6%;align-items:center;gap:12px}.wordmark{font-size:clamp(18px,5vw,25px);white-space:normal;min-width:0;line-height:1.15}.desktop-nav,.header-cta{display:none}.menu-toggle{display:flex;flex:none;width:44px;height:44px;flex-direction:column;justify-content:center;gap:7px;background:#163c5880;border-radius:50%;padding:12px;color:#fff}.menu-toggle span{width:20px;height:1px;background:currentColor;transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav:not([hidden]){position:absolute;display:flex;top:78px;left:0;right:0;padding:16px;background:#0c2c44;box-shadow:0 15px 35px #0003;flex-direction:column;border-radius:18px;max-height:calc(100vh - 100px);overflow:auto}.mobile-nav a{display:block;padding:13px;font-size:19px;letter-spacing:-.035em;overflow-wrap:anywhere}
.hero{position:relative;top:auto;left:auto;height:auto;max-height:none;min-height:820px;padding:128px 6% 28px;display:flex;flex-direction:column;background:#092b43;overflow:hidden;border-radius:0 0 40px 0}.hero:before{content:'';position:absolute;inset:0;pointer-events:none;background:url('assets/background-1.webp') no-repeat;background-size:auto 1750px;background-position:67% top}.hero:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(#08243dec,#08243dc2 43%,transparent 74%)}.hero-copy{position:relative;inset:auto;z-index:2;width:100%;margin-bottom:225px}.hero-eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:22px;white-space:normal}.hero h1{font-size:clamp(36px,10.3vw,72px);line-height:1.02;letter-spacing:-.058em}.hero-description{font-size:17px;line-height:1.5;margin-top:24px;letter-spacing:-.025em}.hero-actions{gap:20px;margin-top:27px;flex-wrap:wrap;align-items:center}.hero-actions .button{min-height:48px;padding:16px 21px;font-size:16px}.scroll-cue{position:relative;inset:auto;transform:none;align-self:center;margin-top:auto;z-index:3;font-size:12px;gap:7px;white-space:normal;text-align:center}.scroll-cue i{height:18px}.hero-light{display:none}
.services{position:relative;inset:auto;width:100%;height:auto;min-height:0;padding:64px 6% 48px;display:flex;flex-direction:column;background:var(--paper);overflow:hidden}.services:before{display:none}.services-intro{position:relative;inset:auto;order:0}.services-intro .eyebrow{font-size:11px}.services h2{font-size:clamp(38px,10.5vw,65px);line-height:1.03;margin-top:16px}.service-stage{position:relative;inset:auto;order:1;width:114%;height:clamp(285px,78vw,510px);margin:24px -7% 28px;flex:none;isolation:isolate}.service-stage:before{content:'';position:absolute;inset:0;z-index:-1;background:url('assets/background-1.webp') no-repeat;background-size:760px auto;background-position:34% bottom}.has-alt .service-stage:before{display:none}.service-stage img{object-fit:contain}.service-list{position:relative;inset:auto;order:2;width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:24px}.service-entry{margin:0;min-width:0}.service-entry button{display:flex;align-items:center;gap:14px;min-height:44px}.service-number{font-size:13px;margin:0;gap:10px;min-width:48px;flex:none}.service-number i{width:8px;height:8px;flex:none}.service-title{font-size:clamp(26px,6.6vw,38px);letter-spacing:-.055em;min-width:0;overflow-wrap:anywhere}.service-details{font-size:16px;line-height:1.5;margin:8px 0 0 62px;letter-spacing:-.025em}.service-details a{margin-top:8px;min-height:44px;padding:8px 0}.services-caption{position:relative;inset:auto;order:3;width:100%;margin-top:32px;font-size:14px;line-height:1.6}.services-caption .text-link{display:none}
.heating{position:relative;inset:auto;width:100%;height:auto;padding:56px 6% 64px;background:var(--paper);overflow:hidden}.heating:before{display:none}.heating-head{position:relative;inset:auto;width:100%}.heating h2{font-size:clamp(38px,10.8vw,65px);line-height:1.03;margin-top:20px}.heating-summary{position:relative;inset:auto;width:100%;max-width:600px;margin-top:26px;font-size:16px;line-height:1.6;letter-spacing:-.02em}.floor-controls{position:relative;inset:auto;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:28px}.floor-controls button{font-size:16px;line-height:1.3;min-width:0;min-height:48px;gap:10px;padding:13px 15px;border-radius:8px;flex:1 1 auto;min-width:max-content;letter-spacing:-.035em;white-space:nowrap;overflow-wrap:normal}.floor-controls button span{font-size:12px;flex:none}.heating-visual{display:block;height:clamp(290px,78vw,480px);margin:28px -7% 30px;background:url('assets/background-2.webp') no-repeat;background-size:650px auto;background-position:70% 0}.floor-description{position:relative;inset:auto;width:100%}.floor-description h3{font-size:23px;line-height:1.2;max-width:550px}.floor-description p{font-size:16px;line-height:1.6;margin-top:15px;max-width:600px}.floor-description .button{margin-top:24px;padding:16px 24px}
.craft{position:relative;inset:auto;width:100%;height:auto;padding:64px 6%;background:#06243b;overflow:hidden;border-radius:36px 0 0 0}.craft:before{display:none}.craft h2{position:relative;inset:auto;font-size:clamp(40px,10.8vw,65px);line-height:1.03;z-index:1}.craft-visual{display:block;height:clamp(260px,70vw,450px);margin:24px -7% 0;background:url('assets/background-2.webp') no-repeat;background-size:850px auto;background-position:56% bottom}.material-caption{position:relative;inset:auto;display:block;font-size:11px;text-align:right;margin:12px 0 36px}.craft-principles{position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:28px}.craft-principles h3{font-size:22px;line-height:1.25;letter-spacing:-.035em;white-space:normal}.craft-principles p{font-size:16px;line-height:1.6;margin-top:8px;letter-spacing:-.02em}.craft-principles p br{display:none}
.process{position:relative;inset:auto;width:100%;height:auto;padding:64px 6%;background:#08273f;border-radius:0 0 38px 0;overflow:hidden}.process:before{content:'';position:absolute;inset:200px -150px 0;background:url('assets/background-3.webp') no-repeat;background-size:1100px auto;background-position:62% 0;opacity:.25;pointer-events:none;transform:rotate(90deg) scale(1.1)}.process-head{position:relative;inset:auto}.process-head .eyebrow{font-size:11px;letter-spacing:.2em}.process h2{font-size:clamp(38px,10.6vw,65px);line-height:1.04;margin-top:20px}.process-steps{position:relative;inset:auto;display:flex;flex-direction:column;gap:36px;margin-top:48px}.process-steps li{position:relative;inset:auto;width:100%;padding-left:78px;min-height:0}.step-number{position:absolute;left:0;top:0;font-size:60px;color:#4b789e;line-height:1}.process-steps h3{font-size:28px;line-height:1.15;letter-spacing:-.04em}.process-steps p{font-size:17px;line-height:1.5;margin-top:12px;letter-spacing:-.02em}.process-steps p br{display:none}.process-cta{position:relative;inset:auto;margin-top:44px;padding:17px 26px}.process-trace{display:none}
.region{position:relative;inset:auto;width:100%;height:auto;padding:64px 6% 56px;display:flex;flex-direction:column;background:var(--paper);overflow:hidden}.region-copy{position:relative;inset:auto;order:0}.region h2{font-size:clamp(38px,10vw,62px);line-height:1.04;margin-top:20px}.region-description{font-size:16px;line-height:1.6;margin-top:24px;letter-spacing:-.02em}.region-description br{display:none}.region-contact{position:relative;inset:auto;order:2;margin-top:32px}.region-contact>p{font-size:16px}.phone-large{font-size:clamp(32px,10vw,52px);line-height:1.2;margin:10px 0 18px;overflow-wrap:anywhere}.map-wrap{position:relative;inset:auto;order:1;width:114%;height:clamp(320px,85vw,530px);margin:32px -7% 0;perspective:900px;flex:none}.map-perspective{inset:0 12% 14%;transform:rotateX(30deg) rotateZ(-12deg)}.map-pin svg{width:43px;height:57px}.map-pin span{font-size:16px}.map-attribution{bottom:0;left:6%;right:6%;font-size:10px;line-height:1.5;text-align:center;white-space:normal}
.faq{position:relative;inset:auto;width:100%;height:auto;min-height:0;background:var(--paper);padding:48px 6% 64px}.faq-heading{position:relative;inset:auto}.faq-heading h2{font-size:clamp(44px,11.5vw,70px);line-height:1.04;margin-top:20px}.faq-heading h2 br{display:none}.faq-list{position:relative;inset:auto;width:100%;margin-top:36px}.faq-list details{padding:20px;margin-bottom:12px;font-size:16px;border-radius:14px}.faq-list summary{position:relative;display:list-item;padding-right:44px;font-size:16px;line-height:1.5;min-height:24px;letter-spacing:-.025em;overflow-wrap:anywhere}.faq-list summary span{position:absolute;right:8px;top:2px;width:24px;height:24px;display:grid;place-items:center;line-height:1;font-size:24px}.faq-list details p{font-size:16px;line-height:1.6;margin-top:16px;letter-spacing:-.02em}
.contact{position:relative;inset:auto;width:100%;min-height:0;height:auto;background:#092b43;border-radius:35px 35px 0 0;padding:64px 6%;overflow:hidden}.contact:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 100% 20%,#1f527141,transparent 70%)}.contact-copy{position:relative;inset:auto;width:100%}.contact h2{font-size:clamp(36px,9.8vw,61px);line-height:1.1;letter-spacing:-.055em}.contact-intro{font-size:24px;line-height:1.4;margin-top:24px}.contact-links{margin-top:30px;gap:16px}.contact-links>a{font-size:20px;gap:14px;letter-spacing:-.025em;line-height:1.4;min-width:0}.contact-value{min-width:0;overflow-wrap:anywhere}.contact-icon{width:36px;height:36px}.contact-area{font-size:16px;line-height:1.5;margin-top:24px}.quote-form{position:relative;inset:auto;width:100%;margin-top:48px}.quote-form h3{font-size:23px;line-height:1.3}.service-chips{margin:20px 0;gap:8px;justify-content:flex-start;flex-wrap:wrap;min-width:0}.service-chips label{max-width:100%;min-width:0}.service-chips span{font-size:14px;line-height:1.4;padding:13px 16px;white-space:normal;overflow-wrap:anywhere}.form-grid{gap:12px;grid-template-columns:minmax(0,1fr)}.form-grid input,.form-grid textarea{padding:16px 14px;border-radius:10px;font-size:16px;line-height:1.5;min-height:54px}.form-grid textarea{min-height:140px;max-height:none}.form-submit{margin-top:18px;min-height:52px;font-size:16px;padding:16px}.form-note{font-size:12px;margin-top:14px;line-height:1.6}.form-status{font-size:14px;line-height:1.6}.footer{position:relative;inset:auto;width:100%;height:auto;min-height:0;padding:220px 6% 32px;background:#092b43;overflow:hidden}.footer:before{content:'';position:absolute;inset:0;pointer-events:none;background:url('assets/background-4.webp') no-repeat;background-size:650px auto;background-position:51% bottom}.footer-brand{position:relative;inset:auto;display:block;width:100%;font-size:clamp(30px,9.7vw,80px);letter-spacing:-.055em;white-space:normal;overflow-wrap:anywhere}.footer-bottom{position:relative;inset:auto;margin-top:32px;display:flex;flex-direction:column;gap:20px;font-size:13px;line-height:1.6;align-items:flex-start;justify-content:flex-start}.footer-bottom nav{font-size:16px;gap:16px 28px;margin:0;flex-wrap:wrap}.site-credit{font-size:12px}
}
@media(min-width:600px) and (max-width:1100px){.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.craft-principles{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.craft-principles h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.hero-copy h1 span{opacity:1;transform:none;filter:none}.process-trace{display:none}}

/* Keep the geographic marker upright while the real map retains its architectural perspective. */
.map-wrap>.map-pin{transform:translate(-50%,-100%);left:60%;top:50%;z-index:4}.map-wrap>.map-pin span{left:calc(47 * var(--u));top:calc(44 * var(--u))}.map-anchor{position:absolute;width:1px;height:1px;left:var(--pin-x);top:var(--pin-y);pointer-events:none}@media(min-width:1101px){.map-wrap{width:51%}}
@media(max-width:1100px){.map-wrap{width:114%}.map-wrap>.map-pin span{left:36px;top:36px}}
/* Fade studio asset edges into the material stage; no framed image surface. */
.service-stage img{mask-image:linear-gradient(transparent,#000 9%,#000 89%,transparent),linear-gradient(90deg,transparent,#000 4%,#000 94%,transparent);mask-composite:intersect}
@media(min-width:1101px){.step-three{top:30.5%}.step-three p{font-size:calc(18 * var(--u));margin-top:calc(8 * var(--u));line-height:1.3}.sheet+.sheet{margin-top:-1px}}

/* Desktop keeps the approved artwork, while content determines section height. */
@media(min-width:1101px){
.sheet{height:auto;max-height:none;aspect-ratio:auto}.sheet>.scene{display:none}
.hero{position:relative;inset:auto;height:auto;min-height:calc(753 * var(--u));padding:calc(129 * var(--u)) 4.5% calc(115 * var(--u));background:#092b43 url('assets/background-1.webp') no-repeat center top;background-size:100% auto}.hero-copy{position:relative;inset:auto;width:52%}.hero h1{overflow-wrap:anywhere}.hero-actions{flex-wrap:wrap}.scroll-cue{top:auto;bottom:calc(35 * var(--u))}
.services{position:relative;inset:auto;height:auto;min-height:calc(695 * var(--u));display:grid;grid-template-columns:minmax(0,60fr) minmax(0,35fr);column-gap:5%;padding:calc(54 * var(--u)) 4.5% calc(48 * var(--u));background:var(--paper);overflow:hidden}.services-intro{position:relative;inset:auto;grid-column:1;grid-row:1}.service-stage{position:relative;inset:auto;grid-column:1;grid-row:2/4;isolation:isolate;min-height:calc(420 * var(--u));height:auto;width:110%;margin-left:-8%}.service-stage:before{content:'';position:absolute;inset:0;z-index:-1;background:url('assets/background-1.webp') no-repeat left bottom;background-size:calc(1086 * var(--u)) calc(1448 * var(--u))}.has-alt .service-stage:before{display:none}.service-list{position:relative;inset:auto;width:100%;grid-column:2;grid-row:1/3;padding-top:calc(64 * var(--u));min-width:0}.service-entry:last-child{margin-bottom:0}.service-title{overflow-wrap:anywhere}.services-caption{position:relative;inset:auto;width:100%;grid-column:2;grid-row:3;margin-top:calc(32 * var(--u))}
.heating{position:relative;inset:auto;height:auto;min-height:calc(866 * var(--u));display:grid;grid-template-columns:minmax(0,70fr) minmax(0,27fr);gap:calc(32 * var(--u)) 3%;padding:calc(93 * var(--u)) 6.3% calc(64 * var(--u));background:var(--paper) url('assets/background-2.webp') no-repeat center top;background-size:100% auto}.heating-head{position:relative;inset:auto;width:100%;grid-column:1;grid-row:1}.heating h2{overflow-wrap:anywhere}.heating-summary{position:relative;inset:auto;width:100%;grid-column:2;grid-row:1;padding-top:calc(45 * var(--u))}.floor-controls{position:relative;inset:auto;width:36%;grid-column:1;grid-row:2;align-self:start}.floor-controls button{min-height:44px;white-space:normal;overflow-wrap:anywhere}.floor-description{position:relative;inset:auto;width:45%;grid-column:1;grid-row:3;align-self:start}.floor-description h3{max-width:none}.floor-description .button{white-space:normal;text-align:center;max-width:100%}
.craft{position:relative;inset:auto;height:auto;min-height:calc(582 * var(--u));padding:calc(70 * var(--u)) 6.3% calc(48 * var(--u));background:#06243b url('assets/background-2.webp') no-repeat center bottom;background-size:100% auto}.craft h2{position:relative;inset:auto;width:65%;overflow-wrap:anywhere}.material-caption{position:relative;inset:auto;display:block;text-align:right;margin-top:calc(25 * var(--u))}.craft-principles{position:relative;inset:auto;margin-top:calc(95 * var(--u));grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(34 * var(--u))}.craft-principles h3{white-space:normal;line-height:1.25}.craft-principles p{line-height:1.5}.craft-principles p br{display:none}
.process{position:relative;inset:auto;height:auto;min-height:calc(806 * var(--u));padding:calc(102 * var(--u)) 5.3% calc(80 * var(--u));background:#08273f url('assets/background-3.webp') no-repeat center top;background-size:100% auto}.process-head{position:relative;inset:auto;width:70%}.process-steps{position:relative;inset:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7%;margin-top:calc(60 * var(--u))}.process-steps li{position:relative;inset:auto;width:100%;min-width:0}.process-steps .step-three{margin-top:calc(-70 * var(--u))}.process-steps h3{overflow-wrap:anywhere}.process-steps p{line-height:1.4}.process-steps p br{display:none}.process-cta{position:relative;inset:auto;margin-top:calc(50 * var(--u));white-space:normal}.process-trace{opacity:.1}
.region{position:relative;inset:auto;height:auto;min-height:calc(642 * var(--u));display:grid;grid-template-columns:minmax(0,48fr) minmax(0,52fr);padding:calc(88 * var(--u)) 5.3% calc(70 * var(--u));background:var(--paper);overflow:hidden}.region-copy{position:relative;inset:auto;grid-column:1;grid-row:1}.region h2{overflow-wrap:anywhere}.region-description{line-height:1.5}.region-description br{display:none}.region-contact{position:relative;inset:auto;grid-column:1;grid-row:2;margin-top:calc(48 * var(--u))}.phone-large{overflow-wrap:anywhere}.map-wrap{position:relative;inset:auto;grid-column:2;grid-row:1/3;width:100%;height:auto;min-height:calc(480 * var(--u))}.map-perspective{inset:0 0 12% 2%}.map-attribution{left:0;right:0;bottom:0;font-size:calc(10 * var(--u));line-height:1.5;text-align:center;white-space:normal}
.faq{position:relative;inset:auto;height:auto;min-height:calc(420 * var(--u));display:grid;grid-template-columns:minmax(0,43fr) minmax(0,54fr);gap:3%;padding:calc(65 * var(--u)) 6.3% calc(64 * var(--u));background:var(--paper)}.faq-heading{position:relative;inset:auto;min-width:0}.faq-heading h2{overflow-wrap:anywhere}.faq-list{position:relative;inset:auto;width:100%;min-width:0}.faq-list summary{position:relative;display:list-item;padding-right:calc(38 * var(--u));overflow-wrap:anywhere}.faq-list summary span{position:absolute;right:calc(8 * var(--u));top:0;width:calc(24 * var(--u));height:calc(24 * var(--u));display:grid;place-items:center;line-height:1}
.contact{position:relative;inset:auto;height:auto;min-height:calc(507 * var(--u));display:grid;grid-template-columns:minmax(0,53fr) minmax(0,42fr);gap:5%;padding:calc(70 * var(--u)) 5.3% calc(60 * var(--u));background:#092b43}.contact-copy{position:relative;inset:auto;width:100%;min-width:0}.contact h2{overflow-wrap:anywhere}.contact-links>a{min-width:0}.contact-value{min-width:0;overflow-wrap:anywhere}.quote-form{position:relative;inset:auto;width:100%;min-width:0}.service-chips{flex-wrap:wrap;justify-content:flex-start;min-width:0}.service-chips label{max-width:100%;min-width:0}.service-chips span{white-space:normal;overflow-wrap:anywhere}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid input,.form-grid textarea{font-size:max(16px,calc(13 * var(--u)))}.form-grid textarea{max-height:none}.form-submit{white-space:normal}
.footer{position:relative;inset:auto;height:auto;min-height:calc(521 * var(--u));padding:calc(250 * var(--u)) 5% calc(80 * var(--u));background:#092b43 url('assets/background-4.webp') no-repeat center bottom;background-size:100% auto}.footer-brand{position:relative;inset:auto;display:block;width:100%;font-size:calc(121 * var(--u));white-space:normal;overflow-wrap:anywhere}.footer-bottom{position:relative;inset:auto;margin-top:calc(36 * var(--u));flex-wrap:wrap;gap:20px;line-height:1.6}.footer-bottom nav{margin:0;flex-wrap:wrap;gap:calc(35 * var(--u))}
}
/* Keep navigation in flow as well: enlarged brand text must reserve its own height. */
@media(max-width:1100px){
.sheet-one{background:#092b43}.header{position:relative;left:auto;right:auto;top:auto;width:88%;margin:0 auto;height:auto;min-height:88px;padding:20px 0}.mobile-nav:not([hidden]){top:calc(100% - 8px);max-height:calc(100vh - 160px)}.hero{min-height:732px;padding-top:40px}
}
@media(min-width:1101px){
.sheet-one{background:#092b43 url('assets/background-1.webp') no-repeat center top;background-size:100% auto}.header{position:relative;inset:auto;width:91.8%;margin:0 3.8% 0 4.4%;height:auto;min-height:calc(70 * var(--u));padding:calc(12 * var(--u)) 0;flex-wrap:wrap;gap:calc(15 * var(--u)) calc(20 * var(--u))}.desktop-nav{margin-left:auto;flex-wrap:wrap;gap:calc(30 * var(--u))}.header-cta{max-width:100%;white-space:normal;text-align:center}.hero{min-height:calc(683 * var(--u));padding-top:calc(59 * var(--u));background-size:100% 212.006%;background-position:center calc(-70 * var(--u))}.floor-description h3{overflow-wrap:anywhere}
}
