/* Technical repairs for the preserved GPM design. */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible {
  outline: 2px solid #916b62;
  outline-offset: 4px;
}

#content img { max-width: 100%; height: auto; box-sizing: border-box; }
.video iframe { display: block; width: 100%; aspect-ratio: 702 / 400; height: auto; }
.memberitem .portraitlarge img { max-width: 100%; box-sizing: border-box; }
#newsnav a, .flex-control-paging a { position: relative; }
#newsnav a::after, .flex-control-paging a::after {
  content: ""; position: absolute; inset: -7px;
}

@media (max-width: 780px) {
  #wrapper { min-width: 0; margin-bottom: 0; }
  #content, #footer .inner { width: 100%; max-width: 768px; padding: 0 20px; box-sizing: border-box; }
  #prefooter { height: 70px; }
  #footer { height: auto; min-height: 160px; padding: 35px 0; }
  #footer ul { display: flex; flex-wrap: wrap; gap: 24px; }
  #footer li, #footer li:first-child, #footer li:last-child { float: none; width: auto; flex: 1 1 180px; }
  #footer a { overflow-wrap: anywhere; }
  #nav ul { display: flex; flex-wrap: wrap; justify-content: center; }
  #nav li { margin: 0 3px; }
  #nav a { padding: 17px 10px 16px; }
  h1 { margin: 50px 0; }
  .featured { margin: 45px 0 60px; }
  .video { width: 100%; padding: 14px; box-sizing: border-box; }
  .column, .news .column { width: calc(50% - 10px); margin: 0 0 0 20px; }
  .column:first-of-type, .news .column:first-child { margin-left: 0; }
  .member { width: calc(50% - 20px); margin: 20px 10px; }
  .partner { width: calc(33.333% - 20px); margin: 20px 10px; }
  .talentitem, .memberitem { max-width: 100%; }
  .talentslider { width: 100%; height: auto; box-sizing: border-box; }
  .talentslider .slides li .img { width: 100%; height: auto; aspect-ratio: 454 / 260; line-height: normal; display: flex; align-items: center; justify-content: center; }
  .talentslider .slides li .img img { max-height: 100%; object-fit: contain; }
  .talentslider .flex-direction-nav { top: calc(100% + 20px); left: calc(50% - 60px); }
  #friendslider { width: 100%; height: auto; padding: 14px; box-sizing: border-box; }
  #friendslider .slides li .img { width: 100%; height: auto; aspect-ratio: 704 / 420; line-height: normal; display: flex; align-items: center; justify-content: center; }
  #friendslider .slides li .img img { max-height: 100%; object-fit: contain; }
  #friendthumbs { width: calc(100% - 120px); }
  #friendthumbs .flex-direction-nav { width: 100%; }
  #friendthumbs .flex-direction-nav a { width: 76px; transform: scale(.7); }
  #friendthumbs .flex-direction-nav .flex-next { left: -66px; }
  #friendthumbs .flex-direction-nav .flex-prev { right: -66px; }
  input, textarea { max-width: 100%; box-sizing: border-box; }
}

@media (max-width: 580px) {
  #content, #footer .inner { padding: 0 16px; }
  #nav li { flex: 0 0 33.333%; margin: 0; }
  #nav a { padding: 15px 5px; font-size: 14px; min-height: 44px; box-sizing: border-box; }
  #content > h1 br { display: none; }
  h1 { font-size: 19px; margin: 40px 0; }
  h1 span { font-size: 1.35em; }
  h2 { padding-left: 0; }
  .column, .news .column { float: none; width: 100%; margin: 0 0 24px; }
  .news img { display: block; margin: 0 auto; }
  .news .content { line-height: 1.65; }
  .member { float: none; width: 100%; height: auto; min-height: 300px; margin: 24px 0; }
  .partner { width: calc(50% - 10px); margin: 15px 5px; }
  #talentnav { width: 100%; }
  #talentnav li { margin: 0 18px 20px; }
  .talentitem, .memberitem { width: 100%; margin-top: 40px; }
  .production-wrapper { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; }
  .production-excerpt { float: none; margin: 0 0 20px; }
  h2.production-title { width: calc(100% - 35px); line-height: 1.5; }
  h2.production-title span { display: block; margin-bottom: 8px; }
  .meta { max-width: 48%; }
  .meta.right { text-align: right; }
  #form { margin-top: 36px; }
  #form input:not(.button), #form textarea { width: 100%; padding: 10px; margin: 10px 0 22px; }
  #form input.button { min-height: 44px; }
  #friendthumbs { margin-top: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
