/**
 * Site-wide media fill — prevent black/white letterbox bars when images
 * don't match the frame aspect ratio.
 *
 * Policy: media frames use overflow:hidden + object-fit:cover (+ slight bleed).
 * Opt out with .mns-media-contain on the <img> (logos, icons, store marks).
 */

:root {
  --mns-media-object-fit: cover;
  --mns-media-object-position: center center;
  --mns-media-bleed-scale: 1.02;
}

/* ---- Shared fill utility ---- */
.mns-media-frame {
  position: relative;
  overflow: hidden;
}

.mns-media-frame > img,
.mns-media-fill {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: var(--mns-media-object-fit);
  object-position: var(--mns-media-object-position);
}

/* ---- Product cards ---- */
.mns-product-card__media,
.mns-product-card__hover-overlay {
  overflow: hidden;
}

.mns-product-card__image {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: var(--mns-media-object-fit) !important;
  object-position: var(--mns-media-object-position);
  /* Prefer card-local bleed (1 for contain art); do not fall back to root 1.02. */
  transform: scale(var(--mns-product-card-image-bleed-scale, 1));
  transform-origin: center center;
}

/* Hover field images cover the full card (see --full-hover); default product art stays contain. */
.mns-product-card--full-hover .mns-product-card__hover-overlay img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: var(--mns-media-object-position);
  transform: scale(var(--mns-media-bleed-scale, var(--mns-product-card-image-bleed-scale, 1.02)));
}

/* Variant chips stay icon-like but still fill chip box without bars */
.mns-product-card__variant-chip {
  overflow: hidden;
}

.mns-product-card__variant-chip img {
  width: 100%;
  height: 100%;
  object-fit: var(--mns-media-object-fit) !important;
  object-position: var(--mns-media-object-position);
  transform: scale(var(--mns-media-bleed-scale));
}

/* ---- Home classification / blog / news ---- */
.mns-classification-card-image,
.mns-blog-guide-card {
  overflow: hidden;
}

.mns-classification-card-image img,
.mns-blog-guide-image {
  width: 100%;
  height: 100%;
  object-fit: var(--mns-media-object-fit) !important;
  object-position: var(--mns-media-object-position);
}

.mns-product-classifications-section[data-mns-product-lineup] .mns-classification-card-image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  transform: none;
}

/* ---- Product index tiles ---- */
.mns-product-tile__media {
  overflow: hidden;
}

.mns-product-tile__media img {
  width: 100%;
  height: 100%;
  object-fit: var(--mns-media-object-fit) !important;
  object-position: var(--mns-media-object-position);
  transform: scale(var(--mns-media-bleed-scale, var(--mns-product-tile-image-bleed-scale, 1.02)));
}

/* ---- Product detail / core / main visual frames ---- */
.mns-product-core__media,
.mns-main-visual__slide,
.mns-main-visual__thumbs button,
.mns-feature-card,
.mns-media-text__visual,
.mns-media-text__default-visual,
/* purchase visual：产品整机 contain，不走 cover 帧裁切（见下方专规） */
.mns-pd-package-visual,
.mns-pd-scene-visual-card,
.mns-pd-visual-card,
.mns-pd-bento-card,
.mns-pd-main-visual-embla,
[data-main-visual-embla],
.mns-pd-main-visual-media,
.mns-purchase-cta__visual {
  overflow: hidden;
}

.mns-product-core__image,
.mns-main-visual__image,
.mns-main-visual__thumb,
.mns-feature-card__image,
.mns-media-text__visual > .mns-pd-image,
.mns-media-text__default-visual > .mns-pd-image,
.mns-pd-package-visual .mns-pd-image,
.mns-pd-scene-visual-card__image,
.mns-pd-visual-card img,
.mns-pd-bento-card img,
.mns-pd-main-visual-media,
.mns-product-detail-page section.mns-pd-package-section .mns-pd-package-visual .mns-pd-image {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: var(--mns-media-object-fit) !important;
  object-position: var(--mns-media-object-position);
}

/* Purchase CTA product shot: 1:1 frame, image scales proportionally (contain) */
.mns-pd-purchase-visual,
.mns-product-detail-page .mns-pd-purchase-visual {
  --mns-media-object-fit: contain;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.mns-pd-purchase-visual .mns-pd-image,
.mns-pd-purchase-visual img,
.mns-product-detail-page .mns-pd-purchase-visual .mns-pd-image,
.mns-product-detail-page .mns-pd-purchase-visual img {
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center;
  transform: none !important;
}

/* Product MV: respect contain / cover modifiers (do not force cover). */
.mns-pd-main-visual-media--contain,
.mns-product-detail-page .mns-pd-main-visual-media--contain {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
  object-position: center center;
  transform: none;
}

/* Comparison product shots: full product body, never crop */
.mns-pd-pair-product-media,
.mns-product-detail-page .mns-pd-pair-product-media {
  overflow: hidden;
}
.mns-pd-pair-product-media-image,
.mns-product-detail-page .mns-pd-pair-product-media-image {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain !important;
  object-position: center center;
  transform: none !important;
}

.mns-pd-main-visual-media--cover,
.mns-product-detail-page .mns-pd-main-visual-media--cover {
  object-fit: cover !important;
  object-position: center center;
}

/* Align product-detail token with site policy */
.mns-product-detail-page {
  --pd-media-object-fit: var(--mns-media-object-fit);
}

/* ---- Archive / foundation / site pages ---- */
.mns-archive-card__media-link,
.mns-archive-card__placeholder,
.mns-article-page__thumb,
.mns-foundation-mv__media,
.mns-foundation-mv__bg,
.mns-sp-map {
  overflow: hidden;
}

.mns-archive-card__image,
.mns-article-page__thumb img,
.mns-foundation-mv__image,
.mns-foundation-mv__bg-image {
  width: 100%;
  height: 100%;
  object-fit: var(--mns-media-object-fit) !important;
  object-position: var(--mns-media-object-position);
}

/* Home hero already cover; reinforce */
.mns-home-hero__picture img {
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: var(--mns-media-object-position);
}

/* ---- Explicit opt-out: logos / icons / store marks ---- */
.mns-brand__image,
.mns-footer__logo,
.mns-manual-icon,
.mns-manual-cat-icon,
.mns-purchase-store img,
.mns-store-logo,
img.mns-media-contain,
.mns-media-contain {
  object-fit: contain !important;
  object-position: center center;
  transform: none !important;
  max-width: 100%;
  height: auto;
}

/* Footer wordmark must stay compact — size tokens live on .mns-footer. */
.mns-footer__logo {
  width: auto !important;
  max-width: var(--mns-footer-logo-max-w, 160px) !important;
  height: var(--mns-footer-logo-h, 17px) !important;
  max-height: var(--mns-footer-logo-h, 17px) !important;
}
