/* Responsive layout safeguards shared by every public page. */
.site-header>*{min-width:0}.site-header .logo-link,.site-header .header-call,.site-header .header-social,.site-header .header-search-toggle,.site-header .menu-toggle{flex-shrink:0}
main,section,.intro-section>*,.services-section>*,.about-story>*,.contact-layout>*,.project-cta>*,.form-grid>*,.reviews-grid>*{min-width:0}
.contact-email,.footer-social,.review-card,.home-review,.page-lead{overflow-wrap:anywhere}
.button{max-width:100%;white-space:normal}.service-strip,.gallery-filters,.gallery-toolbar{flex-wrap:wrap}
.slide-dots{min-width:0;flex:1;display:flex}.slide-dot{flex:1 1 18px;min-width:8px;max-width:24px}.slide-pause,.slide-number{flex-shrink:0}
.mobile-menu{max-height:calc(100svh - 115px);overflow-y:auto;overscroll-behavior:contain}
.site-search{max-height:calc(100svh - 115px);overflow-y:auto;overscroll-behavior:contain}
.site-search-field{min-width:0}.site-search-field input{min-width:0}
#analytics-choice{max-height:calc(100svh - 36px);overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(20px,env(safe-area-inset-bottom))}
#analytics-choice button{margin-top:4px}
#planner{max-width:100%}
dialog figure{min-width:0}dialog video{max-width:100%;max-height:calc(100dvh - 165px)}
@media(max-width:1100px){.site-header .desktop-nav{display:none}.site-header .header-call{margin-left:auto}.site-header{gap:16px}.mobile-menu{top:calc(100% - 8px)}}
@media(min-width:541px) and (max-width:850px){.hero-copy h1{font-size:clamp(25px,4vw,34px)}.hero-copy{padding-inline:5vw}.home-hero{height:auto;max-height:none}.intro-section,.about-story,.contact-layout{gap:32px}.services-section{gap:32px}.contact-phone{font-size:clamp(23px,3.8vw,32px)}}
@media(max-width:700px){.contact-layout,.about-story{grid-template-columns:minmax(0,1fr)}.contact-form input,.contact-form select,.contact-form textarea{font-size:16px}.contact-email{font-size:14px}.contact-phone{font-size:32px}.about-photo img{height:auto}.site-search-form{display:block}}
@media(max-width:540px){.slide-controls{gap:10px;left:20px;right:20px}.slide-dots{gap:4px}.slide-number{font-size:9px;letter-spacing:0}.slide-pause{width:30px;height:30px}.gallery-filters{gap:8px 18px;justify-content:flex-start}.gallery-filters button{min-height:44px}.heading-line{white-space:normal}.page-intro h1{font-size:clamp(34px,11vw,49px)}.story-copy h2,.services-section h2,.project-cta h2{font-size:clamp(32px,10vw,45px)}.planner-heading>span{font-size:clamp(12px,3.6vw,16px);overflow-wrap:anywhere}.home-review{min-height:0}.site-header{gap:3px}.site-header .logo-link{margin-right:auto}.site-header .header-call{margin-left:0}.mobile-menu{max-height:calc(100svh - 95px);padding:18px 24px}.site-search{max-height:calc(100svh - 95px)}.footer-logo img{max-width:100%}}
@media(max-width:360px){.site-header .logo-link img{width:90px}.site-header .header-social a{width:24px}.site-header .header-call{min-width:28px}.site-header .header-search-toggle{width:28px;flex-basis:28px}.site-header .menu-toggle{width:34px;height:38px}.hero-actions{gap:16px}.gallery-grid{grid-template-columns:minmax(0,1fr)}.gallery-grid .project-card:nth-child(n){transform:none}.gallery-grid .project-caption h3{font-size:17px}.service-strip{gap:10px 18px}}
@media(max-height:500px) and (orientation:landscape){.mobile-menu{max-height:calc(100svh - 105px)}.mobile-menu>a{padding-block:10px;font-size:19px}.site-search{max-height:calc(100svh - 105px)}dialog[open]{padding-top:48px;padding-bottom:14px}dialog figure img,dialog figure video{max-height:calc(100dvh - 115px)}.lightbox-close{top:10px}.home-hero{height:auto;max-height:none}}
@media(min-width:2000px){.section-pad,.site-footer{padding-inline:max(7vw,calc((100vw - 1720px)/2))}.hero-copy{padding-left:max(7vw,calc((100vw - 1720px)/2))}.site-header{padding-inline:max(4.8vw,calc((100vw - 1840px)/2))}}


.planner-section,#planner{overflow-anchor:none}
