:root{--ink:#242b29;--muted:#747974;--paper:#f7f6f2;--red:#a63227;--line:#dcded7;--font:'DM Sans',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.65}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',sans-serif}h2{font-size:clamp(35px,4vw,57px);font-weight:500;line-height:1.13;letter-spacing:-2.5px}h3{font-weight:650;letter-spacing:-.6px}button{color:inherit}.topbar{background:var(--ink);color:#eee;display:flex;justify-content:space-between;padding:9px 4%;font-size:10px;letter-spacing:1.1px}.topbar i{margin:0 15px;color:#9b9f97}header{height:99px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);position:sticky;top:0;z-index:20;border-bottom:1px solid #ddd}.brand{display:flex;gap:10px;align-items:center;line-height:1.08}.brand svg{color:var(--red)}.brand>span{font:800 21px 'Manrope',sans-serif;letter-spacing:.4px}.brand small{display:block;font:500 10px 'DM Sans',sans-serif;letter-spacing:4px;margin-top:4px}nav{display:flex;gap:30px;font-size:12px;font-weight:550}nav a{position:relative}nav a:after{content:'';height:1px;background:var(--red);position:absolute;bottom:-8px;left:0;width:0;transition:width .3s}nav a:hover:after{width:100%}.header-actions{display:flex;align-items:center;gap:22px}.phone{font-size:13px;font-weight:650}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--red);color:white;border:0;padding:18px 25px;font-size:13px;font-weight:600;transition:background .25s,transform .25s}.button:hover{background:#86261e;transform:translateY(-2px)}.button span{font-size:21px;line-height:1}.button.small{padding:14px 19px;font-size:12px;gap:25px}.menu-toggle{display:none;background:none;border:0;font-size:25px}.hero{height:min(785px,84vh);min-height:620px;position:relative;color:#fff;overflow:hidden;background:#475349}.hero-image{height:100%;position:absolute;object-position:center 54%;animation:heroScale 1.8s ease-out both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,24,22,.85),rgba(15,27,22,.42) 49%,rgba(16,24,21,.07)),linear-gradient(0deg,rgba(10,22,19,.5),transparent 40%)}.hero-content{position:relative;max-width:1450px;margin:auto;padding:58px 6% 0}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:650;display:flex;gap:11px;align-items:center;margin-bottom:25px;color:var(--red)}.eyebrow.light{color:#ebe9dd}.eyebrow>span{width:6px;height:6px;background:#c56652;border-radius:50%}h1{font-size:clamp(64px,6.25vw,96px);font-weight:500;letter-spacing:-5px;line-height:1.025;max-width:770px}em{font-family:Georgia,serif;font-weight:400;letter-spacing:-4px;color:#d2d2b9}.hero-copy{color:#e4e7de;margin-top:23px;font-size:15px;line-height:1.7}.hero-buttons{display:flex;gap:33px;align-items:center;margin-top:28px}.text-link{font-size:12px;border-bottom:1px solid #ffffff60;padding:10px 0;display:inline-flex;align-items:center;gap:30px}.text-link span{font-size:19px}.text-link.dark{border-color:#bfc3b8}.hero-trust{display:flex;align-items:center;gap:17px;margin-top:31px}.stars{color:#dfd5b7;font-size:16px;letter-spacing:3px}.hero-trust strong{font-size:11px;display:block;font-weight:600}.hero-trust small{font-size:9px;color:#c0c8bf}.hero-bottom{position:absolute;bottom:23px;left:6%;right:6%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.8px;color:#c9cfc6}.hero-bottom a span{margin-left:16px}.photo-tag{position:absolute;bottom:95px;right:6%;font-size:9px;letter-spacing:1.7px;border-left:1px solid #ddd8;padding-left:16px}.photo-tag span{display:block;font-size:8px;color:#ddd;margin-top:5px}.assurance{display:flex;padding:27px 6%;justify-content:space-between;border-bottom:1px solid var(--line);font-size:11px}.assurance b{font-size:19px;margin-right:14px;font-weight:400;color:var(--red)}.section{padding:105px 6%;max-width:1800px;margin:auto}.section-top{display:grid;grid-template-columns:1fr 2.1fr}.section-top>div{display:flex;align-items:flex-end;gap:50px}.section-top h2{flex:1}.section-top>div>p{width:285px;color:var(--muted);font-size:13px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:63px;border:1px solid var(--line)}.service{position:relative;padding:30px 26px 24px;transition:background .3s}.service+.service{border-left:1px solid var(--line)}.service:hover{background:#eeeee7}.service-no{position:absolute;right:25px;top:24px;font-size:10px;color:#8b9087}.roof-icon{font:42px Georgia;color:#797f72;height:71px}.service h3{font-size:18px;margin:16px 0 12px}.service p{font-size:12px;color:var(--muted);min-height:82px;line-height:1.9}.service-bottom{font-size:10px;font-weight:550;display:flex;justify-content:space-between;margin-top:25px}.service-bottom b{font-size:20px;font-weight:400}.work{background:#eaece5;max-width:none}.work-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:43px}.work-heading>p{font-size:13px;color:var(--muted);padding-bottom:6px}.project-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:28px}.project{padding:0;border:0;background:none;text-align:left}.project-image{height:430px;position:relative;overflow:hidden}.project img{height:100%;transition:transform .8s}.project:hover img{transform:scale(1.035)}.view-project{position:absolute;right:18px;bottom:18px;background:var(--paper);padding:12px 17px;font-size:10px}.project-caption{display:flex;justify-content:space-between;align-items:center;margin-top:19px}.project-caption h3{font-size:18px}.project-caption>span{font-size:8px;letter-spacing:1.3px}.before-after{display:grid;grid-template-columns:1.35fr 1fr;gap:80px;align-items:center;margin-top:100px}.compare{height:410px;position:relative;overflow:hidden}.compare img{position:absolute;inset:0;height:100%;object-fit:cover}.before-clip{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--split)) 0 0)}.compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:4;margin:0}.compare:focus-within{outline:3px solid var(--red);outline-offset:4px}.compare-line{position:absolute;top:0;bottom:0;left:var(--split);width:2px;background:white;pointer-events:none}.compare-line span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;background:white;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 15px #0002}.compare-label{position:absolute;bottom:20px;padding:5px 12px;background:#242b29ba;color:#fff;font-size:9px;letter-spacing:1px}.before-label{left:20px}.after-label{right:20px}.compare-copy h2{font-size:43px}.compare-copy>p:not(.eyebrow){color:var(--muted);font-size:13px;margin-top:24px;max-width:360px}.compare-copy .drag-hint{font-size:9px!important;letter-spacing:1.2px;margin:20px 0}.approach{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.approach-photo{height:720px;position:relative}.approach-photo>img{height:100%}.photo-note{position:absolute;left:-22px;bottom:35px;background:var(--ink);color:#f1f0e8;padding:30px 38px;width:235px}.photo-note span{font-size:8px;letter-spacing:2px}.photo-note strong{display:block;font:400 32px/1.2 'Manrope';margin-top:15px;letter-spacing:-1px}.approach-copy>p:not(.eyebrow){color:var(--muted);margin:25px 0 20px;font-size:14px;max-width:420px}.value{display:flex;gap:23px;padding:22px 0;border-bottom:1px solid var(--line)}.value>span{font-size:10px;color:var(--red);padding-top:4px}.value h3{font-size:16px}.value p{font-size:12px;color:var(--muted);margin-top:6px;max-width:350px}.approach-copy .button{margin-top:30px}.film{background:var(--ink);color:#fff;max-width:none;display:grid;grid-template-columns:1fr 1.65fr;column-gap:65px}.film-intro h2{font-size:48px}.film-intro>p:last-child{font-size:12px;color:#b9c2b9;margin-top:25px}.film-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center}.film-card{border:0;background:none;color:white;text-align:left;padding:0}.film-image{position:relative;height:225px;overflow:hidden}.film-image img{height:100%;filter:brightness(.75);transition:transform .5s}.film-card:hover img{transform:scale(1.04)}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:51px;height:51px;border:1px solid #ffffffa0;border-radius:50%;display:grid;place-items:center;font-size:14px;padding-left:3px;background:#2223}.film-card h3{font-size:14px;margin-top:13px}.film-card small{font-size:10px;color:#aeb9b1}.film-disclaimer{grid-column:2;font-size:9px;color:#929d95;margin-top:23px}.process-heading{display:flex;justify-content:space-between;align-items:end}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:55px;margin-top:60px}.steps>div{border-top:1px solid var(--line);padding-top:22px}.steps span{font-size:12px;color:var(--red)}.steps h3{font-size:21px;margin:22px 0 13px}.steps p{font-size:13px;color:var(--muted);max-width:310px}.areas{background:#eaece5;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:80px}.areas h2{font-size:46px}.areas-copy>p:not(.eyebrow){color:var(--muted);font-size:13px;max-width:430px;margin:25px 0}.towns{display:grid;grid-template-columns:1fr 1fr;max-width:400px;gap:9px;margin:30px 0;font-size:13px}.towns span:before{content:'↗';color:#939c8c;margin-right:12px}.area-graphic{position:relative;min-height:450px;overflow:hidden;background:#e2e6dc;border:1px solid #d9ded3}.map-grid{position:absolute;inset:0;background-image:linear-gradient(#bbc5b230 1px,transparent 1px),linear-gradient(90deg,#bbc5b230 1px,transparent 1px);background-size:36px 36px;transform:rotate(-20deg) scale(1.6)}.map-ring{border:1px solid #8c9c7b40;position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);border-radius:50%;aspect-ratio:1}.r1{width:170px}.r2{width:310px}.r3{width:460px}.map-pin{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;white-space:nowrap}.map-pin>span{display:grid;place-items:center;background:var(--red);color:white;border-radius:50%;width:48px;height:48px;font-size:25px;box-shadow:0 0 0 9px #a6322710}.map-pin strong{font-size:10px;letter-spacing:1px;margin-top:18px}.map-pin small{font-size:10px;color:#69755f}.map-town{position:absolute;font-size:11px;color:#69765d}.map-town:before{content:'•';margin-right:6px}.t1{top:22%;left:15%}.t2{top:18%;right:12%}.t3{bottom:24%;left:11%}.t4{bottom:20%;right:14%}.map-title{position:absolute;bottom:50px;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:5px;color:#78876d}.map-caption{position:absolute;bottom:15px;left:20px;font-size:8px;letter-spacing:1.5px;color:#919a87}.faq{display:grid;grid-template-columns:1fr 1.25fr;gap:95px}.faq>div>p:not(.eyebrow){margin-top:25px;color:var(--muted);font-size:13px}.faq a{color:var(--ink);display:inline-block;margin-top:9px}.faq details{border-bottom:1px solid var(--line);padding:23px 0}.faq details:first-child{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-size:14px;font-weight:550;display:flex;align-items:center;justify-content:space-between;gap:25px}summary::-webkit-details-marker{display:none}summary span{font-size:20px;font-weight:400;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}details p{font-size:13px;color:var(--muted);padding-top:17px;max-width:510px}.quote{background:#252e2b;color:#fff;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}.quote h2{font-size:66px;letter-spacing:-3px}.quote h2 em{letter-spacing:-3px}.quote-copy>p:not(.eyebrow){color:#bdc6bf;font-size:14px;margin-top:25px}.quote-phone{display:flex;justify-content:space-between;max-width:380px;font:400 30px 'Manrope';margin-top:45px;border-bottom:1px solid #ffffff30;padding-bottom:16px;letter-spacing:-1px}.quote-phone span{font-size:25px}.quote-email{display:block;font-size:13px;margin-top:17px;color:#bcc6be}.quote-points{display:flex;gap:21px;margin-top:45px;color:#c7cec4;font-size:10px}.quote-form{background:#f7f6f2;color:var(--ink);padding:38px}.quote-form .eyebrow{font-size:8px;margin-bottom:11px}.quote-form h3{font-size:25px;margin-bottom:27px}.quote-form label{display:block;font-size:10px;font-weight:600;margin-top:17px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-row label{margin-top:0}input,select,textarea{width:100%;border:0;border-bottom:1px solid #ccd0c7;border-radius:0;background:transparent;padding:10px 0;color:var(--ink);font-size:12px;outline-offset:4px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#989c93}.quote-form .button{width:100%;margin-top:24px}.email-draft{border:0;background:none;font-size:10px;width:100%;padding:13px 0 0;text-decoration:underline;text-underline-offset:3px}.form-note{font-size:9px;color:#898f83;line-height:1.7;margin-top:16px}.form-status{font-size:11px;color:var(--red);margin-top:10px}footer{background:#1d2522;color:#b4bdb6;padding:55px 6% 25px}.footer-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:36px;border-bottom:1px solid #ffffff19}.footer-brand{color:#e9eae3}.footer-top p{font-family:Georgia;font-style:italic;font-size:21px}.footer-top>a:last-child{font-size:9px;letter-spacing:1px}.footer-bottom{display:flex;justify-content:space-between;font-size:9px;margin-top:22px}.footer-bottom button{font-size:9px;border:0;background:none;color:inherit;padding:0}.rating-note{font-size:8px;color:#748279;margin-top:18px}.mobile-contact{display:none}.skip{position:fixed;left:10px;top:-100px;background:white;z-index:99;padding:12px}.skip:focus{top:10px}dialog{border:0;padding:30px;background:var(--paper);color:var(--ink);max-width:min(1000px,92vw);max-height:92vh}dialog::backdrop{background:#112019e8;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:10px;top:8px;width:32px;height:32px;border:0;border-radius:50%;background:var(--paper);font-size:24px;z-index:2}#image-dialog img{max-height:76vh;width:auto;max-width:100%;object-fit:contain}dialog>p{font-size:12px;margin-top:16px}#video-dialog{width:1000px}#video-container{aspect-ratio:16/9;width:100%}#video-container iframe{width:100%;height:100%;border:0}#privacy-dialog{max-width:620px;padding:45px}#privacy-dialog h2{font-size:30px;letter-spacing:-1px}#privacy-dialog a{text-decoration:underline}.reveal{opacity:1;transform:none}.js-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.js-ready .reveal.visible{opacity:1;transform:none}@keyframes heroScale{from{transform:scale(1.05)}to{transform:scale(1)}}@media(min-width:1700px){.hero-content{padding-left:0}.hero{height:850px}.hero-content{padding-top:75px}.hero-bottom{left:6%}}@media(max-width:1150px){nav{gap:18px}.phone{display:none}.section{padding:80px 5%}.section-top{grid-template-columns:1fr 3fr}.section-top>div{display:block}.section-top>div>p{width:auto;max-width:500px;margin-top:25px}.approach{gap:55px}.film{gap:35px}.quote{gap:55px}.service{padding:25px 18px}.service h3{font-size:16px}.project-caption{display:block}.project-caption>span{display:block;margin-top:7px}.before-after{gap:45px}.compare-copy h2{font-size:36px}.film-intro h2{font-size:40px}}@media(max-width:800px){header{height:80px;padding:0 5%}.brand>span{font-size:18px}.brand svg{width:34px}.header-actions{gap:12px}.header-actions .button{font-size:10px;padding:12px;gap:15px}.menu-toggle{display:block}nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--paper);padding:24px 5%;box-shadow:0 12px 15px #0001;flex-direction:column;gap:20px}nav.open{display:flex}.topbar{justify-content:center;font-size:8px;padding:8px}.topbar>span:first-child{display:none}.hero{height:740px;min-height:0}.hero-content{padding:65px 6% 0}.hero-image{object-position:65% center}.hero-shade{background:linear-gradient(90deg,#14241ddd,#14241d45),linear-gradient(0deg,#13271b99,transparent)}h1{font-size:74px;letter-spacing:-4px}.hero-copy{font-size:14px}.photo-tag{display:none}.hero-bottom{font-size:7px}.hero-bottom>a{display:none}.assurance{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:24px 5%;font-size:10px}.assurance b{margin-right:8px}.section{padding:65px 6%}h2{font-size:39px;letter-spacing:-1.8px}.section-top{display:block}.section-top>div>p{font-size:13px;max-width:450px}.service-grid{grid-template-columns:1fr 1fr;margin-top:35px}.service{padding:23px}.service:nth-child(3){border-left:0;border-top:1px solid var(--line)}.service:nth-child(4){border-top:1px solid var(--line)}.service p{min-height:85px}.work-heading{display:block}.work-heading>p{margin-top:20px}.project-grid{gap:20px;grid-template-columns:1fr 1fr}.project-image{height:310px}.project-caption h3{font-size:15px}.before-after{grid-template-columns:1fr;gap:35px;margin-top:65px}.compare{height:420px}.compare-copy h2{font-size:39px}.approach{grid-template-columns:1fr;gap:45px}.approach-photo{height:500px}.photo-note{left:-12px}.approach-copy>p:not(.eyebrow){max-width:none}.value p{max-width:none}.film{display:block}.film-grid{margin-top:35px}.film-image{height:220px}.film-disclaimer{margin-top:25px}.process-heading{display:block}.process-heading>a{margin-top:20px}.steps{gap:25px;margin-top:40px}.steps h3{font-size:18px}.steps p{font-size:12px}.areas{grid-template-columns:1fr;gap:35px}.areas h2{font-size:39px}.area-graphic{min-height:400px}.faq{grid-template-columns:1fr;gap:35px}.quote{grid-template-columns:1fr;gap:40px}.quote h2{font-size:55px}.quote-phone{margin-top:30px}.quote-points{margin-top:25px}.quote-form{padding:30px}.footer-top{flex-wrap:wrap;gap:25px}.footer-top p{font-size:18px}.footer-top>a:last-child{width:100%}.footer-bottom{flex-direction:column;gap:15px}.footer-bottom button{text-align:left}.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:19;height:54px;box-shadow:0 -2px 20px #0002}.mobile-contact a{width:50%;display:grid;place-items:center;background:var(--paper);font-size:12px;font-weight:600}.mobile-contact a:last-child{background:var(--red);color:white}footer{padding-bottom:80px}}@media(max-width:480px){h1{font-size:67px}.hero{height:705px}.hero-content{padding-top:50px}.hero-buttons{gap:22px}.hero-buttons .button{padding:16px 20px;gap:20px}.hero-buttons .text-link{font-size:10px;gap:14px}.hero-trust{margin-top:30px}.service{padding:20px 16px}.service h3{font-size:16px}.service p{font-size:11px;min-height:100px}.service-bottom{font-size:9px;gap:10px}.project-grid{grid-template-columns:1fr}.project-image{height:350px}.project-caption{display:flex}.project-caption>span{font-size:7px}.compare{height:320px}.approach-photo{height:440px}.film-grid{grid-template-columns:1fr}.film-image{height:240px}.steps{grid-template-columns:1fr;gap:25px}.steps h3{margin-top:10px}.steps p{max-width:none}.quote-form{padding:25px}.quote h2{font-size:49px}.quote-points{gap:16px}.footer-top p{width:100%}.form-row{gap:15px}.topbar{letter-spacing:.6px}#privacy-dialog{padding:35px 25px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-ready .reveal{opacity:1;transform:none}}

#video-container video{width:100%;height:100%;object-fit:contain;background:#000}

.brand .brand-logo{width:235px;height:auto;object-fit:contain;mix-blend-mode:multiply}.footer-brand{background:#fff;padding:8px 12px}.footer-brand .brand-logo{width:235px;mix-blend-mode:normal}@media(max-width:1150px){.brand .brand-logo{width:205px}nav{gap:18px}}@media(max-width:800px){.brand .brand-logo{width:185px}.footer-brand .brand-logo{width:235px}}@media(max-width:480px){header{padding:0 4%}.brand .brand-logo{width:165px}.header-actions{gap:8px}.header-actions .button{padding:11px 10px;gap:10px}.footer-brand .brand-logo{width:235px}}@media(max-width:360px){.brand .brand-logo{width:140px}.header-actions .button{font-size:9px}}

/* Refined controls: warm surfaces, soft edges and tactile interaction. */
:root{--control-radius:12px;--control-ease:cubic-bezier(.22,.61,.36,1)}
.button{border-radius:var(--control-radius);border:1px solid #ffffff18;background:linear-gradient(145deg,#ae4134 0%,#983025 100%);box-shadow:inset 0 1px 0 #ffffff24,0 3px 7px #46201712,0 10px 20px #46201716;transition:transform .28s var(--control-ease),box-shadow .28s var(--control-ease),filter .28s var(--control-ease);min-height:48px}
.button.small{border-radius:10px;min-height:44px}
.button span{transition:transform .28s var(--control-ease);opacity:.92}
.button:hover{background:linear-gradient(145deg,#b44a3c 0%,#9c3227 100%);transform:translateY(-2px);box-shadow:inset 0 1px 0 #ffffff30,0 5px 10px #46201716,0 14px 25px #46201724}
.button:hover span{transform:translate(2px,-2px)}
.button:active{transform:translateY(0) scale(.985);box-shadow:inset 0 2px 4px #491e2325,0 2px 5px #46201712}
.text-link{border:1px solid #ffffff45;border-radius:var(--control-radius);padding:13px 18px;background:#ffffff08;box-shadow:inset 0 1px 0 #ffffff10;transition:background .25s,box-shadow .25s,transform .25s;min-height:46px}
.text-link:hover{background:#ffffff15;box-shadow:0 5px 15px #0000000d;transform:translateY(-1px)}
.text-link.dark{border-color:#c5cbbf;background:#ffffff36;box-shadow:inset 0 1px 0 #ffffffa0,0 2px 5px #26332406}
.text-link.dark:hover{background:#ffffffa8;border-color:#aeb8a6;box-shadow:0 6px 15px #2633240a}
.text-link span{transition:transform .25s}.text-link:hover span{transform:translate(2px,-1px)}
.text-link:active{transform:translateY(0)}
.view-project{border-radius:10px;border:1px solid #ffffffb0;background:#faf9f1ed;backdrop-filter:blur(10px);box-shadow:inset 0 1px 0 #fff,0 4px 15px #17231b25;transition:transform .3s,box-shadow .3s}
.project-image,.film-image{border-radius:14px}.project,.film-card{border-radius:14px;transition:transform .3s}
.project:hover .view-project{transform:translateY(-2px);box-shadow:0 7px 20px #17231b30}
.play{width:57px;height:57px;background:#f9f8f01c;backdrop-filter:blur(8px);border-color:#ffffffa8;box-shadow:inset 0 1px 0 #ffffff35,0 5px 20px #0003;transition:background .3s,box-shadow .3s,scale .3s}
.film-card:hover .play{background:#a63227df;box-shadow:0 7px 24px #0004;scale:1.06}
.project:active,.film-card:active{transform:scale(.994)}
.service-grid{border-radius:16px;overflow:hidden}.service{transition:background .3s,box-shadow .3s}.service:hover{box-shadow:inset 0 -3px 0 #a6322760}.service-bottom b{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:1px solid #c7cec1;transition:background .3s,color .3s,border-color .3s}.service-bottom{align-items:center}.service:hover .service-bottom b{background:var(--red);color:#fff;border-color:var(--red)}
.menu-toggle{border:1px solid #d2d6cc;border-radius:10px;min-width:38px;min-height:40px;line-height:1;background:linear-gradient(#ffffffb0,#eeeee680);box-shadow:inset 0 1px 0 #fff,0 2px 5px #24332808;transition:background .2s,transform .2s}.menu-toggle:hover{background:#e7e9df}.menu-toggle:active{transform:scale(.96)}
.dialog-close{right:9px;top:9px;width:36px;height:36px;border:1px solid #d8ddd2;background:#fafaf6;box-shadow:0 3px 12px #18291e20;transition:background .2s,transform .2s}.dialog-close:hover{background:#e6eadd;transform:rotate(90deg)}
.email-draft{border-radius:9px;padding:11px 12px;margin-top:9px;border:1px solid #d9ddd2;text-decoration:none;background:#ffffff65;transition:background .25s,box-shadow .25s}.email-draft:hover{background:#fff;box-shadow:0 3px 9px #2533240a}
.faq summary{border-radius:8px;transition:color .2s}.faq summary>span{display:grid;place-items:center;min-width:30px;height:30px;border:1px solid #d3d9cd;border-radius:50%;background:#ffffff60;box-shadow:inset 0 1px 0 #fff}.faq summary:hover{color:var(--red)}
.footer-bottom button{border:1px solid #ffffff25;border-radius:8px;padding:7px 11px;transition:background .25s}.footer-bottom button:hover{background:#ffffff0c}.footer-bottom{align-items:center}
:is(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #b95e40;outline-offset:4px}
@media(max-width:800px){.mobile-contact{left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));height:58px;padding:5px;gap:5px;background:#f7f6f2ed;backdrop-filter:blur(14px);border:1px solid #ffffffb3;border-radius:16px;box-shadow:0 5px 25px #10241e2b}.mobile-contact a{border-radius:11px;transition:transform .2s,box-shadow .2s}.mobile-contact a:first-child{background:#ffffff94;border:1px solid #dbe0d5}.mobile-contact a:last-child{background:linear-gradient(145deg,#ae4134,#983025);box-shadow:inset 0 1px 0 #ffffff25,0 2px 7px #46201725}.mobile-contact a:active{transform:scale(.97)}.footer-bottom{align-items:flex-start}}
@media(max-width:480px){.hero-buttons{gap:12px}.hero-buttons .text-link{padding:12px 13px;gap:10px}.hero-buttons .button{padding:16px 17px;gap:16px}.button.small{border-radius:9px}.menu-toggle{min-width:34px}.header-actions{gap:7px}}
@media(prefers-reduced-motion:reduce){.button:hover,.button:active,.button:hover span,.text-link:hover,.text-link:hover span,.project:active,.film-card:active,.project:hover .view-project,.dialog-close:hover,.menu-toggle:active,.mobile-contact a:active{transform:none}.film-card:hover .play{scale:1}}

/* Full, uncropped project photos with the original light card finish. */
.service-grid{border:0;gap:18px;overflow:visible;border-radius:0}
.service{overflow:hidden;border:1px solid var(--line)!important;border-radius:14px;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;padding:0;box-shadow:0 4px 16px #1b30240a;min-height:0}
.service .service-photo{position:relative;display:block;width:100%;height:230px;object-fit:contain;object-position:center;background:#e6e8e1;border-radius:0;transform:none;flex-shrink:0}
.service:before{display:none}.service .roof-icon{display:none}.service .service-no{position:static;display:block;color:var(--red);font-size:10px;letter-spacing:1px;margin:22px 24px 0}
.service h3{color:var(--ink);font-size:18px;line-height:1.4;margin:10px 24px 12px}.service p{color:var(--muted);min-height:0;margin:0 24px;font-size:12px;line-height:1.8}.service-bottom{margin: auto 24px 24px;padding-top:26px;color:var(--ink);gap:10px}.service-bottom b{flex-shrink:0}
.service:hover{background:#f0f1ea;box-shadow:0 8px 23px #1b302414}.service:hover .service-photo{transform:none}
@media(max-width:1150px){.service-grid{grid-template-columns:repeat(2,1fr)}.service .service-photo{height:270px}.service h3{font-size:20px}.service p{font-size:13px}}
@media(max-width:600px){.service-grid{grid-template-columns:1fr;gap:24px}.service .service-photo{height:auto;max-height:none;object-fit:contain}.service h3{font-size:22px}.service p{font-size:14px}.service-bottom{font-size:12px}.service .service-no{margin-top:24px}}
