/* Only campaign visuals inside the existing homepage and Flash Sales cards. */
.nos-home-art { display:block; width:100%; height:100%; min-width:0; }
.xiaomi-hub a:has(>.nos-home-art),
.ndovu-daily-row__media:has(>.nos-home-art) { text-decoration:none; }
.nos-home-art > .nos-frame,
.nos-home-art > .nos-card-poster { display:block; width:100%; height:100%; min-height:0; border-radius:0; }
.nos-home-art .nos-frame.nos-format-catalog { display:flex; flex-direction:column; aspect-ratio:auto; }
.nos-home-art .nos-visual { flex:1; min-height:0; aspect-ratio:auto; }
.nos-home-art .nos-original[hidden],
.nos-home-art [hidden] { display:none!important; }
.nos-home-art .nos-image-panel img { position:static!important; opacity:1!important; visibility:visible!important; width:var(--nos-image-scale,86%)!important; height:var(--nos-image-scale,86%)!important; max-width:100%!important; object-fit:contain!important; padding:0!important; margin:auto!important; transform:translate(var(--nos-image-x,0),var(--nos-image-y,0))!important; }
.nos-home-art .nos-art { width:100%; min-width:0; max-width:100%; border-radius:0; }
.ndovu-daily-row__media:has(.nos-home-art) { overflow:hidden; }

/* Complete generated posters: scoped to homepage campaign media only. */
.nos-home-art--generated .nos-generated-poster-frame { display:block!important; width:100%!important; height:100%!important; min-height:0!important; aspect-ratio:auto!important; background:transparent!important; padding:0!important; border:0!important; border-radius:0!important; box-shadow:none!important; }
.nos-home-art--generated img.nos-home-generated-poster { display:block!important; position:static!important; inset:auto!important; opacity:1!important; visibility:visible!important; width:100%!important; height:100%!important; max-width:100%!important; max-height:100%!important; object-fit:contain!important; object-position:center!important; padding:0!important; margin:0!important; transform:none!important; border-radius:0!important; }

/* The legacy mosaic used a shorter fixed media height. A generated square poster needs its full canvas. */
.xiaomi-hub .xiaomi-home-mosaic .xiaomi-hub-card__media:has(.nos-home-art--generated),
.xiaomi-hub .xiaomi-deal-card__media:has(.nos-home-art--generated) { display:block!important; aspect-ratio:1/1!important; height:auto!important; min-height:0!important; max-height:none!important; padding:0!important; }
.xiaomi-hub .xiaomi-home-mosaic .nos-home-art--generated img.nos-home-generated-poster,
.xiaomi-hub .xiaomi-deal-card__media .nos-home-art--generated img.nos-home-generated-poster { padding:0!important; object-fit:contain!important; }

/* Match the runtime's deliberate high-specificity card rules, only for complete generated campaign posters. */
.xiaomi-hub.xiaomi-hub .xiaomi-home-mosaic > .xiaomi-hub-card .xiaomi-hub-card__media:has(.nos-home-art--generated.nos-home-art) { aspect-ratio:1/1!important; height:auto!important; min-height:0!important; max-height:none!important; padding:0!important; }
.xiaomi-hub.xiaomi-hub .xiaomi-home-mosaic > .xiaomi-hub-card .xiaomi-hub-card__media .nos-home-art--generated img.nos-home-generated-poster { padding:0!important; object-fit:contain!important; }

/* Image-only campaign cards: the whole image remains linked to the product. */
.xiaomi-hub.xiaomi-hub .xiaomi-hub-section--campaign .xiaomi-home-mosaic > .xiaomi-hub-card:has(.nos-generated-poster-frame:not([hidden]) img[data-nos-poster-id]) { min-height:0!important; height:auto!important; gap:0!important; }
.xiaomi-hub.xiaomi-hub .xiaomi-hub-section--campaign .xiaomi-home-mosaic > .xiaomi-hub-card:has(.nos-generated-poster-frame:not([hidden]) img[data-nos-poster-id]) > .xiaomi-hub-card__body { display:none!important; }
