/* Device resilience: natural document flow on compact and short screens. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}img{max-width:100%}main,section,form,.hero-copy,.section-top>*{min-width:0}button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:#efb13e33}button{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b58220;outline-offset:4px}.button{white-space:normal;text-align:left;line-height:1.45}.email,.no-script{overflow-wrap:anywhere}.no-script{padding:20px}.showcase-steps button{min-height:44px}.window-toggle,.skip-entry{min-height:44px}.contact input,.contact select,.contact textarea{font-size:16px}.contact .form-row>div{min-width:0}.service-list summary h3{min-width:0;overflow-wrap:anywhere}.service-list summary .plus{flex-shrink:0}.hero h1{overflow-wrap:normal}.entry-window{padding:15px}.intro-playing{overscroll-behavior:none}
@media(max-width:1100px) and (min-width:701px){.hero{grid-template-columns:1fr}.hero-copy{padding:50px 7% 30px}.hero h1{font-size:clamp(66px,9vw,98px)}.interactive-window{min-height:560px}.window-stage{max-width:290px}.hero .intro{max-width:600px}.contact{gap:30px}.contact form{padding:24px}.contact .phone{font-size:25px}.contact h2{font-size:45px}.section-top{display:block}.section-top>p:last-child{max-width:650px}.history{gap:30px}}
@media(max-width:850px){.scroll-showcase{height:auto;margin:24px 4%}.showcase-sticky{position:relative;top:0;height:auto;min-height:0;padding:30px 7%;display:flex;flex-direction:column;align-items:stretch;gap:20px;overflow:hidden}.showcase-kicker{position:relative;top:auto;left:auto;margin:0;font-size:9px;line-height:1.6}.showcase-word{top:90px;font-size:clamp(50px,12vw,120px);left:5%;max-width:100%;pointer-events:none}.showcase-object{position:relative;left:auto;top:auto;width:100%;height:260px;order:1;transform:none!important}.showcase-object .joinery-motion{width:150px;height:195px}.showcase-object .door-motion{width:115px;height:215px}.showcase-object .garage-motion{width:210px;height:155px}.showcase-object .gate-motion{width:215px;height:145px}.showcase-copy{position:relative;left:auto;top:auto;bottom:auto;width:100%;order:2}.showcase-copy h2{font-size:clamp(28px,5vw,42px);line-height:1.15;margin:10px 0}.showcase-copy p{max-width:none}.showcase-steps{position:relative;left:auto;right:auto;bottom:auto;order:3;flex-wrap:wrap;justify-content:flex-start}.showcase-steps button{font-size:12px;padding:10px 16px}.showcase-sticky:after{display:none}.history-intro{position:static}.showcase-copy .button{margin-top:8px}.photo-grid img{height:auto;aspect-ratio:4/5;object-fit:cover}}
@media(max-width:700px){.contact,.history,.about{grid-template-columns:minmax(0,1fr)}h2{overflow-wrap:anywhere}.hero-copy{padding-left:6%;padding-right:6%}.hero h1{font-size:clamp(42px,13vw,85px);letter-spacing:-2px}.hero h1 em{white-space:normal}.hero .eyebrow{letter-spacing:1px}.hero .button{max-width:100%;font-size:12px;padding:16px 20px}.interactive-window{min-height:450px}.window-stage{width:55%;max-width:240px}.visual-caption{gap:12px;line-height:1.5}.contact form{padding:20px}.contact .phone{font-size:clamp(21px,6.6vw,29px)}.service-list summary{gap:9px}.service-list summary h3{font-size:clamp(22px,6vw,28px);letter-spacing:-.7px}.service-list details{padding:0 16px}.joinery-motion.gate-motion,.joinery-motion.garage-motion{max-width:95%}.timeline h3{font-size:24px}.timeline article{padding:20px}.contact .email{display:inline-block;max-width:100%}.territory{min-width:0}.showcase-object{height:230px}.photo-grid figure:first-child img{aspect-ratio:auto}.showcase-kicker{letter-spacing:1px}}
@media(max-height:600px){.entry-brand{font-size:15px}.entry-window{gap:12px;padding-bottom:70px}.entry-frame{height:42vh;width:32vh;min-height:90px}.entry-window>p{font-size:11px}.skip-entry{bottom:12px}.history-intro{position:static}header{position:relative;top:0}html{scroll-padding-top:16px}section[id]{scroll-margin-top:16px}}
@media(prefers-reduced-motion:reduce){.scroll-showcase{height:auto}.showcase-sticky{position:relative;top:0}.reveal.pending{opacity:1;transform:none}.showcase-object{transform:none!important}.showcase-object .joinery-motion{transform:none!important}}

/* Keep scroll animation on laptops, including shorter browser windows. */
@media(min-width:851px) and (max-height:700px){
.scroll-showcase{height:420svh}
.showcase-sticky{position:sticky;top:12px;height:calc(100svh - 24px);min-height:0}
.showcase-kicker{top:18px;font-size:9px}
.showcase-copy{top:25%;width:41%}
.showcase-copy h2{font-size:clamp(25px,3.2vw,40px);margin:12px 0}
.showcase-copy p{font-size:12px;margin:10px 0}
.showcase-copy .button{padding:12px 20px;margin-top:5px}
.showcase-object{top:12%;height:65%}
.showcase-object .joinery-motion{width:170px;height:220px}
.showcase-object .door-motion{width:135px;height:245px}
.showcase-object .garage-motion{width:245px;height:175px}
.showcase-object .gate-motion{width:245px;height:165px}
.showcase-steps{bottom:16px}
.showcase-steps button{padding:10px 16px}
}
@media(min-width:851px) and (max-height:450px){
.showcase-object .joinery-motion{width:110px;height:150px}
.showcase-object .door-motion{width:95px;height:165px}
.showcase-object .garage-motion,.showcase-object .gate-motion{width:170px;height:115px}
.showcase-copy{top:18%}.showcase-copy h2{font-size:23px}.showcase-copy p{margin:6px 0}
.showcase-kicker{top:10px;font-size:8px}.showcase-number{font-size:9px}
}
@media(prefers-reduced-motion:reduce){.scroll-showcase{height:auto}.showcase-sticky{position:relative;top:0;min-height:530px}}
