/* Shared mobile behaviour across every page, form and dialog. */
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,.button{touch-action:manipulation}
img{max-width:100%}
.body-copy,.document-title,.faculty-card,.notice-card,.leadership-card,.editor-panel{overflow-wrap:anywhere}
@media(max-width:700px){
  .section{padding:48px 0}.page-banner{padding:32px 0 36px}
  .page-banner h1{font-size:clamp(1.9rem,8vw,2.7rem);line-height:1.2;overflow-wrap:anywhere}
  h2{font-size:clamp(1.75rem,7vw,2.3rem);line-height:1.25}
  .header-inner nav.open{max-height:calc(100dvh - 112px);overflow-y:auto;overscroll-behavior:contain}
  .header-inner nav a{display:flex;align-items:center;min-height:48px;padding:8px 4px}
  .menu-toggle,.search-toggle{min-width:44px;min-height:44px}
  .utility-inner{min-height:44px}.utility-inner>div{gap:6px}.utility-inner a{min-height:44px;display:flex;align-items:center;font-size:11px}
  .field input,.field textarea,.field select{font-size:16px;min-height:48px}
  .button,.filter-tab,.admin-notice button,.reset-button{min-height:44px}
  .actions{flex-wrap:wrap}.actions>*{max-width:100%}
  .filter-tabs{gap:8px}.filter-tab{padding:10px 13px}
  .document-row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px 14px;padding:18px 0}
  .document-open{grid-column:2;max-width:none;min-height:24px;margin:0;font-size:13px}
  .contact-panel>div,.editor-panel,.notice-card,.leadership-card{padding:24px}
  .contact-panel .button{width:100%;text-align:center}
  .facility-grid article>img,.programme-card>img{height:auto;aspect-ratio:4/3;object-fit:cover}
  .feature-photo{height:auto;aspect-ratio:4/3;object-fit:cover}
  .intro-grid>img[style]{height:auto!important;aspect-ratio:4/3}
  .clinical img{height:auto;aspect-ratio:4/3}
  .footer{padding-bottom:100px}.footer-bottom{font-size:12px}
  dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);overscroll-behavior:contain}
  .dialog-close{width:44px;height:44px}.lightbox .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .lightbox .button{padding:10px;font-size:12px}.lightbox-caption{flex-wrap:wrap}
  .search-results{max-height:45dvh}.search-result{min-height:48px;overflow-wrap:anywhere}
  .toast{bottom:90px;width:calc(100% - 32px);font-size:14px}
}
@media(max-width:380px){.wrap{width:calc(100% - 32px)}.footer-top{grid-template-columns:1fr}.footer-top>div{grid-column:1}.gallery-grid{grid-template-columns:1fr}.info-list{grid-template-columns:1fr}.clinical-points{flex-wrap:wrap;gap:18px}.brand span span{max-width:185px}.rti-note{padding:20px}}
