/* Real imagery in the .ph photo slots (replaces the grey "Photo to come" panels). */
.ph > img, .ph > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ph > img.ph-bg { inset: -48px 0; height: calc(100% + 96px); background: none; }
.ph > .hero-poster, .ph > .hero-video { z-index: 0; }
.ph > .hero-video { z-index: 1; }
img.disc-media, img.case-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.team-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.team-list li { display: flex; flex-direction: column; gap: 8px; padding-top: 20px; border-top: 1px solid var(--pb-ink); }
.team-list .card-title { margin: 0; }
.team-list p { margin: 0; }
@media (max-width: 760px) { .team-list { grid-template-columns: minmax(0, 1fr); } }
/* Figures that carry both `rv` and `wipe-up` on the same element (page-head heroes): site.css only unclips a .wipe-up *inside* a revealed .rv, so mirror that rule here. */
.js .rv.is-in.wipe-up { clip-path: inset(0 0 0 0); transition: clip-path 900ms var(--ease-expo-out) calc(var(--i, 0) * var(--stagger-item)), transform 600ms var(--ease-spring); }
img.divider-media { width: 100%; height: 100%; object-fit: cover; display: block; }
