/* Responsive-only corrections. Preserve all desktop designs and transitions. */
:root{--site-header-height:190px}
.site-header{max-width:100%;}
.site-header .container,.page-banner .container,.hero .container{min-width:0}
.topbar,.topbar-right,.navbar{min-width:0}
.topbar-right{justify-content:flex-end;row-gap:5px}
.navbar>.logo{min-width:0}
.hero{padding-top:max(235px,calc(var(--site-header-height) + 42px));min-height:max(680px, min(800px, 95svh))}
.page-banner{padding-top:max(245px,calc(var(--site-header-height) + 40px));min-height:0}
.hero-content,.page-banner h1,.page-banner p{min-width:0;max-width:100%}
.page-banner h1,.hero h1{overflow-wrap:normal;word-break:normal}
.hero-actions,.cta-band .container{min-width:0}
.btn{max-width:100%;white-space:normal;text-align:center}
img,video,iframe{max-width:100%}
.contact-grid>*,.intro>*,.service-feature>*,.area-grid>*,.faq-grid>*,.footer-grid>*{min-width:0}
.contact-detail a,.footer-detail span{overflow-wrap:anywhere}
.contact-form-frame,.review-widget,.map-frame,.home-area-map iframe{max-width:100%}
/* Narrower laptops switch to already-established hamburger before nav crowding. */
@media(max-width:1260px){.site-header .nav-links{display:none}.site-header .menu-toggle{display:block}.site-header .header-cta{display:none}}
@media(max-width:1050px){
 .hero{padding-top:max(230px,calc(var(--site-header-height) + 42px));min-height:0;padding-bottom:120px}
 .page-banner{padding-top:max(220px,calc(var(--site-header-height) + 42px))}
 .navbar{gap:clamp(10px,2vw,20px)}
 .topbar{flex-wrap:wrap;align-items:center}
 .topbar-right{flex-wrap:wrap}
 .service-details .service-feature>div:last-child{min-width:0}
}
@media(max-width:900px){
 .hero{padding-top:max(225px,calc(var(--site-header-height) + 48px));min-height:max(590px,84svh)}
 .page-banner{padding-top:max(215px,calc(var(--site-header-height) + 42px))}
 .topbar{font-size:10px;gap:6px 14px}
 .topbar-right{gap:5px 12px}
 .section-heading{flex-wrap:wrap}
 .contact-grid,.intro,.area-grid,.faq-grid{gap:clamp(26px,5vw,50px)}
 .service-scroll.is-scroll-ready{height:auto}
 .service-scroll.is-scroll-ready .service-stage{position:relative;height:auto}
}
@media(max-width:700px){
 .container{width:calc(100% - clamp(28px,7vw,40px))}
 .topbar{justify-content:center;text-align:center}
 .topbar>span{max-width:100%}
 .topbar-right{justify-content:center}
 .navbar{padding-top:clamp(10px,3vw,16px);min-height:0;gap:12px}
 .logo{width:clamp(138px,34vw,215px);flex-shrink:1}
 .menu-toggle{flex:none}
 .hero{padding-top:calc(var(--site-header-height) + clamp(38px,10vw,65px));padding-bottom:clamp(65px,12vw,120px);min-height:max(550px,76svh)}
 .page-banner{padding-top:calc(var(--site-header-height) + clamp(40px,9vw,62px));padding-bottom:clamp(50px,10vw,70px);min-height:0}
 .hero h1{font-size:clamp(34px,8.6vw,62px)}
 .page-banner h1{font-size:clamp(33px,9vw,60px)}
 .hero-actions{gap:10px}
 .hero-actions .btn{min-width:0}
 .section{padding-block:clamp(48px,10vw,85px)}
 .section-heading h2,.contact-grid h2{font-size:clamp(30px,8vw,46px)}
 .footer-bottom{flex-wrap:wrap}
 .mobile-nav{box-sizing:border-box;width:100%;max-width:100%;padding-inline:clamp(14px,5vw,28px)}
 .mobile-nav nav a{font-size:clamp(19px,5.5vw,30px);overflow-wrap:anywhere}
 .mobile-top img{max-width:min(65vw,230px)}
 .contact-details{gap:20px 12px}
 .contact-info-panel,.contact-panel.contact-form-panel{padding:clamp(18px,5vw,32px)}
 .contact-detail.highlight-number a[href^="tel:"]{font-size:clamp(24px,6vw,32px)}
 .coming-soon-card h2{font-size:clamp(36px,10vw,58px)}
 .process-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
 .topbar{padding-block:6px;font-size:9px}
 .topbar-right>a{line-height:1.4}
 .topbar-social{gap:8px}
 .navbar .logo{width:clamp(128px,41vw,190px)}
 .hero{padding-top:calc(var(--site-header-height) + 38px)}
 .page-banner{padding-top:calc(var(--site-header-height) + 36px)}
 .hero h1{font-size:clamp(30px,9vw,43px)}
 .hero-actions{flex-direction:column;align-items:flex-start}
 .hero-actions .btn{max-width:100%}
 .page-banner h1{font-size:clamp(29px,9.5vw,43px)}
 .contact-details{grid-template-columns:1fr 1fr}
 .contact-form-frame{width:100%;min-width:0}
 .section-heading{gap:16px}
 .footer-bottom{justify-content:center;text-align:center}
 .floating-actions{right:10px;bottom:12px}
 .floating-actions a,.back-top{width:42px;height:42px}
}
@media(max-width:350px){
 .topbar>span{display:none}
 .topbar-right{gap:5px 9px}
 .topbar-right a{font-size:9px}
 .topbar-social a{font-size:13px}
 .contact-details{grid-template-columns:1fr}
 .intro-list{grid-template-columns:1fr}
 .mobile-nav nav a{font-size:20px}
 .hero h1{font-size:clamp(28px,9vw,34px)}
 .page-banner h1{font-size:clamp(27px,9vw,34px)}
 .service-details .service-feature h2{font-size:clamp(29px,8vw,38px)}
 .gallery-item{min-width:0}
}
@media(max-height:600px) and (min-width:701px){
 .hero{min-height:0;padding-top:calc(var(--site-header-height) + 28px);padding-bottom:65px}
 .page-banner{min-height:0;padding-top:calc(var(--site-header-height) + 26px);padding-bottom:50px}
 .service-scroll.is-scroll-ready{height:auto}
 .service-scroll.is-scroll-ready .service-stage{position:relative;height:auto}
}
@media(min-width:1920px){.hero-content{max-width:760px}.hero h1{font-size:min(6vw,94px)}.page-banner h1{font-size:min(5vw,88px)}}

/* Review widget: allow its content to grow; contact cards: single column on narrow screens. */
.review-widget{display:block;width:100%;height:1500px;min-height:1500px;max-height:none;overflow:auto!important;border:0;transition:height .25s ease;}
@media(max-width:600px){.contact-details{display:grid!important;grid-template-columns:minmax(0,1fr)!important;}.contact-detail{min-width:0;}.contact-detail a{overflow-wrap:anywhere;word-break:normal;}.review-widget{height:1750px;min-height:1750px;}}
