/*
 * ZM media contract
 * -----------------
 * Authoritative geometry for images rendered inside Mniejszościowi components.
 * This file is intentionally enqueued late so theme/Elementor generic img rules
 * cannot restore intrinsic/auto sizing inside controlled media frames.
 * Free-flowing images inside article content, logos and icons are excluded.
 */

/* Base framed media ------------------------------------------------------- */
.zmw-article-card__media,
.zmw-guide-card__media,
.zmw-resource-card__media,
.zmw-hero__media,
.zmw-text-media__media,
.zmw-video__player,
.zmw-video__thumb-visual,
.zmw-article-template__featured-wrap,
.zmw-category-template__lead-media,
.zmw-category-template__pick-lead-media,
.zmw-category-template__pick-media,
.zmw-category-template__cta-media,
.zmw-offer-page__hero-media,
.zmw-offer-page__article-image,
.zmw-author-box__photo,
.zmw-author-page__photo {
  min-width: 0;
  overflow: hidden;
}

/* Default ratios --------------------------------------------------------- */
.zmw-article-card__media,
.zmw-guide-card__media,
.zmw-resource-card__media,
.zmw-offer-page__article-image {
  aspect-ratio: 16 / 10 !important;
}

.zmw-article-card--compact .zmw-article-card__media,
.zmw-author-box__photo,
.zmw-author-page__photo {
  aspect-ratio: 1 / 1 !important;
}

.zmw-hero__media,
.zmw-video__player,
.zmw-video__thumb-visual,
.zmw-article-template__featured-wrap,
.zmw-article-template__related .zmw-article-card--related-horizontal .zmw-article-card__media,
.zmw-category-template__lead-media {
  aspect-ratio: 16 / 9 !important;
}

.zmw-text-media__media,
.zmw-category-template__pick-media {
  aspect-ratio: 4 / 3 !important;
}

.zmw-category-template__pick-lead-media,
.zmw-category-template__cta-media {
  aspect-ratio: 16 / 10 !important;
}

/* Homepage-specific visual contract. */
body.home .zmw-articles--hero-stack .zmw-article-card:first-child .zmw-article-card__media,
body.home .zmw-article-card--featured .zmw-article-card__media,
body.home .zmw-guide-card__media,
body.home .zmw-resource-card__media,
body.home .zmw-video__player,
body.home .zmw-video__thumb-visual {
  aspect-ratio: 16 / 9 !important;
}

/* Offer hero is intentionally portrait on desktop. */
.zmw-offer-page__hero-media {
  aspect-ratio: 4 / 5 !important;
}

/* Every attachment inside a controlled frame must fill the frame. -------- */
.zmw-article-card__media > img.zmw-article-card__image,
.zmw-guide-card__media > img.zmw-guide-card__image,
.zmw-guide-card__media > img,
.zmw-resource-card__media > img.zmw-resource-card__image,
.zmw-resource-card__media > img,
.zmw-hero__media > img.zmw-hero__image,
.zmw-text-media__media > img.zmw-text-media__image,
.zmw-text-media__media > img,
.zmw-video__player > img.zmw-video__poster,
.zmw-video__thumb-visual > img.zmw-video__thumb-image,
.zmw-video__thumb-visual > img,
.zmw-article-template__featured-wrap > img.zmw-article-template__featured,
.zmw-category-template__lead-media > img.zmw-category-template__lead-image,
.zmw-category-template__pick-lead-media > img.zmw-category-template__pick-lead-image,
.zmw-category-template__pick-lead-media > img,
.zmw-category-template__pick-media > img.zmw-category-template__pick-image,
.zmw-category-template__pick-media > img,
.zmw-category-template__cta-media > img.zmw-category-template__cta-image,
.zmw-category-template__cta-media > img,
.zmw-offer-page__hero-media > img.zmw-offer-page__hero-image,
.zmw-offer-page__article-image > img.zmw-offer-page__article-thumb,
.zmw-offer-page__article-image > img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Author portraits use a square 1:1 UI contract. Source files are expected
   to be square (recommended 720x720 or larger), so cover fills the frame without bars. */
.zmw-author-box__photo > img.zmw-author-box__image,
.zmw-author-box__photo > img,
.zmw-author-page__photo > img.zmw-author-page__image,
.zmw-author-page__photo > img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* Iframes are also bound to the video frame. */
.zmw-video__player > iframe {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
}

/* Responsive offer hero geometry. */
@media (max-width: 65.625rem) {
  .zmw-offer-page__hero-media {
    aspect-ratio: 16 / 9 !important;
  }
}

@media (max-width: 40.625rem) {
  /* The note is normal-flow content below the image on phones, therefore the
     wrapper cannot be clipped. The image itself owns the 4:3 crop. */
  .zmw-offer-page__hero-media {
    aspect-ratio: auto !important;
    overflow: visible !important;
  }

  .zmw-offer-page__hero-media > img.zmw-offer-page__hero-image {
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}
