/*
 * 文件作用：
 *   三站统一的产品图片正方形容器规则。
 *   把所有产品图入口（详情页主图 / 缩略图 / 商品列表 / 分类页 / Quick View /
 *   首页 Featured Products / Related Products / Upsell / Cross-sell）的图片
 *   容器统一改成 1:1 正方形 + 浅灰 #fafafa 留白，图片用 object-fit: contain
 *   完整显示不裁切。
 *
 * 加载方式：
 *   - iwamed / ipetmed：pmgr-site-frontend.php 的 pmgr_sf_enqueue_assets()
 *   - lumavet：pmgr-site-frontend.php 的 pmgr_sf_lumavet_enqueue_blocksy_fixes()
 *   三站都全前台加载（不限于 single-product），确保列表 / 首页 / 分类页都生效。
 *
 * 作用域：
 *   body.woocommerce 作为顶级守门（WC 启用时才生效）。
 *
 * 不影响：
 *   - 产品视频 iframe（保持 16:9，由专项规则单独控制）
 *   - SALE / onsale 角标（沿用现有 lumavet-blocksy.css / wc.css 的定位规则）
 *   - 破图占位（沿用现有 .pmgr-img-broken 规则）
 *   - Lightbox 点击放大后的原图（不在 .ct-media-container 内）
 *   - 购物车 cart_item 小图（已有 cart.css 定义，不被本规则覆盖）
 *
 * 2026-05-27 新增。
 */

/* ────────────────────────────────────────────────────────────────────
   1. 容器：所有 .ct-media-container 内的产品图入口统一 1:1
   ──────────────────────────────────────────────────────────────────── */

/* 商品列表 / 分类页 / 首页 Featured Products / Related / Upsell */
body.woocommerce ul.products li.product figure.ct-media-container,
body.woocommerce ul.products li.product a.ct-media-container,
body.woocommerce ul.products li.product .ct-media-container,
body.woocommerce-page ul.products li.product figure.ct-media-container,
body.woocommerce-page ul.products li.product a.ct-media-container,
body.woocommerce-page ul.products li.product .ct-media-container,
/* 产品详情页主图 */
body.single-product.woocommerce .woocommerce-product-gallery figure.ct-media-container,
body.single-product.woocommerce .woocommerce-product-gallery a.ct-media-container,
body.single-product.woocommerce .woocommerce-product-gallery .ct-media-container,
/* 产品详情页缩略图栏 thumbnails (Blocksy 用 .flexy-pills 包) */
body.single-product.woocommerce .flexy-pills figure.ct-media-container,
body.single-product.woocommerce .flexy-pills a.ct-media-container,
body.single-product.woocommerce .flexy-pills .ct-media-container,
/* Quick View 弹窗 */
body.woocommerce .ct-quick-view .ct-media-container,
body.woocommerce-page .ct-quick-view .ct-media-container,
/* 通用兜底：任何 woocommerce 上下文里的 ct-media-container */
body.woocommerce .ct-product-gallery-container .ct-media-container,
body.woocommerce-page .ct-product-gallery-container .ct-media-container {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  height: auto !important;
  background: #fafafa !important;
  display: block !important;
  overflow: hidden !important;
  position: relative !important;
}

/* ────────────────────────────────────────────────────────────────────
   2. 图片：object-fit: contain 完整显示不裁切
   ──────────────────────────────────────────────────────────────────── */

body.woocommerce ul.products li.product .ct-media-container img,
body.woocommerce ul.products li.product .ct-media-container picture img,
body.woocommerce-page ul.products li.product .ct-media-container img,
body.single-product.woocommerce .woocommerce-product-gallery .ct-media-container img,
body.single-product.woocommerce .woocommerce-product-gallery .ct-media-container picture img,
body.single-product.woocommerce .flexy-pills .ct-media-container img,
body.woocommerce .ct-quick-view .ct-media-container img,
body.woocommerce-page .ct-quick-view .ct-media-container img,
body.woocommerce .ct-product-gallery-container .ct-media-container img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: transparent !important;
  /* 防止 Blocksy 用 inline aspect-ratio 撑高 img */
  aspect-ratio: auto !important;
}

/* ────────────────────────────────────────────────────────────────────
   3. 视频 iframe 例外：保持 16:9 不被压扁
   ──────────────────────────────────────────────────────────────────── */

body.woocommerce .ct-media-container iframe,
body.woocommerce-page .ct-media-container iframe {
  aspect-ratio: 16 / 9 !important;
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* ────────────────────────────────────────────────────────────────────
   4. 移除 Blocksy 默认 inline aspect-ratio 干扰
   Blocksy 在 figure 上写 style="--aspect-ratio:211/350" 之类，
   上面 !important 已覆盖，这里再加 inline style 重置保险一道
   ──────────────────────────────────────────────────────────────────── */

body.woocommerce .ct-media-container[style*="aspect-ratio"],
body.woocommerce-page .ct-media-container[style*="aspect-ratio"] {
  aspect-ratio: 1 / 1 !important;
}

/* ────────────────────────────────────────────────────────────────────
   5. SALE / onsale 角标：保持固定左上不溢出（与 lumavet-blocksy.css 同款）
   重复写一遍避免本文件单独加载时角标位置不对
   ──────────────────────────────────────────────────────────────────── */

body.woocommerce ul.products li.product .onsale,
body.woocommerce-page ul.products li.product .onsale,
body.single-product.woocommerce .onsale {
  position: absolute;
  top: 10px;
  left: 10px;
  right: auto;
  margin: 0;
  z-index: 3;
}

/* ────────────────────────────────────────────────────────────────────
   6. 破图占位：与 lumavet-blocksy.js 的 .pmgr-img-broken class 协作
   保持容器仍是 1:1 + 显示 "Image unavailable" 占位
   ──────────────────────────────────────────────────────────────────── */

body.woocommerce .pmgr-img-broken {
  aspect-ratio: 1 / 1 !important;
  width: 100% !important;
  background: #f0f0f3 !important;
}

/* ────────────────────────────────────────────────────────────────────
   7. 响应式：aspect-ratio 已自适应宽度，无需额外断点
   仅手机端微调缩略图最小尺寸，避免过小不可点击
   ──────────────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
  body.single-product.woocommerce .flexy-pills .ct-media-container {
    min-width: 60px;
  }
}
