/* ===== Container ===== */
.sofa-tab{ margin-top: 12px; }
.sofa-tab.is-loading{ opacity:.65; pointer-events:none; }

/* ===== Header bar ===== */
.sofa-models__bar{
	display:flex; align-items:center; justify-content:space-between;
	gap: 14px; margin: 0 0 14px;
}
.sofa-models__meta{ opacity:.85; font-size:14px; }
.sofa-models__toggle{ margin-left:auto; } /* icons on the right */

/* Filter dropdown */
.sofa-models__filter{ min-width: 260px; max-width: 520px; }
.sofa-models__filter select{ width:100%; }

/* Kadence toggle look */
.sofa-models__toggle .kadence-product-toggle-outer{ display:flex; gap:8px; }
.sofa-models__toggle .kadence-toggle-shop-layout{
	border:0; background:transparent; padding:6px; border-radius:8px; cursor:pointer; line-height:1;
}
.sofa-models__toggle .kadence-toggle-shop-layout.toggle-active{ background: rgba(0,0,0,.06); }

/* ===== Items ===== */
.sofa-items{ display:block; }
.sofa-items.is-grid{
	display:grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}
@media (max-width: 1100px){ .sofa-items.is-grid{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 800px){  .sofa-items.is-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px){  .sofa-items.is-grid{ grid-template-columns: 1fr; } }

/* ===== List row (3 cols) ===== */
.sofa-row{
	position:relative;
	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;
	margin-bottom: 12px;
	overflow:hidden;
}
.sofa-row.is-current{
	border-color: rgba(0,0,0,.18);
	box-shadow: 0 6px 18px rgba(0,0,0,.06);
}
.sofa-items.is-grid .sofa-row{
	display:flex;
	flex-direction:column;
	gap: 12px;
	margin-bottom:0;
}
.sofa-img img{ width:100%; height:auto; border-radius:10px; display:block; }
.sofa-title{ margin:0 0 6px; font-size:18px; line-height:1.25; }
.sofa-title a{ text-decoration:none; }
.sofa-subtitle{ font-size: 13px; opacity:.85; margin: 0 0 10px; }
.sofa-desc{ margin: 0 0 10px; opacity:.9; }
.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) ===== */
.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 inline (S) with bullets ===== */
.sofa-stock{ margin-top: 8px; }
.sofa-stockline{
	display:flex;
	align-items:center;
	gap:12px;
	font-size:12px;
	opacity:.95;
	flex-wrap:wrap;
}
.sofa-stockmain,
.sofa-stockdist{
	display:inline-flex;
	align-items:center;
	gap:8px;
	white-space:nowrap;
}
.sofa-stockmain:before{
	content:""; width:8px; height:8px; border-radius:50%;
	background:#2ecc71; display:inline-block; flex:0 0 8px;
}
.sofa-row[data-instock="0"] .sofa-stockmain:before{
	background:#e74c3c; /* red */
}
.sofa-stockdist:before{
	content:""; width:8px; height:8px; border-radius:50%;
	background:#f39c12; display:inline-block; flex:0 0 8px;
}

/* ===== Actions (col 3) ===== */
.sofa-actions{ display:flex; flex-direction:column; gap:10px; align-items:stretch; }
.sofa-var-select{ width:100%; }
.sofa-cart{ display:flex; flex-direction:column; gap:10px; }
.sofa-cartline{ display:flex; align-items:center; gap:10px; }
.sofa-cartline .sofa-qty{ width: 90px; }
.sofa-cartline .sofa-qty .qty{ width:100%; }
.sofa-cartline .sofa-btn{ flex: 1 1 auto; }

.sofa-btn{ width:100%; text-align:center; }

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

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

/* Responsive */
@media (max-width: 900px){
	.sofa-models__bar{ flex-wrap:wrap; }
	.sofa-models__filter{ order: 2; width:100%; max-width:none; }
	.sofa-models__toggle{ order: 3; }
}
@media (max-width: 700px){
	.sofa-row{ grid-template-columns: 1fr; }
	.sofa-actions{ align-items:stretch; }
}

/* Footer: centered, load more as link */
.sofa-footer{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
	gap: 8px;
	margin-top: 14px;
}
.sofa-status{ opacity:.85; font-size:14px; }
.sofa-loadmore-link{
	display:inline-block;
	font-weight: 700;
	text-decoration: underline;
}
.sofa-loadmore-link:hover{ opacity: .9; }
