/* 商城页面样式 */
.v13-cat-scroll {
    white-space: nowrap;
    margin: 6px 0 12px;
    padding-left: 15px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.v13-cat-row {
    display: inline-flex;
    gap: 9px;
    padding-right: 15px;
}

.v13-cat {
    height: 35px;
    min-width: 75px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.86);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    box-shadow: inset 0 0 0 1px #fff, 0 4px 10px rgba(80, 130, 190, 0.13);
    padding: 0 10px;
    color: #111827;
    cursor: pointer;
    transition: all 0.3s;
}

.v13-cat.on {
    background: linear-gradient(135deg, #56bdff, #0b63ff);
    color: #fff;
}

.v13-cat-icon {
    width: 18px;
    height: 18px;
    margin-right: 5px;
}

/* JH_MALL_PAGE_AD_CONFIG_V1 */
.jh-mall-banner{position:relative;margin:12px 15px 10px;min-height:110px;border-radius:15px;overflow:hidden;background:linear-gradient(135deg,#e5f7ff,#fff);box-shadow:0 9px 24px rgba(31,114,255,.14);cursor:pointer;}
.jh-mall-top{min-height:121px;margin-top:12px;}
.jh-mall-middle{min-height:95px;}
.jh-mall-banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.jh-mall-banner-mask{position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.92),rgba(255,255,255,.42),rgba(255,255,255,.04));}
.jh-mall-banner-copy{position:relative;z-index:2;max-width:230px;padding:17px 15px;box-sizing:border-box;}
.jh-mall-banner-title{font-size:21px;font-weight:950;color:#1268e8;line-height:1.12;}
.jh-mall-banner-sub{margin-top:6px;font-size:12px;color:#44566c;line-height:1.45;}
.jh-mall-ad{position:relative;margin:0 15px 11px;min-height:68px;border-radius:13px;overflow:hidden;background:linear-gradient(135deg,#dff6ff,#fff7df);box-shadow:0 7px 19px rgba(255,166,32,.14);cursor:pointer;}
.jh-mall-ad .jh-mall-banner-copy{padding:12px 13px;}
.jh-mall-ad .jh-mall-banner-title{font-size:17px;}
.jh-mall-ad .jh-mall-banner-sub{font-size:11px;}
.jh-mall-ad .jh-mall-banner-img{object-fit:cover;}


/* JH_PRODUCT_DETAIL_MEDIA_SYNC_V1：H5 商品详情媒体配置弹层 */
.jh-product-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:flex-end;justify-content:center}.jh-product-mask{position:absolute;inset:0;background:rgba(7,26,50,.38);backdrop-filter:blur(8px)}.jh-product-panel{position:relative;z-index:2;width:min(430px,100%);max-height:88vh;overflow:auto;border-radius:30px 30px 0 0;background:linear-gradient(180deg,rgba(244,251,255,.98),#fff);box-shadow:0 -24px 70px rgba(20,72,128,.24);padding:18px 18px 30px;box-sizing:border-box}.jh-product-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.jh-product-title{font-size:20px;font-weight:900;color:#0b4aa2}.jh-product-title.small{font-size:18px;color:#101828}.jh-product-sub{margin-top:5px;font-size:13px;color:#667085;line-height:1.5}.jh-product-close{width:34px;height:34px;border:none;border-radius:50%;background:rgba(255,255,255,.88);box-shadow:0 8px 20px rgba(80,130,190,.16);font-size:24px;color:#344054}.jh-h5-bgm{position:sticky;top:0;z-index:3;height:34px;border:none;border-radius:999px;padding:0 14px;background:linear-gradient(135deg,#59c5ff,#0b64ff);color:#fff;font-weight:900;box-shadow:0 10px 22px rgba(20,104,255,.22)}.jh-h5-video{width:100%;height:210px;border-radius:22px;display:block;background:#000;object-fit:cover;margin-bottom:12px}.jh-h5-imgbox{border-radius:24px;overflow:hidden;background:rgba(255,255,255,.82);box-shadow:0 14px 32px rgba(80,130,190,.13)}.jh-h5-imgbox img{width:100%;max-height:320px;object-fit:contain;display:block}.jh-h5-info{margin-top:14px;border-radius:22px;background:rgba(255,255,255,.86);box-shadow:0 14px 32px rgba(80,130,190,.12);padding:16px}.jh-h5-buy{margin-top:12px;width:100%;height:44px;border:none;border-radius:999px;background:linear-gradient(135deg,#59c5ff,#0b64ff);color:#fff;font-weight:900;font-size:15px}.jh-h5-detail{margin-top:14px;border-radius:22px;overflow:hidden;background:#fff}.jh-h5-detail img{width:100%;display:block}

/* JH_PRODUCT_DETAIL_CONTINUOUS_IMAGES_V1：H5 商品详情图连续一体化，避免多张图分段显示。 */
.jh-h5-detail{margin-top:14px!important;border-radius:22px!important;overflow:hidden!important;background:#fff!important;padding:0!important;line-height:0!important;}
.jh-h5-detail img{width:100%!important;display:block!important;margin:0!important;border:0!important;border-radius:0!important;vertical-align:top!important;}

/* JH_BANNER_CLEAN_SHINE_V1 商城页 Banner 干净图 + 微光扫过 */
.jh-mall-banner,
.jh-mall-top-banner,
.jh-mall-middle-banner,
.jh-mall-ad-image{
  position:relative!important;
  overflow:hidden!important;
}
.jh-mall-banner-mask,
.jh-mall-banner-copy,
.jh-mall-banner-title,
.jh-mall-banner-sub{
  display:none!important;
}
.jh-mall-banner-img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.jh-banner-shine-v1{
  position:absolute!important;
  inset:-60%!important;
  pointer-events:none!important;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.72) 48%,rgba(255,255,255,.22) 55%,transparent 68%)!important;
  transform:translateX(-65%) rotate(8deg)!important;
  animation:jhBannerShineV1 3.2s ease-in-out infinite!important;
}
@keyframes jhBannerShineV1{
  0%{transform:translateX(-70%) rotate(8deg);opacity:0}
  18%{opacity:.85}
  52%{transform:translateX(70%) rotate(8deg);opacity:.72}
  100%{transform:translateX(86%) rotate(8deg);opacity:0}
}


/* JH_BANNER_CLEAN_SHINE_V1_MALL_CSS_FIX */
.jh-mall-banner-sub,
.jh-mall-banner-title,
.jh-mall-banner-copy,
.jh-mall-banner-mask,
.jh-mall-ad-title,
.jh-mall-ad-sub,
.jh-mall-ad-copy,
.jh-mall-ad-mask{display:none!important;}

/* JH19_SUBSCRIPTION_PRODUCT_MODE_V1_START */
.jh19-h5-free{display:inline-flex!important;align-items:center;justify-content:center;padding:6px 12px!important;border-radius:999px!important;background:linear-gradient(135deg,#e9fff6,#ffffff)!important;border:1px solid rgba(14,180,120,.22)!important;color:#0f8a5f!important;font-weight:900!important;font-size:16px!important;box-shadow:0 8px 20px rgba(0,150,100,.10)!important;}
.jh19-h5-service{margin-top:8px;padding:9px 10px;border-radius:12px;background:#fff7e6;color:#8a5d00;font-size:13px;line-height:1.5;}
.jh19-h5-barrage{margin:8px 0 12px;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.88);box-shadow:0 10px 25px rgba(30,100,180,.12);border:1px solid rgba(160,205,255,.55);font-size:13px;color:#24405f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jh19-h5-claim{margin-top:14px;padding:14px;border-radius:18px;background:linear-gradient(180deg,#f7fbff,#fff);border:1px solid #dcecff;}
.jh19-h5-claim h3{margin:0 0 8px;text-align:center;color:#123861;font-size:19px}.jh19-h5-claim p{margin:0 0 12px;color:#4b6784;line-height:1.7;text-align:center}.jh19-h5-claim input,.jh19-h5-claim textarea{width:100%;box-sizing:border-box;border:1px solid #d9e9ff;background:#fff;border-radius:12px;padding:11px 12px;margin-bottom:10px;font-size:14px;color:#173a5f}.jh19-h5-claim textarea{min-height:82px;resize:vertical}.jh19-h5-agreement{padding:12px;border-radius:14px;background:#fff;border:1px solid #e3edf8;color:#334e68;font-size:13px;line-height:1.6;max-height:180px;overflow:auto}.jh19-h5-agreement b{display:block;text-align:center;margin-bottom:8px;color:#123861}.jh19-h5-agreement small{display:block;margin-top:8px;color:#8a5d00}.jh19-h5-check{display:flex;gap:8px;align-items:center;font-size:13px;color:#334e68;margin:12px 0}.jh19-h5-submit{width:100%!important;margin-top:8px!important;}
/* JH19_SUBSCRIPTION_PRODUCT_MODE_V1_END */


/* JH19_DETAIL_MODAL_SWIPER_POLISH_V1：订阅弹窗去灰框 + 按钮不变形 + 轮播图高级展示 */
.jh-mask,
.subscription-mask,
.claim-mask,
.agreement-mask,
.modal-mask,
.popup-mask{
  background:rgba(246,251,255,.34)!important;
  backdrop-filter:blur(16rpx)!important;
  -webkit-backdrop-filter:blur(16rpx)!important;
  padding:28rpx!important;
  align-items:center!important;
  justify-content:center!important;
}
.jh-modal,
.subscription-modal,
.claim-modal,
.agreement-modal,
.modal-panel,
.popup-panel{
  width:calc(100vw - 88rpx)!important;
  max-width:650rpx!important;
  max-height:82vh!important;
  border-radius:38rpx!important;
  background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,252,255,.96))!important;
  box-shadow:0 28rpx 90rpx rgba(31,91,153,.18)!important;
  border:1rpx solid rgba(210,232,255,.92)!important;
}
.jh-actions,
.subscription-actions,
.claim-actions,
.agreement-actions,
.modal-actions{
  display:grid!important;
  grid-template-columns:1fr 1.2fr!important;
  gap:18rpx!important;
  align-items:center!important;
}
.jh-actions button,
.subscription-actions button,
.claim-actions button,
.agreement-actions button,
.modal-actions button{
  height:78rpx!important;
  line-height:78rpx!important;
  padding:0 18rpx!important;
  border-radius:999rpx!important;
  font-size:25rpx!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.jh-main-img,
.product-main-img,
.swiper-img,
.carousel-img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
}

/* JIAHE_H5_PRODUCT_UI_SOURCE_FIX_V1：商城商品卡 + 商品详情整页化源码样式 */
body.jh30-product-open {
  overflow: hidden;
}

.v13-product-grid,
#mall-product-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
  padding: 0 15px 28px !important;
  box-sizing: border-box !important;
}

.v13-product-card.jh30-product-card {
  position: relative !important;
  min-height: 0 !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 14px 34px rgba(70,130,190,.15) !important;
  padding: 0 0 14px !important;
  overflow: hidden !important;
  border: 1px solid rgba(224,238,255,.9) !important;
}

.jh30-product-img-wrap {
  position: relative !important;
  width: 100% !important;
  height: 145px !important;
  overflow: hidden !important;
  background: #fff !important;
}

.v13-product-img.jh30-product-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.jh30-free-badge,
.jh30-price-badge {
  position: absolute !important;
  left: 10px !important;
  top: 10px !important;
  z-index: 2 !important;
  height: 28px !important;
  line-height: 28px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg,#36cf8c,#20a96a) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  box-shadow: 0 8px 18px rgba(33,169,106,.22) !important;
}

.jh30-price-badge {
  background: linear-gradient(135deg,#ff8654,#ff4b2b) !important;
}

.v13-product-title.jh30-product-title {
  padding: 10px 12px 0 !important;
  min-height: 44px !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
  color: #071a33 !important;
  font-weight: 950 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.v13-buy.jh30-buy {
  width: fit-content !important;
  min-width: 88px !important;
  height: 34px !important;
  line-height: 34px !important;
  margin: 10px 12px 0 auto !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg,#56c7ff,#126bff) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 950 !important;
  text-align: center !important;
  box-shadow: 0 10px 22px rgba(18,107,255,.24) !important;
}

.jh30-product-page.jh-product-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  background: #eef8ff !important;
  display: block !important;
  overflow: hidden !important;
}

.jh30-detail-page {
  position: absolute !important;
  inset: 0 0 74px 0 !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 0 12px 18px !important;
  box-sizing: border-box !important;
  background:
    radial-gradient(circle at 15% 0%, rgba(154,219,255,.42), transparent 36%),
    linear-gradient(180deg,#eaf8ff 0%,#f8fcff 48%,#ffffff 100%) !important;
}

.jh30-detail-nav {
  position: sticky !important;
  top: 0 !important;
  z-index: 10 !important;
  height: 48px !important;
  display: grid !important;
  grid-template-columns: 44px 1fr 44px !important;
  align-items: center !important;
  background: rgba(238,248,255,.94) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  color: #126bff !important;
  font-size: 15px !important;
  font-weight: 950 !important;
  text-align: center !important;
}

.jh30-detail-nav .jh-product-close {
  width: 34px !important;
  height: 34px !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.92) !important;
  color: #126bff !important;
  font-size: 28px !important;
  line-height: 30px !important;
  box-shadow: 0 8px 18px rgba(80,130,190,.16) !important;
}

.jh30-main-image-box {
  position: relative !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: rgba(255,255,255,.9) !important;
  box-shadow: 0 16px 38px rgba(72,128,190,.13) !important;
}

.jh30-main-image {
  display: block !important;
  width: 100% !important;
  max-height: 420px !important;
  object-fit: contain !important;
  background: #fff !important;
}

.jh30-main-image + .jh30-main-image {
  margin-top: 0 !important;
}

.jh-main-shine {
  position: absolute !important;
  top: 0 !important;
  left: -90% !important;
  width: 58% !important;
  height: 100% !important;
  transform: skewX(-18deg) !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent) !important;
  animation: jh30Shine 4.8s ease-in-out infinite !important;
  pointer-events: none !important;
}

@keyframes jh30Shine {
  0%,52% { left: -90%; }
  100% { left: 140%; }
}

.jh19-h5-barrage {
  margin: 12px 0 !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  background: #fff7e8 !important;
  color: #8a5d00 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

.jh30-info-card,
.jh30-claim {
  margin-top: 12px !important;
  padding: 14px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 14px 34px rgba(72,128,190,.12) !important;
  border: 1px solid rgba(224,238,255,.9) !important;
}

.jh30-detail-title {
  font-size: 16px !important;
  font-weight: 950 !important;
  color: #071a33 !important;
  line-height: 1.35 !important;
}

.jh30-detail-sub {
  margin-top: 6px !important;
  color: #667085 !important;
  font-size: 12px !important;
  line-height: 1.55 !important;
}

.jh30-detail-price-row {
  margin-top: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.jh30-detail-free {
  height: 28px !important;
  line-height: 28px !important;
  padding: 0 13px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg,#eafff6,#ffffff) !important;
  color: #159263 !important;
  font-weight: 950 !important;
  border: 1px solid rgba(44,190,126,.18) !important;
}

.jh30-detail-sales {
  color: #7a8da3 !important;
  font-size: 12px !important;
}

.jh30-detail-images {
  margin-top: 12px !important;
  border-radius: 18px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: 0 14px 34px rgba(72,128,190,.12) !important;
}

.jh30-section-title {
  padding: 13px 14px 10px !important;
  color: #071a33 !important;
  font-size: 15px !important;
  font-weight: 950 !important;
}

.jh30-detail-images img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.jh30-bottom-bar {
  position: fixed !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 100000 !important;
  height: 74px !important;
  padding: 8px 14px 16px !important;
  box-sizing: border-box !important;
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 -12px 34px rgba(72,128,190,.16) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.jh30-bottom-label {
  color: #7a8da3 !important;
  font-size: 11px !important;
}

.jh30-bottom-price {
  margin-top: 2px !important;
  color: #ff4b2b !important;
  font-size: 18px !important;
  font-weight: 950 !important;
}

.jh30-bottom-buy {
  width: 116px !important;
  height: 38px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg,#58c9ff,#126bff) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 950 !important;
  box-shadow: 0 10px 24px rgba(18,107,255,.24) !important;
}

.jh30-claim input,
.jh30-claim textarea {
  width: 100% !important;
  box-sizing: border-box !important;
  border: 1px solid #d9e9ff !important;
  background: #fff !important;
  border-radius: 12px !important;
  padding: 11px 12px !important;
  margin-bottom: 10px !important;
  font-size: 14px !important;
  color: #173a5f !important;
}

.jh30-claim textarea {
  min-height: 82px !important;
}

.jh30-detail-bottom-space {
  height: 16px !important;
}


/* JIAHE_H5_PRODUCT_MAIN_CAROUSEL_FIX_V1：商品详情主图恢复真实轮播 */
.jh30-main-image-box.jh30-carousel {
  position: relative !important;
  height: 390px !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.96) !important;
}

.jh30-carousel-track {
  width: 100% !important;
  height: 100% !important;
  display: flex !important;
  transition: transform .38s ease !important;
  will-change: transform !important;
}

.jh30-carousel-slide {
  flex: 0 0 100% !important;
  width: 100% !important;
  height: 100% !important;
  position: relative !important;
  overflow: hidden !important;
  background: #fff !important;
}

.jh30-carousel-slide .jh30-main-image {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  display: block !important;
}

.jh30-carousel-dots {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 10px !important;
  z-index: 5 !important;
  display: flex !important;
  justify-content: center !important;
  gap: 6px !important;
  pointer-events: auto !important;
}

.jh30-carousel-dot {
  width: 7px !important;
  height: 7px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.72) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.16) !important;
}

.jh30-carousel-dot.active {
  width: 18px !important;
  background: linear-gradient(135deg,#58c9ff,#126bff) !important;
}

@media (max-width: 560px) {
  .jh30-main-image-box.jh30-carousel {
    height: 360px !important;
  }
}


/* JIAHE_H5_CUBE_CAROUSEL_V2：商品详情主图横滑魔方翻转 */
.jh30-main-image-box.jh30-cube-carousel {
  position: relative !important;
  height: 390px !important;
  overflow: hidden !important;
  border-radius: 18px !important;
  background: #ffffff !important;
  perspective: 1100px !important;
  transform-style: preserve-3d !important;
  box-shadow: 0 16px 38px rgba(72,128,190,.13) !important;
}

.jh30-carousel-stage {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  perspective: 1100px !important;
  transform-style: preserve-3d !important;
  overflow: hidden !important;
  border-radius: inherit !important;
  background: #ffffff !important;
}

.jh30-cube-track {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  transform-style: preserve-3d !important;
  transform: none !important;
  display: block !important;
}

.jh30-cube-face,
.jh30-carousel-slide.jh30-cube-face {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  flex: none !important;
  backface-visibility: hidden !important;
  -webkit-backface-visibility: hidden !important;
  transform-style: preserve-3d !important;
  will-change: transform, opacity !important;
  opacity: 0 !important;
  border-radius: inherit !important;
  overflow: hidden !important;
  background: #ffffff !important;
}

.jh30-cube-face.active {
  opacity: 1 !important;
  z-index: 3 !important;
}

.jh30-cube-face.next,
.jh30-cube-face.prev {
  opacity: 1 !important;
  z-index: 2 !important;
}

.jh30-cube-face .jh30-main-image {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
  object-fit: cover !important;
  display: block !important;
  transform: translateZ(1px) !important;
}

.jh30-cube-carousel .jh-main-shine {
  z-index: 7 !important;
}

.jh30-cube-dots,
.jh30-cube-carousel .jh30-carousel-dots {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 10px !important;
  z-index: 8 !important;
  display: flex !important;
  justify-content: center !important;
  gap: 6px !important;
}

.jh30-cube-carousel .jh30-carousel-dot {
  width: 7px !important;
  height: 7px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.75) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.18) !important;
}

.jh30-cube-carousel .jh30-carousel-dot.active {
  width: 18px !important;
  background: linear-gradient(135deg,#58c9ff,#126bff) !important;
}

@media (max-width: 560px) {
  .jh30-main-image-box.jh30-cube-carousel {
    height: 360px !important;
  }
}


/* JIAHE_H5_MALL_CARD_INTERNATIONAL_UI_V1：商品卡角标/按钮高级化 */
.v13-product-card.jh30-product-card {
  border-radius: 20px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(248,252,255,.94)) !important;
  border: 1px solid rgba(215,234,255,.88) !important;
  box-shadow: 0 16px 36px rgba(28, 104, 178, .12) !important;
}

.jh30-product-img-wrap {
  border-radius: 16px 16px 10px 10px !important;
  background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
}

.jh30-free-badge,
.jh30-price-badge {
  left: 8px !important;
  top: 8px !important;
  height: 24px !important;
  line-height: 24px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  letter-spacing: .2px !important;
  color: #0b67d8 !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(229,244,255,.88)) !important;
  border: 1px solid rgba(91, 178, 255, .38) !important;
  box-shadow:
    0 8px 18px rgba(40, 130, 210, .12),
    inset 0 1px 0 rgba(255,255,255,.95) !important;
  backdrop-filter: blur(10px) saturate(135%) !important;
  -webkit-backdrop-filter: blur(10px) saturate(135%) !important;
}

.jh30-free-badge::before,
.jh30-price-badge::before {
  content: "" !important;
  display: inline-block !important;
  width: 5px !important;
  height: 5px !important;
  margin-right: 5px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #61d7ff, #146dff) !important;
  vertical-align: 1px !important;
  box-shadow: 0 0 8px rgba(20,109,255,.32) !important;
}

.jh30-price-badge {
  color: #c26900 !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,244,225,.9)) !important;
  border-color: rgba(255, 188, 88, .42) !important;
}

.jh30-price-badge::before {
  background: linear-gradient(135deg, #ffd36c, #ff8c2a) !important;
}

.v13-product-title.jh30-product-title {
  padding: 9px 11px 0 !important;
  min-height: 40px !important;
  font-size: 15px !important;
  line-height: 1.28 !important;
  color: #10243f !important;
  font-weight: 900 !important;
}

.v13-buy.jh30-buy {
  position: relative !important;
  min-width: 76px !important;
  height: 30px !important;
  line-height: 30px !important;
  margin: 8px 10px 0 auto !important;
  padding: 0 13px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .1px !important;
  color: #ffffff !important;
  background:
    linear-gradient(135deg, #68d4ff 0%, #2389ff 46%, #075fff 100%) !important;
  box-shadow:
    0 10px 20px rgba(28, 117, 255, .20),
    inset 0 1px 0 rgba(255,255,255,.38) !important;
  overflow: hidden !important;
  transform: translateZ(0) !important;
}

.v13-buy.jh30-buy::before {
  content: "" !important;
  position: absolute !important;
  inset: 1px !important;
  border-radius: inherit !important;
  background: linear-gradient(180deg, rgba(255,255,255,.26), rgba(255,255,255,0) 58%) !important;
  pointer-events: none !important;
}

.v13-buy.jh30-buy::after {
  content: "" !important;
  position: absolute !important;
  top: -35% !important;
  left: -45% !important;
  width: 38% !important;
  height: 170% !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent) !important;
  animation: jhMallBtnShineV1 3.8s ease-in-out infinite !important;
  pointer-events: none !important;
}

@keyframes jhMallBtnShineV1 {
  0%, 58% { left: -45%; opacity: 0; }
  72% { opacity: .78; }
  100% { left: 122%; opacity: 0; }
}


/* JIAHE_H5_MALL_CARD_INTERNATIONAL_UI_V1B：修复 V1 角标/按钮过小过挤 */
.v13-product-card.jh30-product-card {
  padding: 0 0 12px !important;
  border-radius: 20px !important;
  overflow: hidden !important;
}

.jh30-product-img-wrap {
  height: 152px !important;
  border-radius: 18px 18px 12px 12px !important;
  overflow: hidden !important;
}

.jh30-free-badge,
.jh30-price-badge {
  left: 9px !important;
  top: 9px !important;
  height: 25px !important;
  line-height: 25px !important;
  padding: 0 11px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, rgba(55, 196, 255, .96), rgba(17, 108, 255, .96)) !important;
  border: 1px solid rgba(255,255,255,.66) !important;
  box-shadow: 0 8px 18px rgba(17,108,255,.20), inset 0 1px 0 rgba(255,255,255,.35) !important;
  backdrop-filter: blur(8px) saturate(145%) !important;
  -webkit-backdrop-filter: blur(8px) saturate(145%) !important;
}

.jh30-free-badge::before,
.jh30-price-badge::before {
  content: "" !important;
  display: inline-block !important;
  width: 5px !important;
  height: 5px !important;
  margin-right: 5px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.95) !important;
  box-shadow: 0 0 8px rgba(255,255,255,.62) !important;
  vertical-align: 1px !important;
}

.v13-product-title.jh30-product-title {
  padding: 9px 11px 0 !important;
  min-height: 38px !important;
  font-size: 14px !important;
  line-height: 1.28 !important;
  color: #10243f !important;
  font-weight: 900 !important;
}

.v13-buy.jh30-buy {
  position: relative !important;
  display: block !important;
  width: 82px !important;
  min-width: 82px !important;
  height: 30px !important;
  line-height: 30px !important;
  margin: 7px 10px 0 auto !important;
  padding: 0 !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  text-align: center !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, #61d2ff 0%, #238cff 48%, #0964ff 100%) !important;
  box-shadow: 0 8px 18px rgba(18,107,255,.22), inset 0 1px 0 rgba(255,255,255,.36) !important;
  overflow: hidden !important;
}

.v13-buy.jh30-buy::before {
  content: "" !important;
  position: absolute !important;
  inset: 1px !important;
  border-radius: inherit !important;
  background: linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,0) 60%) !important;
  pointer-events: none !important;
}

.v13-buy.jh30-buy::after {
  content: "" !important;
  position: absolute !important;
  top: -40% !important;
  left: -50% !important;
  width: 36% !important;
  height: 180% !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent) !important;
  animation: jhMallBtnShineV1 4.2s ease-in-out infinite !important;
  pointer-events: none !important;
}


/* JIAHE_H5_MALL_CARD_INTERNATIONAL_UI_V1C：商品卡按钮不再挤压，增强高级留白 */
.v13-product-card.jh30-product-card {
  min-height: 226px !important;
  padding: 9px 9px 12px !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,252,255,.96)) !important;
  border: 1px solid rgba(212,232,255,.9) !important;
  box-shadow: 0 18px 38px rgba(28,104,178,.12) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.jh30-product-img-wrap {
  width: 100% !important;
  height: 132px !important;
  border-radius: 17px !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75) !important;
}

.v13-product-img.jh30-product-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

.jh30-free-badge,
.jh30-price-badge {
  left: 8px !important;
  top: 8px !important;
  height: 23px !important;
  line-height: 23px !important;
  padding: 0 10px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  color: #fff !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, rgba(48,193,255,.96), rgba(21,114,255,.96)) !important;
  border: 1px solid rgba(255,255,255,.68) !important;
  box-shadow: 0 8px 16px rgba(21,114,255,.18), inset 0 1px 0 rgba(255,255,255,.38) !important;
}

.v13-product-title.jh30-product-title {
  padding: 8px 2px 0 !important;
  min-height: 42px !important;
  font-size: 14px !important;
  line-height: 1.32 !important;
  color: #0d223d !important;
  font-weight: 900 !important;
  letter-spacing: -.2px !important;
}

.v13-buy.jh30-buy {
  display: block !important;
  width: 86px !important;
  min-width: 86px !important;
  height: 31px !important;
  line-height: 31px !important;
  margin: 9px 0 0 auto !important;
  padding: 0 !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  color: #fff !important;
  text-align: center !important;
  background: linear-gradient(135deg, #65d4ff 0%, #258cff 46%, #0a63ff 100%) !important;
  box-shadow: 0 9px 18px rgba(18,107,255,.22), inset 0 1px 0 rgba(255,255,255,.36) !important;
  position: relative !important;
  overflow: hidden !important;
  transform: none !important;
}

/* 小屏预览壳内进一步防挤压 */
@media (max-width: 430px) {
  .v13-product-card.jh30-product-card {
    min-height: 218px !important;
    padding: 8px 8px 11px !important;
  }

  .jh30-product-img-wrap {
    height: 124px !important;
  }

  .v13-buy.jh30-buy {
    width: 82px !important;
    min-width: 82px !important;
    height: 30px !important;
    line-height: 30px !important;
  }
}


/* JIAHE_H5_MALL_CARD_MOBILE_BUTTON_V1D：窄屏商品卡按钮底部整行，避免挤压突兀 */
.v13-product-card.jh30-product-card {
  min-height: 218px !important;
  padding: 8px !important;
  border-radius: 22px !important;
  box-sizing: border-box !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,252,255,.96)) !important;
}

.jh30-product-img-wrap {
  height: 124px !important;
  border-radius: 17px !important;
  overflow: hidden !important;
}

.jh30-free-badge,
.jh30-price-badge {
  left: 7px !important;
  top: 7px !important;
  height: 21px !important;
  line-height: 21px !important;
  padding: 0 8px !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  color: #fff !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, rgba(43,190,255,.96), rgba(20,105,255,.96)) !important;
  border: 1px solid rgba(255,255,255,.65) !important;
  box-shadow: 0 6px 13px rgba(20,105,255,.16), inset 0 1px 0 rgba(255,255,255,.36) !important;
}

.jh30-free-badge::before,
.jh30-price-badge::before {
  width: 4px !important;
  height: 4px !important;
  margin-right: 4px !important;
}

.v13-product-title.jh30-product-title {
  padding: 8px 2px 0 !important;
  min-height: 38px !important;
  font-size: 13px !important;
  line-height: 1.28 !important;
  color: #0d223d !important;
  font-weight: 900 !important;
  text-align: left !important;
  -webkit-line-clamp: 2 !important;
}

.v13-buy.jh30-buy {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 30px !important;
  line-height: 30px !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  text-align: center !important;
  color: #fff !important;
  background: linear-gradient(135deg, #62d4ff 0%, #248bff 46%, #0a63ff 100%) !important;
  box-shadow: 0 8px 16px rgba(18,107,255,.18), inset 0 1px 0 rgba(255,255,255,.36) !important;
  position: relative !important;
  overflow: hidden !important;
}

/* 三端预览手机壳内宽度较窄时强制防挤压 */
@media (max-width: 430px) {
  .v13-product-grid,
  #mall-product-grid {
    gap: 12px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .v13-product-card.jh30-product-card {
    min-height: 212px !important;
    padding: 7px !important;
  }

  .jh30-product-img-wrap {
    height: 118px !important;
  }

  .v13-product-title.jh30-product-title {
    font-size: 12.5px !important;
    min-height: 36px !important;
  }

  .v13-buy.jh30-buy {
    height: 29px !important;
    line-height: 29px !important;
    font-size: 12px !important;
  }
}


/* JIAHE_H5_MALL_CARD_COMPACT_CTA_V1E：按钮回归右下角精品小 CTA，避免整行突兀 */
.v13-product-card.jh30-product-card {
  position: relative !important;
  min-height: 214px !important;
  padding: 8px 8px 43px !important;
  border-radius: 22px !important;
  box-sizing: border-box !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,252,255,.96)) !important;
  border: 1px solid rgba(212,232,255,.9) !important;
  box-shadow: 0 18px 38px rgba(28,104,178,.12) !important;
  overflow: hidden !important;
}

.jh30-product-img-wrap {
  height: 126px !important;
  border-radius: 17px !important;
  overflow: hidden !important;
  background: #fff !important;
}

.v13-product-title.jh30-product-title {
  padding: 8px 2px 0 !important;
  min-height: 38px !important;
  font-size: 12.8px !important;
  line-height: 1.3 !important;
  color: #0d223d !important;
  font-weight: 900 !important;
  letter-spacing: -.15px !important;
  text-align: left !important;
  -webkit-line-clamp: 2 !important;
}

.jh30-free-badge,
.jh30-price-badge {
  left: 7px !important;
  top: 7px !important;
  height: 21px !important;
  line-height: 21px !important;
  padding: 0 8px !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: linear-gradient(135deg, rgba(42,190,255,.96), rgba(20,105,255,.96)) !important;
  border: 1px solid rgba(255,255,255,.68) !important;
  box-shadow: 0 6px 13px rgba(20,105,255,.16), inset 0 1px 0 rgba(255,255,255,.36) !important;
}

.jh30-free-badge::before,
.jh30-price-badge::before {
  width: 4px !important;
  height: 4px !important;
  margin-right: 4px !important;
}

.v13-buy.jh30-buy {
  position: absolute !important;
  right: 9px !important;
  bottom: 10px !important;
  display: block !important;
  width: 74px !important;
  min-width: 74px !important;
  height: 27px !important;
  line-height: 27px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  text-align: center !important;
  color: #fff !important;
  background: linear-gradient(135deg, #67d8ff 0%, #278cff 48%, #0a63ff 100%) !important;
  box-shadow: 0 8px 16px rgba(18,107,255,.20), inset 0 1px 0 rgba(255,255,255,.36) !important;
  overflow: hidden !important;
}

.v13-buy.jh30-buy::before {
  content: "" !important;
  position: absolute !important;
  inset: 1px !important;
  border-radius: inherit !important;
  background: linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,0) 60%) !important;
  pointer-events: none !important;
}

.v13-buy.jh30-buy::after {
  content: "" !important;
  position: absolute !important;
  top: -45% !important;
  left: -55% !important;
  width: 34% !important;
  height: 190% !important;
  transform: rotate(18deg) !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent) !important;
  animation: jhMallBtnShineV1 4.2s ease-in-out infinite !important;
  pointer-events: none !important;
}

/* 三端预览窄屏专用兜底 */
@media (max-width: 430px) {
  .v13-product-card.jh30-product-card {
    min-height: 206px !important;
    padding: 7px 7px 40px !important;
  }

  .jh30-product-img-wrap {
    height: 118px !important;
  }

  .v13-product-title.jh30-product-title {
    font-size: 12.2px !important;
    min-height: 35px !important;
  }

  .v13-buy.jh30-buy {
    width: 70px !important;
    min-width: 70px !important;
    height: 26px !important;
    line-height: 26px !important;
    right: 8px !important;
    bottom: 9px !important;
    font-size: 10.5px !important;
  }
}
