/* Intrinsic dimensions prevent shifts; the existing component owns its crop. */
.ip-photo { display:block; overflow:hidden; min-width:0; }
.ip-photo>img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }

.rc-campus-thumb.ip-photo { flex:none; }
.gallery-grid>.ip-photo { aspect-ratio:3/2; }
.gallery-grid>.ip-photo>img { object-fit:contain; background:#eef4f0; }
.room-card>.ip-photo { width:190px; height:145px; flex:none; }
.room-summary>.ip-photo { width:100%; height:180px; border-radius:12px; }
.conversation>.ip-photo,.small-property>.ip-photo { width:68px; height:58px; flex:none; border-radius:9px; }
/* Replace the baked, low-resolution arch with a resolution-independent frame. */
.hp-backdrop.ip-photo { left:49%; top:12%; right:-18%; bottom:0; width:auto; height:auto; border-radius:50% 50% 0 0 / 52% 52% 0 0; box-shadow:0 0 0 58px #a5d6c71a; }
.hp-page { background:radial-gradient(ellipse at 75% 60%,#175e48,#002b23 69%); }
.hp-page::after { background:linear-gradient(0deg,#001f1ac9,transparent 40%),linear-gradient(90deg,#00281f55,transparent 90%); }
@media(max-width:600px){.room-card>.ip-photo{width:100%;height:185px}.hp-backdrop.ip-photo{left:22%;right:-58%;top:6%;bottom:auto;height:900px;opacity:.38}}
.ip-image-manager{margin-top:24px}.ip-image-manager form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:20px 0}.ip-image-manager label{display:grid;gap:8px}.ip-image-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;padding:0;list-style:none}.ip-image-list img{width:100%;height:180px;object-fit:contain;background:#f0f4f1}.ip-image-list button{padding:10px;border:1px solid #b8cfc5;border-radius:8px;margin:6px 4px 0 0}.ip-image-manager[aria-busy=true] button{pointer-events:none;opacity:.5}
