/* Content-only adaptation: preserve workshop colors, font family and image composition.
   All track/card dimensions, breakpoints, gaps and choreography are source CSS. */
:is(#workshop-gallery, #instructor-gallery){--lego-phr-surface:#10130f;--lego-phr-ink:var(--paper)}
:is(#workshop-gallery, #instructor-gallery) [data-lego-phr="media"] img{object-fit:contain}
:is(#workshop-gallery, #instructor-gallery) .s-progress-label{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase}

/* Photo sizing repair: retain source card widths/gaps and all motion formulas.
   Tombolo's 8rem top clearance is for its navigation, absent on this page. */
@media (max-width: 767px) and (min-height: 480px) {
  :is(#workshop-gallery, #instructor-gallery).lego-msr-active [data-lego-phr="track"] { padding-top: 1.5rem; }
  :is(#workshop-gallery, #instructor-gallery).lego-msr-active [data-lego-phr="project"],
  :is(#workshop-gallery, #instructor-gallery).lego-msr-active [data-lego-phr="project"]:last-child { padding-left: 0; padding-right: 0; }
  /* Empty agency metadata must not consume a flex gap in the photo-only cards. */
  :is(#workshop-gallery, #instructor-gallery).lego-msr-active [data-lego-phr="media-right"] { display: none; }
}

/* Captions share the photograph's moving container; they cannot cross its face. */
:is(#workshop-gallery, #instructor-gallery) [data-workshop-caption] { display: none; }
@media (min-width: 992px) {
  :is(#workshop-gallery, #instructor-gallery) [data-lego-phr="media-left"] [data-lego-phr="header"] { visibility: hidden; }
  :is(#workshop-gallery, #instructor-gallery) [data-lego-phr="media-middle"] { overflow: visible; }
  :is(#workshop-gallery, #instructor-gallery) [data-workshop-caption] {
    display: block; position: absolute; left: var(--photo-inset-left, 0px); top: calc(var(--photo-inset-top, 0px) - 1.3em - 12px);
    margin: 0; font-size: 14px; line-height: 1.3; font-weight: 400;
    letter-spacing: 0; white-space: nowrap; color: inherit;
  }
}
