/* WCAG 2.2 AA: shared interaction, reflow and focus rules. No accessibility overlay. */
html { scroll-padding-block: 7rem 8rem; }
[hidden] { display: none !important; }
body { overflow-wrap: anywhere; }
:where(a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-block: 7rem 8rem; }
body :focus-visible {
  outline: 3px solid #082d27;
  outline-offset: 3px;
  box-shadow: 0 0 0 6px #fff;
}
.skip-link { z-index: 1100; }
.skip-navigation { left: auto; right: 1rem; }
#main-content:focus, #main-navigation:focus { outline: none; }
input, select, textarea { color: #17231f; background-color: #fff; border: 1px solid #65746a; max-width: 100%; }
input::placeholder, textarea::placeholder { color: #566159; opacity: 1; }
button, input:not([type='checkbox']):not([type='radio']):not([type='hidden']), select, summary { min-height: 2.75rem; }
textarea { font: inherit; width: 100%; }
input[type='checkbox'], input[type='radio'] { min-width: 1.5rem; min-height: 1.5rem; accent-color: #123e34; }
label:has(> input[type='checkbox']), label:has(> input[type='radio']) { min-height: 2.75rem; cursor: pointer; }
summary { cursor: pointer; padding-block: .5rem; }
.field-error { display: block; margin-block: .3rem; color: #8e1728; font-weight: 600; }
[aria-invalid='true'] { border: 2px solid #8e1728; }
.contribute-error a, .shooting-errors a { text-decoration: underline; }
.accessibility-statement h2 { margin-top: 2rem; }
.accessibility-statement li { margin-block: .75rem; }
.site-footer li > a, .mega-grid a { display: inline-block; min-height: 2.75rem; padding-block: .5rem; }
.site-footer .social-links a {
  display: grid;
  place-items: center;
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  min-height: 2.75rem;
  padding: 0;
}
.quick-navigation { flex-wrap: wrap; }
.mega-navigation { overscroll-behavior: contain; max-height: calc(100dvh - 6rem) !important; scroll-padding-block: 1rem; }
.mega-navigation a, .mega-navigation input, .mega-navigation button { scroll-margin-block: 1rem; }
.mega-search button { flex-shrink: 0; white-space: nowrap; }
.mega-grid > *, .footer-grid > *, .header-inner > *, .button-row > *, .search-dialog form > div > * { min-width: 0; }
.refined-picks { flex-wrap: wrap; gap: .4rem 1rem; }
.refined-controls { align-items: flex-start; }
.refined-picks button { padding-inline: .25rem; }
.brand small { letter-spacing: 0; }
.header-inner { min-height: 5rem !important; }
.site-header.is-compact .brand small { display: none; }
.search-dialog-heading { align-items: flex-start; }
.search-dialog form > div { flex-wrap: wrap; }
.search-dialog input { flex: 1 1 10rem; }
.image-lightbox-shell { grid-template-rows: auto minmax(0, 1fr) auto; }
.image-lightbox-caption { max-height: 25dvh; min-height: 1.5rem; }
.mobile-dock strong { font-size: 1rem; overflow-wrap: normal; }
.mobile-dock a { min-width: 0; min-height: 3.5rem; }
.breadcrumbs ol { flex-wrap: wrap; }
.chronicle-result nav { flex-wrap: wrap; max-width: 100%; }
.chronicle-result nav a { min-height: 2.75rem; }
.calendar-list time { width: 100%; min-width: 0; }
.calendar-list time span { white-space: normal; overflow-wrap: normal; }
.home-news .news-card-body, .news-archive-list > article > div {
  position: relative;
  z-index: 3;
  background: var(--news-surface);
}
.home-news .news-card:focus-within, .news-archive-list > article:focus-within {
  outline: 3px solid #082d27;
  outline-offset: 3px;
}
.gallery a:focus-visible, .masonry a:focus-visible, .masonry-gallery a:focus-visible { outline-offset: -4px; }
.button, .refined-cta { white-space: normal; overflow-wrap: anywhere; }
main :is(p, li) > a:not(.button):not(.filter-chip) { text-decoration: underline; text-decoration-thickness: .08em; }
@media (max-width: 90rem) { .quick-navigation { display: none; } }
@media (max-width: 46rem) {
  .site-header { position: relative; }
  .header-inner { width: calc(100% - 1.5rem); margin-inline: auto; gap: .5rem; grid-template-columns: minmax(0,1fr) auto; }
  .tablet-search { display: none !important; }
  .brand { min-width: 0; gap: .5rem; }
  .brand strong { font-size: 1rem; line-height: 1.3; }
  .brand img { width: 2.25rem; height: 2.25rem; }
  .nav-toggle { padding-inline: .6rem; }
  .mobile-dock { position: static; width: calc(100% - 1.5rem); margin: 1.5rem auto; border-radius: .6rem; }
  .mobile-dock strong { font-size: 1rem; }
  .mobile-dock a:nth-child(3) strong { font-size: 1rem; }
  body { padding-bottom: 0; }
  .mobile-dock { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mobile-dock a:nth-child(3) { border-left: 0; }
  .mobile-dock a:nth-child(n+3) { border-top: 1px solid #8da69d; }
  .mega-navigation { max-height: calc(100dvh - 5rem) !important; }
  .mega-search { grid-template-columns: minmax(0,1fr); gap: .5rem; }
  .mega-grid { grid-template-columns: minmax(0,1fr); gap: 1rem; }
  .mega-navigation-inner { padding-bottom: 2rem; }
  .site-footer { padding-inline: 1rem; }
  .back-to-top { right: .75rem; bottom: .75rem; }
}
@media (max-width: 24rem) {
  .hero-refined { width: calc(100% - 2rem); }
  .refined-programme > div { grid-template-columns: minmax(0,1fr); gap: .1rem; }
  .refined-place { white-space: normal; }
  .calendar-list > a { grid-template-columns: 3.5rem minmax(0,1fr); gap: .5rem; }
}
@media (max-height: 32rem) { .site-header { position: relative; } .back-to-top { position: static; margin: 1rem; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  body :focus-visible { outline: 3px solid Highlight; box-shadow: none; }
  .button, button, input, select, textarea, .filter-chip { border: 1px solid ButtonText; }
  [aria-current], [aria-pressed='true'] { outline: 2px solid Highlight; outline-offset: -2px; }
}

/* Additional wrapping is active only when the reader increases text spacing. */
.supporters-band[data-custom-text-spacing] > * { min-width: 0; }
.supporters-band[data-custom-text-spacing] .button { max-width: 100%; white-space: normal; }
