/* Responsive content and keyboard-accessible enquiry controls. */
img { max-width:100%; }
#contact { overflow-wrap:anywhere; }
#contact-form label { display:block; font-size:1rem; margin:0 0 .3rem; text-align:left; }
#contact-form input, #contact-form select, #contact-form textarea { min-width:0; font-size:1rem; }
#contact-form .w3-row-padding { margin-left:-8px !important; margin-right:-8px !important; }
#contact-form .w3-half { padding-bottom:12px; }
#captcha-status { clear:both; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid #155e91; outline-offset:3px; }
@media (max-width:1400px) {
 .w3-top .w3-bar > a.w3-hide-small { display:none !important; }
 .w3-top .nav-toggle { display:block !important; }
 #navDemo.w3-show { display:block !important; margin-top:74px !important; max-height:calc(100dvh - 74px); overflow-y:auto; }
}
@media (max-width:600px) {
 .font-extra-extra-large, .font-extra-extra-large-bold { font-size:clamp(2.5rem,11vw,4rem); line-height:1.15; overflow-wrap:break-word; }
 h1.w3-padding { padding-left:0 !important; padding-right:0 !important; }
 .font-extra-large { font-size:2.5rem; }
 #contact .w3-col { width:100%; }
 #contact .w3-padding-32 { padding-top:16px !important; padding-bottom:16px !important; }
 .w3-top .w3-bar { padding-left:8px !important; padding-right:8px !important; }
}

/* Consistent rhythm below the fixed navigation and between content sections. */
body { padding-top:72px; }
.page-opening-space { height:40px; }
.page-opening h1 { margin-top:0 !important; margin-bottom:24px !important; }
.page-opening .faded-image img { margin-top:0 !important; }
.page-opening .font-extra-large-italic { line-height:1.45; margin:24px auto; max-width:900px; }
.page-honours > main { margin-top:0 !important; }
.page-honours > main > .w3-container { padding-top:40px !important; }
.page-honours h1 { margin-top:0; }
.home-copy { max-width:900px; width:calc(100% - 40px); }
.home-services { padding-top:40px; padding-bottom:40px; }
.home-services > .font-extra-large { margin:0 0 24px; }
.home-services > .w3-row { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:0 !important; }
.home-services > .w3-row::before, .home-services > .w3-row::after { display:none; }
.home-services .w3-quarter { width:auto; float:none; padding:16px; border-radius:8px; }
.home-services .w3-quarter > p { margin:16px 0 !important; padding:0 !important; }
.home-services .w3-quarter > p:first-child { margin-top:0 !important; }
.home-services .w3-quarter img { width:70% !important; max-width:200px; margin-bottom:0 !important; }
.home-about > .w3-container { max-width:980px; margin-left:auto; margin-right:auto; }
.page-contact .w3-left.w3-half { float:none !important; width:100%; padding:0 20px 32px; }
.page-contact .w3-left.w3-half img { width:100% !important; margin-bottom:0 !important; }
#contact { margin-bottom:0 !important; padding-top:48px !important; padding-bottom:48px !important; }
#contact > .font-body-italic { max-width:900px; margin:16px auto 0; }
#contact > .w3-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:40px; max-width:1200px; margin:32px auto 0; padding:0 !important; text-align:left; }
#contact > .w3-row::before, #contact > .w3-row::after { display:none; }
#contact > .w3-row > .w3-col { width:auto; float:none; margin-bottom:0 !important; }
#contact .w3-col > p:first-child, #contact-form { margin-top:0 !important; }
#contact-form .w3-row-padding { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:0 0 16px !important; padding:0; }
#contact-form .w3-row-padding::before, #contact-form .w3-row-padding::after { display:none; }
#contact-form .w3-half { width:auto; float:none; padding:0 !important; }
#contact-form button[type=submit] { margin-bottom:0 !important; }
@media (max-width:1000px) and (min-width:601px) {
 .home-services > .w3-row { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
 #contact > .w3-row { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:600px) {
 .page-opening-space { height:32px; }
 .page-opening > .w3-half { padding-left:4px !important; padding-right:4px !important; }
 .page-opening .w3-justify { padding-left:0 !important; padding-right:0 !important; text-align:left !important; }
 .page-opening .font-extra-large-italic { font-size:1.6rem; padding-left:4px !important; padding-right:4px !important; }
 .home-copy p, .home-about p { text-align:left !important; }
 .home-services > .w3-row { grid-template-columns:1fr; gap:24px; }
 .home-services .w3-quarter { padding:16px 4px; }
 #contact-form .w3-row-padding { grid-template-columns:1fr; }
 .page-classes .w3-left.w3-half .w3-justify, .page-classes .w3-right.w3-half .w3-justify { width:100% !important; padding-left:20px !important; padding-right:20px !important; text-align:left !important; }
}
.page-send-email > main { padding-top:40px !important; padding-bottom:32px !important; }
@media (max-width:600px) {
 .page-honours > main > .w3-container, .page-send-email > main { padding-top:32px !important; }
}

html { scroll-padding-top:88px; }
