/* Shared photograph layout: filled previews, complete campus views and intact identities. */
.guide-card-image,
.card-photo,
.featured-universities .card-photo,
.finder-result-photo {
  display: block;
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #dbe5ef;
}
.guide-card-image img,
.card-photo > img,
.finder-result-photo img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: var(--photo-focus, center);
}
.mobile-campus-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
}
.programme-photograph img,
.guide-opening figure img,
.guide-hub-opening figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: var(--photo-focus, center);
}
/* Full university views and galleries follow each source image's own proportions. */
.profile-photo,
.gallery-grid img {
  display: block;
  height: auto;
  min-height: 0;
  max-height: none;
  aspect-ratio: var(--photo-aspect, auto);
  object-fit: cover;
}
.gallery-grid { align-items: start; }
.gallery-grid figure { min-width: 0; }
/* Keep entrance signs and landmark buildings in the smaller preview frames. */
img[src*="10-jiangsu-university-hero"] { --photo-focus: 78% center; }
img[src*="34-fujian-medical-university-hero"] { --photo-focus: 55% center; }
img[src*="40-kunming-medical-university-hero"] { --photo-focus: 52% center; }
img[src*="12-zhejiang-university-hero"] { --photo-focus: center 58%; }
/* A portrait poster keeps its vertical composition beside the student's story. */
.review-preview { min-height: 0; }
.review-preview-media { aspect-ratio: 9 / 16; }
.review-preview-media > button { aspect-ratio: 9 / 16; }
.review-preview-media img { object-fit: cover; object-position: center 30%; }
/* Logos, QR codes and video playback retain their complete source canvas. */
.university-logo,
.programme-emblem,
.brand img,
.footer-brand img,
.wecom-qr img { object-fit: contain; }
.student-story video,
.hero-review-video video,
.home-review-dialog video { object-fit: contain; }
