html{overflow-x:hidden}
body{overflow-wrap:break-word}
main,.page-content,.page-content>section,.header-shell,.footer-shell,.footer-bottom{min-width:0}
:where(img,video,iframe){max-width:100%}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #ffcf28;outline-offset:3px}
:where(.button,.portal-link,.header-search,.menu-toggle,.contact-launcher-toggle,.back-to-top){min-height:44px}
.page-content :where(p,li){text-wrap:pretty}
.page-content :where(h1,h2,h3){text-wrap:balance}
.page-content :where(table){width:100%}
.page-content :where(.table-wrap){max-width:100%;overflow-x:auto;scrollbar-width:thin}
.page-content :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){max-width:100%;min-height:46px}
.page-content textarea{resize:vertical}
.site-footer a,.site-footer button{min-height:38px}

@media(max-width:1020px){
  .site-header{isolation:isolate}
  .header-shell{padding-inline:14px}
  .site-header .brand{min-width:0;max-width:calc(100vw - 155px)}
  .site-header .brand>span{min-width:0}
  .site-header .brand .brand-company-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .primary-nav{overscroll-behavior:contain}
  .mobile-drawer-links a{min-height:46px}
  .nav-close{width:46px;height:46px}
  body.nav-open{overflow:hidden;touch-action:none}
}

@media(max-width:760px){
  .header-shell{min-height:72px}
  .site-header .brand img{width:44px;height:44px}
  .site-header .brand{max-width:calc(100vw - 126px)}
  .site-header .brand .brand-company-name{font-size:11px!important;white-space:normal;line-height:1.12!important}
  .site-header .brand .brand-current-name{margin-top:3px}
  .menu-toggle{width:48px;height:48px}
  .page-content>section,.programme-public-intro,.programme-records,.programme-albums{width:calc(100% - 20px)!important;padding-inline:clamp(16px,5vw,28px)!important}
  .hero-copy{max-width:calc(100% - 28px)!important;margin-inline:auto!important}
  .home-news-ribbon{width:calc(100% - 16px)!important}
  .home-link-grid>a{min-width:0}
  .home-link-grid b,.home-link-grid small{white-space:normal!important}
  .cookie-banner{max-height:min(86vh,700px);overflow-y:auto;overscroll-behavior:contain}
  .contact-launcher{right:12px!important;bottom:12px!important}
  .contact-launcher-panel{width:min(370px,calc(100vw - 24px))}
  .site-footer{margin-top:28px!important}
  .footer-shell,.footer-bottom{width:calc(100% - 28px)!important}
  .footer-bottom{align-items:flex-start}
}

@media(max-width:430px){
  .site-header .brand{max-width:calc(100vw - 105px)}
  .site-header .brand img{width:40px;height:40px}
  .site-header .brand .brand-company-name{font-size:10px!important}
  .site-header .brand .brand-current-name{font-size:7px!important}
  .header-actions{gap:6px!important}
  .page-content>section{border-radius:18px!important}
  .button{width:100%;justify-content:center}
  .home-link-grid{grid-template-columns:1fr!important}
  .footer-shell{grid-template-columns:1fr!important}
  .legal-links{gap:6px 12px}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
