/* Static archive interactions. Theme declarations remain in theme.css. */
html { scroll-padding-top: 60px; }
.navbar a:focus-visible, a:focus-visible, button:focus-visible {
  outline: 2px solid #ed1e79;
  outline-offset: 3px;
}
.gallery-trigger { cursor: zoom-in; }
.archive-lightbox {
  box-sizing: border-box;
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 12px;
  border: 0;
  background: rgba(0, 0, 0, .94);
  color: #fff;
}
.archive-lightbox[open] {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
}
.archive-lightbox::backdrop { background: #000; }
.archive-lightbox .dialog-controls { display: flex; gap: 12px; justify-content: center; }
.archive-lightbox button {
  font: inherit;
  padding: 9px 14px;
  border: 1px solid #888;
  background: #222;
  color: #fff;
  cursor: pointer;
}
.archive-lightbox .dialog-image {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  cursor: zoom-out;
}
.archive-lightbox .dialog-caption {
  text-align: center;
  max-height: 25dvh;
  overflow: auto;
  font-size: 15px;
  line-height: 1.5;
}
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

/* Approved accessibility and reflow repairs; original theme remains recoverable. */
html { scroll-padding-top: calc(var(--nav-height, 52px) + 12px); }
body, .main, .body_text, .team_member_details, .team_member_role,
.exhibition_date, .exhibition_area, .participant_meta, .blog_excerpt_source,
.date_subtitle, .location_subtitle { color: #666; }
:root { --link-colour: #ed1e79; }
a, a:visited, a:hover, a:active { color: var(--link-colour); text-decoration: none; text-underline-offset: .15em; }
a[href]:hover, a[href]:focus-visible { text-decoration: underline; }
.navbar a, .social_buttons a, .gallery-trigger { text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible, iframe:focus-visible,
.navbar a:focus-visible, .navbar button:focus-visible {
  outline: 3px solid #a31252;
  outline-offset: 3px;
}
.footer { color: #c4c4c4; }
.footer .address_body, .footer .copyright, .footer .footer_newsletter_description { color: #c4c4c4; }
.footer a, .footer a:visited, .footer a:hover { color: #ffadd2; }
.footer a[href^="mailto:"], .footer a[href^="mailto:"]:visited,
.footer a[href^="mailto:"]:hover, .footer a[href^="mailto:"]:active { color: #fff; }
.footer a:focus-visible { outline-color: #fff; }
.centre_column { min-width: 0; width: calc(100% - 20px); }
h1, h2, h3, h4, .body_text, .summary, .film-information { overflow-wrap: anywhere; }
img { max-width: 100%; height: auto; }
.grid_cell { min-width: 0; }
.instrument-name { margin: 24px 0 0; color: #555; font-size: 18px; font-weight: 500; }
.exhibition { box-sizing: border-box; width: 33.333%; padding: 0 20px; overflow-wrap: anywhere; }
.team_member {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  grid-template-rows: auto auto 1fr auto;
  column-gap: 40px;
  align-items: start;
  overflow: visible;
}
.team_member_image { grid-column: 1; grid-row: 1 / span 4; float: none; }
.team_member_name, .team_member_role, .team_member_details, .team_member .social_buttons {
  grid-column: 2;
  margin-left: 0;
  min-width: 0;
  overflow-wrap: break-word;
}
.team_member_name { margin-top: 0; margin-bottom: 0; }
.team_member_name > a, .team_member_name > a:visited, .team_member_name > a:hover,
.team_member_name > a:active { color: #333; text-decoration: none; }
.quote-attribution { color: #4d4d4d; font-weight: 400; }
.team_member_details { margin-top: 24px; margin-bottom: 16px; }
.social_buttons, .team_member .social_buttons, .footer .social_buttons {
  position: static;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  float: none;
}
.social_buttons a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  min-height: 32px;
}
.social_buttons a img, .team_member .social_buttons a img,
.social_buttons a:first-child img, .social_buttons a:last-child img {
  width: auto;
  height: 16px;
  margin: 0;
  opacity: 1;
}
.team_member .social_buttons { justify-content: flex-end; justify-self: end; gap: 23px; }
.team_member .social_buttons a img { filter: none; opacity: .6; }
.team_member .social_buttons a {
  box-sizing: border-box;
  padding: 0 8px;
  margin: 0 -8px;
  justify-content: center;
}
.footer .social_buttons { justify-content: flex-end; width: max-content; max-width: 100%; margin: 10px 0 10px auto; gap: 15px; }
.footer .social_buttons a img { height: 19px; opacity: 1; }
.footer .footer_newsletter { display: inline-block; margin: 10px 0 20px; }
@media (min-width: 680px) {
  .footer .social_buttons { float: right; }
  .footer .social_buttons a img { height: 25px; }
}
.skip-link {
  position: fixed;
  left: 12px;
  top: 8px;
  z-index: 3000;
  padding: 12px 18px;
  color: #fff !important;
  background: #333;
  transform: translateY(-150%);
}
.skip-link:focus { transform: none; }
#my-nav {
  position: static;
  display: block;
  height: auto;
  top: 0;
  border-top: 0;
  max-height: calc(100dvh - 12px);
  overflow-y: auto;
}
#my-nav ul { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0 0 0 5px; }
#my-nav li { display: block; float: none; clear: none; width: auto; }
#my-nav li a, #my-nav li button {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: .73em .5em 9px;
  color: #fff;
  background: #585858;
  border: 0;
  font: inherit;
  text-decoration: none;
  cursor: pointer;
}
#my-nav li.active a { background: #767676; color: #fff; outline: 1px solid #fff; outline-offset: -1px; }
#my-nav li a:focus-visible, #my-nav li button:focus-visible { outline: 3px solid #fff; outline-offset: -4px; }
#my-nav li.show-hide-toggle { display: none; }
.js #my-nav {
  position: fixed;
  transform: translateY(var(--nav-offset, calc(-100% - 6px)));
}
.js #my-nav:focus-within { transform: translateY(0); }
html:not(.js) #my-nav li:not(.show-hide-toggle) { display: block; }
.film-information {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  font-size: 15px;
  line-height: 1.6;
}
.film-information:focus-within {
  position: static;
  width: calc(100% - 20px);
  height: auto;
  margin: -20px auto 40px;
  overflow: visible;
  clip-path: none;
  white-space: normal;
}
.film-information details { margin-top: 12px; }
.film-information summary { cursor: pointer; text-decoration: underline; }
.film-information details p { margin-top: 16px; }
.archive-lightbox .dialog-controls { flex-wrap: wrap; }
.archive-lightbox .dialog-controls { min-height: 44px; }
.archive-lightbox .dialog-close {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 0;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: #fff;
  font: 300 36px/1 Roboto, sans-serif;
}
.archive-lightbox button { min-width: 44px; min-height: 44px; box-sizing: border-box; }
.archive-lightbox :focus-visible { outline-color: #fff; }
.archive-lightbox .dialog-stage { min-height: 0; position: relative; overflow: hidden; }
.archive-lightbox .dialog-status { margin: 0; padding: 12px; text-align: center; }
.archive-lightbox .dialog-status:empty { display: none; }
.archive-lightbox .dialog-caption a { color: #ffadd2; }
.archive-lightbox .dialog-image[hidden] { display: none; }
@media (prefers-contrast: more), (forced-colors: active) {
  :root { --link-colour: #b5165c; }
  a[href] { text-decoration: underline; }
}
@media (max-width: 780px) {
  #my-nav li a, #my-nav li button { padding-bottom: 6px; }
}
@media (max-width: 680px) {
  .js #my-nav li.show-hide-toggle { display: block; margin-left: auto; order: 2; }
  .js #my-nav li:not(.show-hide-toggle) { width: 100%; order: 3; }
  .js #my-nav li#nav_cave-of-sounds { width: auto; order: 1; }
  .js #my-nav.collapsed li:not(.show-hide-toggle):not(#nav_cave-of-sounds) { display: none; }
  .js #my-nav:not(.collapsed) li#nav_cave-of-sounds { flex: 1; }
}
@media (max-width: 600px) {
  .body_text { padding: 0; }
  .summary { padding-left: 0; padding-right: 0; }
  .blog_excerpt { margin-left: 0; }
  .team_member { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; gap: 16px; margin: 56px 0; }
  .team_member_image, .team_member_name, .team_member_role, .team_member_details, .team_member .social_buttons { grid-column: 1; grid-row: auto; }
  .team_member_image { margin-bottom: 8px; max-width: 100%; }
  span.team_member_image { display: none; }
  .team_member_details { margin: 0; }
  .exhibition { width: 100%; padding: 0 8px; }
  .grid_row { flex-direction: column; gap: 20px; }
  .grid_row > .grid_cell { width: 100% !important; }
  .grid_row > .grid_divider, .grid_row > .grid_cell:empty { display: none; }
  .participant_quotation, .left_aligned_participant_quotation { margin-left: 0; margin-right: 0; }
  .sponsor-logos img { max-width: calc(100% - 20px); object-fit: contain; }
}
