/* Card photos only. Keep original image proportions: cover uses the existing
   media rail with natural cropping, never a transform or an artificial zoom.
   Direct-child selectors deliberately exclude logos, badges, gallery slides,
   thumbnail strips, upload previews and account/profile avatars. */
:is(
.car-card > .car-image-wrap > img,
.public-car-card > .public-car-media > img,
.showroom-card > .showroom-card-image > img,
#publicSectionScreen .lorry-card .lorry-photo > img,
.rental-vehicle-card > .rental-card-media > .rental-photo-link:not(.rental-photo-missing) > img,
.office-directory-card > .office-photo > img,
.office-feature-slide > .office-photo > img,
#showroomGold .showroom-gold-slide > .showroom-gold-photo,
#publicSectionScreen .parts-item-photo > img,
.section-listing-card-main > .section-listing-card-media > img,
.public-favorites .favorite-record-main > .favorite-record-media > img,
.post-inventory-card > .post-inventory-item > img,
.home-gold-card > .home-gold-media > img,
.recovery-driver-row > .recovery-row-media > img,
.account-listing-card > .account-listing-image,
.inventory-card > img,
.approval-card > .approval-thumbnail > img,
.section-record-card > .section-record-thumbnail > img,
.admin-management-card .record-heading > .record-cover > img,
.showroom-admin-card > .showroom-admin-open > img,
.showroom-admin-car-grid > article > .showroom-admin-open > img
):not([src*="logo" i]):not([src*="placeholder" i]) {
  display:block;
  object-fit:cover;
  object-position:center;
}

/* Featured listing cards retain their existing carousel frames and overlays.
   Only this legacy rule needs !important: gold-stability.css and rentals.css
   currently force contain. Advertisement slides use separate media classes
   and are intentionally not included. */
:is(#goldCars .gold-car > img,
    .section-gold .gold-car > img,
    .lorry-gold .lorry-gold-slide > img,
    .rental-gold .rental-gold-slide > .rental-gold-media:not(.rental-photo-missing) > img
):not(.listing-promotion-badge):not(.listing-promotion-logo):not([src*="logo" i]):not([src*="placeholder" i]) {
  display:block;
  object-fit:cover!important;
  object-position:center;
}

/* Put the photo behind the existing favorite/count controls. Taking only the
   main photo out of flow prevents its source dimensions from inflating a row.
   The existing media rail / copy still determines the responsive card height. */
:is(.car-card > .car-image-wrap,
    .public-car-card > .public-car-media,
    .showroom-card > .showroom-card-image,
    .office-directory-card > .office-photo,
    #publicSectionScreen .parts-item-photo,
    .section-listing-card-main > .section-listing-card-media,
    .public-favorites .favorite-record-main > .favorite-record-media,
    .approval-card > .approval-thumbnail,
    .section-record-card > .section-record-thumbnail) {
  position:relative;
  overflow:hidden;
}
:is(.car-card > .car-image-wrap > img,
    .public-car-card > .public-car-media > img,
    .showroom-card > .showroom-card-image > img,
    .office-directory-card > .office-photo > img,
    #publicSectionScreen .parts-item-photo > img,
    .section-listing-card-main > .section-listing-card-media > img,
    .public-favorites .favorite-record-main > .favorite-record-media > img,
    .approval-card > .approval-thumbnail > img,
    .section-record-card > .section-record-thumbnail > img
):not([src*="logo" i]):not([src*="placeholder" i]) {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:0;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border-radius:0;
}

/* Rental marketplace and office inventory use the same card. Stretch its
   photo rail to the copy, removing the old inset without touching the branded
   no-photo state or its logo. The minimum heights remain owned by rentals.css. */
.rental-card.rental-vehicle-card:has(> .rental-card-media > .rental-photo-link:not(.rental-photo-missing) > img:not([src*="logo" i]):not([src*="placeholder" i])) {
  align-items:stretch;
}
.rental-vehicle-card > .rental-card-media:has(> .rental-photo-link:not(.rental-photo-missing) > img:not([src*="logo" i]):not([src*="placeholder" i])) {
  align-self:stretch;
  aspect-ratio:auto;
  margin:0;
  border-radius:0;
}
.rental-vehicle-card > .rental-card-media > .rental-photo-link:not(.rental-photo-missing):has(> img:not([src*="logo" i]):not([src*="placeholder" i])) {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.rental-vehicle-card > .rental-card-media > .rental-photo-link:not(.rental-photo-missing) > img:not([src*="logo" i]):not([src*="placeholder" i]) {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-height:none;
  margin:0;
  padding:0;
}

/* Inset secondary cards keep all copy, action and hit-target spacing. Extend
   just the photo rail through its existing padding to the rounded card edge.
   Physical-left media stays physical-left in English, Sorani and Arabic. */
#publicSectionScreen .parts-item-photo:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) {
  --card-media-inset:8px;
  --card-media-width:80px;
  flex-basis:calc(var(--card-media-width) + var(--card-media-inset));
  width:calc(var(--card-media-width) + var(--card-media-inset));
  height:auto;
  min-height:calc(var(--card-media-width) + 2 * var(--card-media-inset));
  align-self:stretch;
  margin:calc(-1 * var(--card-media-inset)) 0 calc(-1 * var(--card-media-inset)) calc(-1 * var(--card-media-inset));
  border-radius:10px 0 0 10px;
}
.section-listing-card-main > .section-listing-card-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])),
.public-favorites .favorite-record-main > .favorite-record-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) {
  --card-media-inset:7px;
  width:calc(100% + var(--card-media-inset));
  margin:calc(-1 * var(--card-media-inset)) 0 calc(-1 * var(--card-media-inset)) calc(-1 * var(--card-media-inset));
  border-radius:12px 0 0 12px;
}
.section-listing-card-main > .section-listing-card-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:96px; }
.public-favorites .favorite-record-main > .favorite-record-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:92px; }

/* Related inventory has no wrapper around its photo. Stretch that flex item
   through the existing vertical inset, leaving the detail gallery untouched. */
.post-inventory-card > .post-inventory-item > img:not([src*="logo" i]):not([src*="placeholder" i]) {
  align-self:stretch;
  height:auto;
  min-height:86px;
  margin:-10px 0;
}

/* My Account / Business inventory: only direct listing photos, never editor
   previews or profile images. The original rails and action rows are retained. */
.account-listing-card > .account-listing-image:not([src*="logo" i]):not([src*="placeholder" i]) {
  width:calc(100% + 8px);
  height:calc(100% + 16px);
  min-height:94px;
  aspect-ratio:82 / 78;
  margin-block:-8px;
  margin-inline:-8px 0;
  border-radius:0;
  border-start-start-radius:12px;
}
.inventory-card > img:not([src*="logo" i]):not([src*="placeholder" i]) {
  width:100%;
  height:100%;
  min-height:150px;
  aspect-ratio:140 / 150;
}

/* Admin card rails only. The review/fullscreen media strips remain contain.
   Card text and authorized controls retain all their existing spacing. */
.approval-card > .approval-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])),
.section-record-card > .section-record-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) {
  --card-media-inset:12px;
  --card-media-block-inset:12px;
  align-self:stretch;
  width:calc(100% + var(--card-media-inset));
  height:auto;
  min-height:100px;
  margin:calc(-1 * var(--card-media-block-inset)) 0 calc(-1 * var(--card-media-block-inset)) calc(-1 * var(--card-media-inset));
  border-radius:11px 0 0 11px;
}
.section-record-card > .section-record-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { --card-media-block-inset:11px; }
.admin-management-card .record-heading > .record-cover:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { padding:0; }

@media(max-width:700px) {
  .inventory-card > img:not([src*="logo" i]):not([src*="placeholder" i]) { min-height:160px; aspect-ratio:110 / 160; }
}
@media(max-width:760px) {
  .approval-card > .approval-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])),
  .section-record-card > .section-record-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) {
    --card-media-inset:10px;
    --card-media-block-inset:10px;
  }
  .approval-card > .approval-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:86px; }
  .section-record-card > .section-record-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:92px; }
}
@media(max-width:380px) {
  .post-inventory-card > .post-inventory-item > img:not([src*="logo" i]):not([src*="placeholder" i]) { min-height:76px; margin:-8px 0; }
  .section-record-card > .section-record-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { --card-media-inset:9px; --card-media-block-inset:9px; min-height:83px; }
}
@media(max-width:370px) {
  .account-listing-card > .account-listing-image:not([src*="logo" i]):not([src*="placeholder" i]) { min-height:84px; aspect-ratio:1; }
}
@media(max-width:360px) {
  #publicSectionScreen .parts-item-photo:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { --card-media-inset:7px; --card-media-width:72px; }
  .section-listing-card-main > .section-listing-card-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])),
  .public-favorites .favorite-record-main > .favorite-record-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { --card-media-inset:6px; }
  .section-listing-card-main > .section-listing-card-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:86px; }
  .public-favorites .favorite-record-main > .favorite-record-media:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:84px; }
  .approval-card > .approval-thumbnail:has(> img:not([src*="logo" i]):not([src*="placeholder" i])) { min-height:80px; }
}
