/* Shared mobile safeguards; loaded after page-specific design rules. */
img,svg,video{max-width:100%}
header,header .wrap,nav,.grid,.intro,.split,.service-grid,.services,.contact,.hero,.enquiry-layout,.form-grid{min-width:0}
.grid>*,.intro>*,.split>*,.service-grid>*,.contact>*,.hero>*,.enquiry-layout>*{min-width:0}
p,h1,h2,h3,label,a{overflow-wrap:break-word}
input,select,textarea{max-width:100%;box-sizing:border-box}
:focus-visible{outline:2px solid #dfbd75;outline-offset:4px}
@media(max-width:800px){
 header,header .wrap{flex-wrap:wrap;gap:18px}
 header nav{flex-wrap:wrap;max-width:100%;gap:8px 16px}
 header nav a{display:inline-flex;align-items:center;min-height:44px}
 input,select,textarea{font-size:16px!important}
 button,.button,.send-preview,.filters button{min-height:44px}
 .closing{flex-wrap:wrap}
 .closing a{white-space:normal}
}
@media(max-width:420px){
 .wrap{padding-left:20px;padding-right:20px}
 header nav{font-size:12px}
 .actions{gap:12px;flex-wrap:wrap}
 .form-grid,.form-bottom{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}}
