/* Shared responsive fixes for all pages. Keep grid children shrinkable rather than hiding overflow. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:120px}
body{min-width:0}
img,svg{max-width:100%}
img{height:auto}
main,section,header,footer,nav,form,aside{min-width:0}
.hero,.about,.enquiry,.detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.hero>*,.about>*,.enquiry>*,.detail>*,.service-grid>*,.process>*,.contact-options>*,form>*,.location-grid>*{min-width:0}
.service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.process,.contact-options{grid-template-columns:repeat(3,minmax(0,1fr))}
form{grid-template-columns:repeat(2,minmax(0,1fr))}
h1,h2,h3,h4,p,a,label,summary{overflow-wrap:break-word;word-wrap:break-word}
h1,.page-intro h1{font-size:clamp(28px,4.3vw,60px)}
h2{font-size:clamp(28px,4.3vw,60px)}
.hero-copy{padding:clamp(45px,6vw,82px) 7% clamp(45px,6vw,75px) 12%}
.hero-actions{flex-wrap:wrap;gap:18px 24px}
.button{text-align:center;white-space:normal;max-width:100%;min-height:44px;line-height:1.5}
.art-label{max-width:calc(100% - 40px);right:20px;bottom:24px;overflow-wrap:break-word}
.about,.enquiry,.detail{gap:clamp(28px,4vw,70px)}
.section-head{align-items:flex-end}
.section-head>div{flex:1;min-width:0}
.section-head>p{flex:1;min-width:0}
.about-visual span{max-width:100%}
.contact-options h3{font-size:clamp(20px,2vw,26.4px)}
.contact-lines a,.contact-options a{overflow-wrap:anywhere}
input,select,textarea{min-width:0;max-width:100%;min-height:48px;font-size:16px;line-height:1.5}
textarea{resize:vertical;min-height:132px}
select{padding-right:28px}
.consent input{min-height:20px;height:20px;width:20px;margin:3px 0 0}
.consent span{min-width:0}
.trap{position:absolute;width:1px;height:1px;left:auto;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}
.footer-top{flex-wrap:wrap;gap:28px}
.footer-top>h2{flex:1;min-width:240px;font-size:clamp(28px,3vw,40px)}
.logo-box{flex-shrink:0;max-width:100%}
.logo-box img{max-width:100%;height:auto}
footer .contact-lines{gap:16px 25px}
.footer-links{gap:12px 26px}
.footer-links a{display:inline-flex;align-items:center;min-height:44px;max-width:100%}
.copyright{flex-wrap:wrap;gap:14px 24px;line-height:1.8}
.copyright>*{min-width:0;max-width:100%}
footer{padding-bottom:110px;padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
.whatsapp{max-width:calc(100% - 32px);right:16px;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));min-height:48px;line-height:1.5}
.location-grid a{min-width:0;align-items:center}
.ticks li::before{content:'\2713'}
@media(min-width:1051px){header{gap:24px}header>a{flex-shrink:0}nav{min-width:0;gap:clamp(12px,1.5vw,22px)}nav>a{white-space:nowrap}}
@media(max-width:1050px){
 html{scroll-padding-top:100px}
 header{height:85px;gap:16px}
 header>a{min-width:0;max-width:calc(100% - 60px)}
 header img{width:200px}
 .menu{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;background:none;border:0;font-size:27px;color:#202b61;cursor:pointer}
 nav{display:none;position:absolute;top:100%;left:0;right:0;background:white;padding:12px 6% 24px;flex-direction:column;align-items:stretch;gap:4px;font-size:16px;max-height:calc(100vh - 85px);max-height:calc(100dvh - 85px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 10px 20px #111a3d15}
 nav.open{display:flex}
 nav a{display:flex;align-items:center;min-height:44px;padding:10px 0}
 nav .button{padding:14px 18px;margin-top:8px}
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:960px){
 .hero,.about,.enquiry,.detail{grid-template-columns:minmax(0,1fr);gap:32px}
 .hero{gap:0;min-height:0}
 .hero-copy{padding:52px 6%}
 .hero-art{min-height:300px;min-height:clamp(240px,46vw,420px)}
 .hero-art::before{background:linear-gradient(180deg,#111c45,transparent 45%)}
 .section-head{display:block}
 .section-head p{margin-top:20px;max-width:650px}
 .contact-options{grid-template-columns:minmax(0,1fr);gap:28px}
 .contact-options h3{margin-top:0}
 .footer-top{flex-direction:column;align-items:flex-start}
 .footer-top>h2{flex:none;min-width:0}
 .process{gap:24px}
}
@media(max-width:650px){
 .top{flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:10px;line-height:1.6;letter-spacing:.5px}
 .top a{min-height:30px;display:inline-flex;align-items:center;font-size:12px}
 section{padding:48px 6%}
 .page-intro{padding:48px 6%}
 h1,.page-intro h1,h2{font-size:28px;line-height:1.35;letter-spacing:normal}
 .service-grid,.process,form{grid-template-columns:minmax(0,1fr)}
 .wide{grid-column:1/-1}
 .service{padding:24px;min-height:0}
 .service h3,.process h3{font-size:23px}
 .process{gap:28px}
 .strip{flex-direction:column;gap:18px}
 .hero-actions{align-items:flex-start;flex-direction:column}
 .hero-actions .button{width:100%}
 .hero-actions .text-link{align-self:flex-start}
 .hero-copy{padding:44px 6%}
 .art-label{font-size:12px;padding:16px 18px}
 .about-visual{min-height:280px}
 .about-visual span{font-size:20px;padding:18px 20px}
 .detail aside{padding:24px}
 .footer-links{flex-direction:column;gap:0}
 .copyright{flex-direction:column;gap:12px}
 .copyright>a{display:inline-block;padding:8px 0;min-height:44px}
 footer .contact-lines{flex-direction:column;gap:8px}
 .contact-lines a{display:block;min-height:44px;padding:8px 0;font-size:15px}
 .logo-box img{width:230px}
 .location-links h2{font-size:28px}
}
@media(max-width:360px){header img{width:180px}.logo-box{padding:12px}.logo-box img{width:210px}.top>span{font-size:9px}.service{padding:20px}.whatsapp{padding:12px 16px}}
@media(hover:none){.service:hover{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.service{transition:none}}
header{z-index:30}
