/* Shared photo frames. Keep teams and podiums complete; align paired captions. */
:root { --photo-mat:#0b2143; --photo-gap:clamp(16px,2.2vw,28px); }

/* Matching state features, with no stagger or unequal columns. */
body[data-page="index"] .athlete-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--photo-gap); align-items:stretch; }
body[data-page="index"] .athlete { display:flex; flex-direction:column; min-width:0; margin:0; }
body[data-page="index"] .athlete:nth-child(2) { margin-top:0; }
body[data-page="index"] .athlete__photo { aspect-ratio:3/2; background:var(--photo-mat); }
body[data-page="index"] .athlete__photo img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }
body[data-page="index"] .athlete:hover .athlete__photo img { transform:none; }
body[data-page="index"] .athlete__info { flex:1; min-width:0; align-items:center; }
body[data-page="index"] .athlete__info > div { min-width:0; }

/* Every program uses the same photo area, including full-group photographs. */
.home-programs .prog-panel { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); align-items:stretch; }
.home-programs .prog-panel__photo { position:relative; min-width:0; min-height:440px; background:var(--photo-mat); overflow:hidden; }
.home-programs .prog-panel__photo img { position:absolute; inset:0; display:block; width:100%; height:100%; max-width:100%; object-fit:contain; }
.home-programs .prog-panel__body { min-width:0; }

/* School photo pairs have equal frames and a consistent caption baseline. */
.school-team-photos,.school-photo-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--photo-gap); align-items:start; }
.school-team-photos > figure,.school-photo-pair > figure { display:flex; flex-direction:column; min-width:0; margin:0; }
.school-photo-pair figure:nth-child(2) { margin:0; }
.school-team-photos img,.school-photo-pair img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; object-position:center; background:var(--photo-mat); }
.school-photo-pair img { aspect-ratio:3/2; }
.school-team-photos figcaption,.school-photo-pair figcaption { margin:0; padding:12px 0 0; font-size:14px; line-height:1.5; color:#c9d4ee; }

/* Single-photo stories keep their natural subjects and stay inside the grid. */
.youth-hero-grid > *,.girls-editorial > *,.first-practice > *,.community-notes > *,.history-bottom > * { min-width:0; }
.youth-hero figure img,.first-practice figure img,.history-photo img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; background:var(--photo-mat); }
.youth-hero figcaption,.first-practice figcaption,.history-photo figcaption { margin:0; padding-top:12px; line-height:1.5; }
.girls-hero-photo { width:calc(100% - 2 * var(--gutter)); max-width:320px; padding:0; margin:32px auto; justify-self:center; }
.girls-hero-photo img { display:block; width:100%; height:auto; max-width:100%; aspect-ratio:4/3; object-fit:contain; background:var(--photo-mat); }
.girls-hero-photo figcaption { max-width:none; margin:0; padding-top:12px; line-height:1.5; }
.pack-portrait img { display:block; width:100%; height:auto; }
.pack-portrait figcaption { line-height:1.5; }
.history-feature__image { display:block; aspect-ratio:4/3; background:var(--photo-mat); }
.history-feature__image img { display:block; width:100%; height:100%; object-fit:contain; }

/* Logos share a bounding box, rather than stretching to the same shape. */
.sponsor-business__logo { width:68px; height:44px; max-width:68px; max-height:44px; object-fit:contain; }
.sponsors-wall .sp,.sponsors-wall .tier--pin .sp,.sponsors-wall .tier--takedown .sp { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:80px minmax(44px,1fr) 18px; justify-items:center; align-items:center; gap:10px; min-height:208px; }
.sponsors-wall .sp__image { grid-row:1; width:100%; height:80px; }
.sponsors-wall .sp__image img { max-width:100%; max-height:80px; width:auto; height:auto; object-fit:contain; }
.sponsors-wall .sp__name { grid-row:2; }
.sponsors-wall .sp__visit { grid-row:3; }
.sponsors-wall a.sp:hover { transform:none; }

@media(max-width:950px) {
 .home-programs .prog-panel { grid-template-columns:minmax(0,1fr); }
 .home-programs .prog-panel__photo { min-height:0; aspect-ratio:3/2; }
}
@media(max-width:650px) {
 body[data-page="index"] .athlete-grid,.school-team-photos,.school-photo-pair { grid-template-columns:minmax(0,1fr); }
 .school-team-photos,.school-photo-pair { gap:28px; }
 body[data-page="index"] .athlete-grid { gap:28px; }
 .sponsors-wall .sp,.sponsors-wall .tier--pin .sp,.sponsors-wall .tier--takedown .sp { grid-template-rows:60px minmax(40px,1fr) 18px; min-height:178px; }
 .sponsors-wall .sp__image { height:60px; }
 .sponsors-wall .sp__image img { max-height:60px; }
}
