/* Unified product card styles */
.product-card-minimal,
.single-product,
.related-card {
    width: 100%;
    position: relative;
    height: 100%;
}

.product-card-shell,
.single-product .product-card-shell,
.related-card .product-card-shell {
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 14px;
    overflow: hidden;
    height: 100%;
}

.product-card-shell:hover,
.single-product .product-card-shell:hover,
.related-card .product-card-shell:hover {
    border-color: #e3e3e3;
}

.product-card-image,
.single-product .product-image,
.related-card-image {
    width: 100%;
    height: 260px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
    border-bottom: 1px solid #f3f3f3;
}

.single-product .product-image > a,
.product-card-image > a,
.related-card-image > a,
.product-card-image a,
.related-card-image a {
    display: block;
    width: 100%;
    height: 100%;
}

.product-card-image img,
.single-product .product-image img,
.related-card-image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.product-card-info,
.single-product .product-desc,
.related-card-info {
    padding: 16px 16px 18px;
}

.product-card-title,
.single-product .product-name,
.related-card-title {
    font-size: 16px;
    line-height: 1.4;
    font-weight: 500;
    margin: 0;
    color: #2c2c2c;
    min-height: 45px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.product-card-title a,
.single-product .product-name a,
.related-card-title a {
    color: inherit;
    text-decoration: none;
}

.product-card-title a:hover,
.single-product .product-name a:hover,
.related-card-title a:hover {
    color: #111;
}

.product-card-pro,
.single-product .product-pro,
.related-card-pro {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:0 4px;
	min-height:24px;
	background:#000;
	color:#fff;
	border-radius:4px;
	font-size:12px;
	font-weight:600;
}
.related-card-free {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:0 4px;
	min-height:24px;
	background:#0CF25D;
	color:#fff;
	border-radius:4px;
	font-size:12px;
	font-weight:600;
}

.product-link {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
}

.product-hover,
.home-product-hover {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(17,17,17,.78);
    color: #fff;
    text-align: center;
    padding: 12px 10px;
    font-size: 14px;
    font-weight: 600;
    opacity: 0;
    transform: translateY(100%);
    transition: all .25s ease;
}

.product-link:hover .product-hover,
.single-product .product-image > a:hover .home-product-hover {
    opacity: 1;
    transform: translateY(0);
}

.product-popup {
    position: fixed;
    z-index: 9999;
    width: 430px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 45px rgba(0,0,0,.18);
    border: 1px solid #ececec;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s ease;
    pointer-events: none;
}

.product-popup.active { opacity: 1; visibility: visible; }
.product-popup-image { width: 100%; height: 340px; background: #fff; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.product-popup-image img { width:100%; height:100%; object-fit:contain; }
.product-popup-info { background:#f8f8f8; padding:14px 16px 16px; }
.product-popup-path { font-size:14px; color:#111; margin-bottom:10px; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.product-popup-meta { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.product-popup-pro { display:inline-flex; align-items:center; justify-content:center; background:#16a34a; color:#fff; font-size:12px; font-weight:700; border-radius:999px; padding:3px 9px; line-height:1.4; }
.product-popup-item, .product-popup-render { display:inline-flex; align-items:center; gap:6px; color:#111; font-size:14px; }
.product-popup-render img { height:16px; width:auto; }

@media (max-width: 767px) {
    .product-card-image,
    .single-product .product-image,
    .related-card-image { height: 210px; }

    .product-card-title,
    .single-product .product-name,
    .related-card-title { font-size: 14px; min-height: 40px; }

    .product-card-pro,
    .single-product .product-pro,
    .related-card-pro { font-size: 12px; }

    .product-popup { display:none; }
}


/* Layout conflict fix for legacy theme width rules */
.products-wrapper > .products-grid,
.shop-main-wrapper .products-wrapper > .products-grid,
.shop-main-wrapper .products-wrapper.products-5-column > .products-grid {
    display: grid !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

.products-wrapper > .products-grid > div,
.shop-main-wrapper .products-wrapper > .products-grid > div,
.shop-main-wrapper .products-wrapper.products-5-column > .products-grid > div {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
}