.front-hero > img {
  object-position: var(--image-focus, 56% 50%);
}

.v-thumbs {
  grid-template-columns: repeat(auto-fit, minmax(76px, 1fr));
}

/* Preserve the complete photograph, with captions outside the frame. */
.v-gallery figure { height: auto; background: #f1f2f3; }
.v-gallery figure > img,
.v-gallery figure > img.media-contain { height: 440px; object-fit: contain; padding: 0; }
.v-gallery figcaption { position: static; padding: 15px 18px; background: #f1f2f3; color: #484d52; font-size: 14px; }
.gallery { display: block; columns: 3; column-gap: 28px; }
.gallery .project,.gallery .project.big { display: inline-block; width: 100%; margin: 0 0 28px; break-inside: avoid; height: auto; grid-column: auto; grid-row: auto; background: transparent; text-align: left; border-radius: 4px; }
.gallery .project[hidden] { display: none; }
.gallery .project img { width: 100%; height: auto; object-fit: contain; transform: none; }
.gallery .project:hover img { transform: none; }
.gallery .project > span { position: static; display: block; padding: 16px 0 0; background: none; color: #242629; }
.gallery .project > span b,.gallery .project.big > span b { display: block; font-size: 18px; font-weight: 500; line-height: 1.4; }
.gallery .project > span small { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: #73777c; }
.gallery .project:after,.gallery .project:before { display: none; }
.gallery .project > i { top: 12px; right: 12px; bottom: auto; }
.media-context img,.media-context img.media-contain { height: auto; object-fit: contain; padding: 0; }

.gallery .project img.media-contain {
  object-fit: contain;
  background: #202225;
}

.media-context img.media-contain {
  object-fit: contain;
  background: #ededed;
  padding: 14px;
}

@media (max-width: 600px) {
  .gallery { columns: 1; }
  .v-gallery figure > img,.v-gallery figure > img.media-contain { height: 330px; padding: 0; }
  .v-thumbs {
    grid-template-columns: repeat(auto-fit, minmax(62px, 1fr));
    gap: 8px;
  }

  .media-context img.media-contain {
    padding: 8px;
  }
}
