/* Apply only on UL we mark */
ul.products.sofa-catalog{
	margin-top: 12px;
}

/* Default to grid. JS will switch to list if needed */
ul.products.sofa-catalog.sofa-catalog--grid{
	display:grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}
@media (max-width: 1100px){
	ul.products.sofa-catalog.sofa-catalog--grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px){
	ul.products.sofa-catalog.sofa-catalog--grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
	ul.products.sofa-catalog.sofa-catalog--grid{ grid-template-columns: 1fr; }
}

/* List */
ul.products.sofa-catalog.sofa-catalog--list{
	display:block !important;
}
ul.products.sofa-catalog.sofa-catalog--list li.product{
	margin: 0 0 12px !important;
}

/* Neutralize theme widths */
ul.products.sofa-catalog li.product{
	float:none !important;
	width:auto !important;
	margin:0 !important;
}

/* ===== Card ===== */
ul.products.sofa-catalog .sofa-row{
	position:relative;
	overflow:hidden;

	display:grid;
	grid-template-columns: 110px 1fr 280px;
	gap: 16px;

	padding: 16px;
	border:1px solid rgba(0,0,0,.08);
	border-radius: 12px;
	background:#fff;
}
ul.products.sofa-catalog.sofa-catalog--grid .sofa-row{
	display:flex;
	flex-direction:column;
	gap: 12px;
}

/* image */
ul.products.sofa-catalog .sofa-img img{
	width:100%;
	height:auto;
	border-radius:10px;
	display:block;
}

/* title/subtitle/desc */
ul.products.sofa-catalog .sofa-title{ margin:0 0 6px; font-size:18px; line-height:1.25; }
ul.products.sofa-catalog .sofa-title a{ text-decoration:none; }
ul.products.sofa-catalog .sofa-subtitle{ font-size: 13px; opacity:.85; margin: 0 0 10px; }
ul.products.sofa-catalog .sofa-desc{ margin: 0 0 10px; opacity:.9; }
ul.products.sofa-catalog .sofa-desc p{ margin:0; }

ul.products.sofa-catalog .sofa-note{
	font-size:10px;
	margin: 10px 0;
	padding: 10px 12px;
	border-left: 3px solid rgba(0,0,0,.25);
	background: rgba(0,0,0,.03);
	border-radius: 8px;
}

/* ===== Discount ribbon (diagonal, top-right) ===== */
ul.products.sofa-catalog .sofa-badge-discount{
	position:absolute;
	top: 20px;
	right: -32px;
	transform: rotate(45deg);
	transform-origin: center;
	background:#2ecc71;
	color:#fff;
	font-size:10px;
	font-weight:800;
	padding:6px 40px;
	line-height:1.1;
	white-space:nowrap;
	text-align:center;
	box-shadow: 0 2px 10px rgba(0,0,0,.18);
	border-radius: 2px;
	pointer-events:none;
}

/* ===== Stock bullets ===== */
ul.products.sofa-catalog .sofa-stock{ margin-top: 8px; }
ul.products.sofa-catalog .sofa-stockline{
	display:flex;
	align-items:center;
	gap:12px;
	font-size:12px;
	opacity:.95;
	flex-wrap:wrap;
}
ul.products.sofa-catalog .sofa-stockmain,
ul.products.sofa-catalog .sofa-stockdist{
	display:inline-flex;
	align-items:center;
	gap:8px;
	white-space:nowrap;
}
ul.products.sofa-catalog .sofa-stockmain:before{
	content:"";
	width:8px; height:8px; border-radius:50%;
	background:#2ecc71;
	display:inline-block;
	flex:0 0 8px;
}
ul.products.sofa-catalog .sofa-row[data-instock="0"] .sofa-stockmain:before{
	background:#e74c3c;
}
ul.products.sofa-catalog .sofa-stockdist:before{
	content:"";
	width:8px; height:8px; border-radius:50%;
	background:#f39c12;
	display:inline-block;
	flex:0 0 8px;
}

/* Actions */
ul.products.sofa-catalog .sofa-actions{
	display:flex;
	flex-direction:column;
	gap:10px;
	align-items:stretch;
}

/* Make add-to-cart button full width */
ul.products.sofa-catalog .sofa-cart a.button,
ul.products.sofa-catalog .sofa-cart a.add_to_cart_button,
ul.products.sofa-catalog .sofa-cart a.product_type_variable,
ul.products.sofa-catalog .sofa-cart a.product_type_grouped,
ul.products.sofa-catalog .sofa-cart a.product_type_external{
	width:100%;
	text-align:center;
}

/* Prices */
ul.products.sofa-catalog .sofa-price-block{ display:flex; flex-direction:column; gap:6px; }
ul.products.sofa-catalog .sofa-price-line{
	display:flex;
	align-items:baseline;
	gap:10px;
	flex-wrap:wrap;
	font-size: 15px;
	font-weight: 700;
}
ul.products.sofa-catalog .sofa-price-line del{ opacity:.55; font-weight: 600; }
ul.products.sofa-catalog .sofa-price-line ins{ text-decoration:none; font-weight: 800; }
ul.products.sofa-catalog .sofa-price-suffix{
	font-size:12px;
	font-weight: 600;
	opacity:.75;
}
ul.products.sofa-catalog .sofa-msrp{
	font-size:13px;
	font-weight: 600;
	opacity:.85;
}

/* RFQ link */
ul.products.sofa-catalog .sofa-rfq{
	display:inline-flex;
	align-items:center;
	gap: 8px;
	margin-top: 2px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	opacity: .9;
}
ul.products.sofa-catalog .sofa-rfq:before{
	content: "↗";
	font-size: 12px;
	line-height: 1;
	opacity: .85;
}
ul.products.sofa-catalog .sofa-rfq:hover{
	text-decoration: underline;
	opacity: 1;
}

/* Responsive list */
@media (max-width: 1442px){
	ul.products.sofa-catalog.sofa-catalog--list .sofa-row{ grid-template-columns: none; }
}
/* Kadence PRO list-view override: prevent li.product from becoming a 2-col grid */

@media screen and (min-width: 576px){
	.woocommerce ul.products.sofa-catalog.sofa-catalog--list li.product{
		gap: 0 !important;
		align-items: stretch !important;
		display: block;
	}
}
@media screen and (min-width: 576px){
 .woocommerce ul.products.products-list-view li.product {
        display: grid;
        grid-template-columns: none !important;
    }
}

/* ===== Qty + Add to cart (match tabs behavior) ===== */
ul.products.sofa-catalog .sofa-qtycart{
	display:flex;
	gap:10px;
	align-items:stretch;
}
ul.products.sofa-catalog .sofa-qtycart .sofa-qty{
	width: 90px;
	max-width: 110px;
	padding: 10px 10px;
	border-radius: 8px;
}
ul.products.sofa-catalog .sofa-qtycart .sofa-btn{
	flex: 1 1 auto;
	width: auto;
}
