/**
 * Smart Product Recommendations for WooCommerce by Storzen — Public Stylesheet
 *
 * @package SPRWOO_For_WooCommerce
 */

/* ── Reset & shared ────────────────────────────────────────────────────────── */

.sprwoo-fbt-widget,
.sprwoo-cart-recommendations,
.sprwoo-mini-cart-recommendations,
.sprwoo-block,
.sprwoo-elementor-widget {
	box-sizing: border-box;
	font-family: inherit;
	color: inherit;
}

.sprwoo-fbt-widget *,
.sprwoo-cart-recommendations *,
.sprwoo-mini-cart-recommendations *,
.sprwoo-block *,
.sprwoo-elementor-widget * {
	box-sizing: border-box;
}

/* ── FBT Widget ─────────────────────────────────────────────────────────────── */

.sprwoo-fbt-widget {
	margin: 2rem 0;
	padding: 1.25rem 1.5rem;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	background: #fafafa;
}

.sprwoo-fbt-title {
	font-size: 1.1em;
	font-weight: 600;
	margin: 0 0 1rem;
	padding: 0;
}

/* Product row */
.sprwoo-fbt-products {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.sprwoo-fbt-plus {
	font-size: 1.4em;
	color: #999;
	font-weight: 400;
	flex-shrink: 0;
}

.sprwoo-fbt-product {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
	position: relative;
	text-align: center;
	min-width: 0;
	flex: 0 0 auto;
}

.sprwoo-fbt-badge {
	display: inline-block;
	font-size: 10px;
	background: #f0f0f0;
	color: #555;
	padding: 2px 6px;
	border-radius: 3px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.sprwoo-fbt-check-label {
	position: absolute;
	top: 22px;
	left: 4px;
	z-index: 1;
}

.sprwoo-fbt-img {
	display: block;
	width: 90px;
}

.sprwoo-fbt-img img {
	width: 90px !important;
	height: 90px !important;
	object-fit: cover;
	border-radius: 4px;
	border: 1px solid #e8e8e8;
}

.sprwoo-fbt-info {
	font-size: 0.8em;
	max-width: 90px;
}

.sprwoo-fbt-name {
	display: block;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin-bottom: 2px;
}

.sprwoo-fbt-name:hover {
	color: #7f54b3;
}

.sprwoo-fbt-price {
	display: block;
	font-weight: 600;
}

/* Summary row */
.sprwoo-fbt-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid #e8e8e8;
}

.sprwoo-fbt-total {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.sprwoo-fbt-total__label {
	font-size: 0.9em;
	color: #777;
}

.sprwoo-fbt-total__original {
	font-size: 0.85em;
	text-decoration: line-through;
	color: #999;
}

.sprwoo-fbt-total__price {
	font-size: 1.2em;
	font-weight: 700;
	color: #333;
}

.sprwoo-fbt-total__save {
	font-size: 0.8em;
	color: #00a651;
	background: #e8f8ee;
	padding: 2px 6px;
	border-radius: 4px;
}

.sprwoo-fbt-add-all {
	flex-shrink: 0;
}

/* Disabled state when unchecking all */
.sprwoo-fbt-add-all:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* ── Cart Recommendations ───────────────────────────────────────────────────── */

.sprwoo-cart-recommendations {
	margin: 1.5rem 0;
}

.sprwoo-cart-reco-title {
	font-size: 1em;
	font-weight: 600;
	margin: 0 0 0.75rem;
	display: flex;
	align-items: center;
	gap: 6px;
}

.sprwoo-ai-badge {
	font-size: 0.85em;
}

.sprwoo-cart-reco-products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 12px;
}

/* Mini-cart */
.sprwoo-mini-cart-recommendations {
	padding: 0.75rem;
	border-top: 1px solid #e8e8e8;
}

.sprwoo-mini-reco-title {
	font-size: 0.8em;
	color: #777;
	margin: 0 0 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.sprwoo-mini-reco-products {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 4px;
}

/* Shared product card */
.sprwoo-reco-card {
	background: #fff;
	border: 1px solid #e8e8e8;
	border-radius: 6px;
	padding: 0.6rem;
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	transition: box-shadow 0.15s ease;
}

.sprwoo-reco-card:hover {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.sprwoo-reco-card--mini_cart {
	min-width: 100px;
	flex-shrink: 0;
}

.sprwoo-reco-img img {
	width: 100% !important;
	height: 80px !important;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}

.sprwoo-reco-info {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
}

.sprwoo-reco-name {
	font-size: 0.78em;
	font-weight: 500;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.sprwoo-reco-name:hover {
	color: #7f54b3;
}

.sprwoo-reco-price {
	font-size: 0.82em;
	font-weight: 600;
}

.sprwoo-add-to-cart {
	width: 100%;
	font-size: 0.78em !important;
	padding: 5px 8px !important;
	text-align: center;
	cursor: pointer;
	margin-top: auto;
}

/* ── Block & Elementor shared grid ─────────────────────────────────────────── */

.sprwoo-block,
.sprwoo-elementor-widget {
	margin: 1.5rem 0;
}

.sprwoo-block-title,
.sprwoo-el-title {
	font-size: 1.2em;
	font-weight: 600;
	margin: 0 0 1rem;
}

.sprwoo-block-products,
.sprwoo-el-products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}

/* Column helpers */
.sprwoo-cols-2 .sprwoo-block-products,
.sprwoo-cols-2 .sprwoo-el-products  { grid-template-columns: repeat(2, 1fr); }
.sprwoo-cols-3 .sprwoo-block-products,
.sprwoo-cols-3 .sprwoo-el-products  { grid-template-columns: repeat(3, 1fr); }
.sprwoo-cols-4 .sprwoo-block-products,
.sprwoo-cols-4 .sprwoo-el-products  { grid-template-columns: repeat(4, 1fr); }
.sprwoo-cols-5 .sprwoo-block-products,
.sprwoo-cols-5 .sprwoo-el-products  { grid-template-columns: repeat(5, 1fr); }

.sprwoo-block-product,
.sprwoo-el-product {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
}

.sprwoo-block-product__img img,
.sprwoo-el-product__img img {
	width: 100% !important;
	height: auto !important;
	border-radius: 4px;
	display: block;
}

.sprwoo-block-product__info,
.sprwoo-el-product__info {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
}

.sprwoo-block-product__name,
.sprwoo-el-product__name {
	font-size: 0.9em;
	font-weight: 500;
	color: inherit;
	text-decoration: none;
}

.sprwoo-block-product__name:hover,
.sprwoo-el-product__name:hover {
	color: #7f54b3;
}

.sprwoo-block-product__price,
.sprwoo-el-product__price {
	font-size: 0.9em;
	font-weight: 600;
}

/* ── Responsive ────────────────────────────────────────────────────────────── */

@media (max-width: 768px) {
	.sprwoo-fbt-products {
		justify-content: flex-start;
		overflow-x: auto;
		flex-wrap: nowrap;
		padding-bottom: 4px;
	}

	.sprwoo-fbt-summary {
		flex-direction: column;
		align-items: flex-start;
	}

	.sprwoo-cart-reco-products {
		grid-template-columns: repeat(2, 1fr);
	}

	.sprwoo-cols-4 .sprwoo-block-products,
	.sprwoo-cols-4 .sprwoo-el-products,
	.sprwoo-cols-5 .sprwoo-block-products,
	.sprwoo-cols-5 .sprwoo-el-products {
		grid-template-columns: repeat(2, 1fr);
	}

	.sprwoo-cols-3 .sprwoo-block-products,
	.sprwoo-cols-3 .sprwoo-el-products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.sprwoo-cart-reco-products,
	.sprwoo-cols-2 .sprwoo-block-products,
	.sprwoo-cols-2 .sprwoo-el-products {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ── Recently Viewed Products ───────────────────────────────────────────────── */

.sprwoo-rv-widget {
	margin: 2rem 0;
}

.sprwoo-rv-title {
	font-size: 1.15em;
	font-weight: 600;
	margin: 0 0 1rem;
	padding: 0;
}

.sprwoo-rv-products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}

/* Column helpers — same pattern as block/elementor widgets */
.sprwoo-cols-2 .sprwoo-rv-products { grid-template-columns: repeat(2, 1fr); }
.sprwoo-cols-3 .sprwoo-rv-products { grid-template-columns: repeat(3, 1fr); }
.sprwoo-cols-4 .sprwoo-rv-products { grid-template-columns: repeat(4, 1fr); }
.sprwoo-cols-5 .sprwoo-rv-products { grid-template-columns: repeat(5, 1fr); }

.sprwoo-rv-product {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	position: relative;
}

.sprwoo-rv-img {
	display: block;
}

.sprwoo-rv-img img {
	width: 100% !important;
	height: auto !important;
	border-radius: 4px;
	display: block;
}

.sprwoo-rv-info {
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
}

.sprwoo-rv-name {
	font-size: 0.9em;
	font-weight: 500;
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.sprwoo-rv-name:hover {
	color: #7f54b3;
}

.sprwoo-rv-price {
	font-size: 0.9em;
	font-weight: 600;
}

.sprwoo-rv-rating {
	font-size: 0.8em;
}

.sprwoo-rv-atc {
	width: 100%;
	font-size: 0.8em !important;
	padding: 5px 8px !important;
	text-align: center;
	margin-top: auto;
}

/* Shortcode wrapper */
.sprwoo-rv-widget--shortcode {
	margin: 1rem 0;
}

/* Responsive */
@media (max-width: 768px) {
	.sprwoo-cols-4 .sprwoo-rv-products,
	.sprwoo-cols-5 .sprwoo-rv-products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.sprwoo-cols-3 .sprwoo-rv-products {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ── Post-Purchase Recommendations ──────────────────────────────────────────── */

.sprwoo-pp-widget {
	margin: 2.5rem 0;
	padding: 1.75rem 1.5rem;
	background: #f9f9f9;
	border: 1px solid #e8e8e8;
	border-radius: 10px;
}

.sprwoo-pp-header {
	margin-bottom: 1.25rem;
	text-align: center;
}

.sprwoo-pp-title {
	font-size: 1.3em;
	font-weight: 700;
	margin: 0 0 0.35rem;
	padding: 0;
	color: #1d2327;
}

.sprwoo-pp-subtitle {
	font-size: 0.875em;
	color: #787c82;
	margin: 0;
}

.sprwoo-pp-products {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1rem;
}

/* Column helpers — reuse same pattern */
.sprwoo-cols-2 .sprwoo-pp-products { grid-template-columns: repeat(2, 1fr); }
.sprwoo-cols-3 .sprwoo-pp-products { grid-template-columns: repeat(3, 1fr); }
.sprwoo-cols-4 .sprwoo-pp-products { grid-template-columns: repeat(4, 1fr); }
.sprwoo-cols-5 .sprwoo-pp-products { grid-template-columns: repeat(5, 1fr); }

.sprwoo-pp-product {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 7px;
	padding: 0.75rem;
	transition: box-shadow 0.15s ease;
}

.sprwoo-pp-product:hover {
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.07);
}

.sprwoo-pp-img {
	display: block;
}

.sprwoo-pp-img img {
	width: 100% !important;
	height: auto !important;
	border-radius: 4px;
	display: block;
}

.sprwoo-pp-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1;
}

.sprwoo-pp-name {
	font-size: 0.875em;
	font-weight: 600;
	color: #1d2327;
	text-decoration: none;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	line-height: 1.35;
}

.sprwoo-pp-name:hover {
	color: #7f54b3;
}

.sprwoo-pp-rating {
	font-size: 0.8em;
}

.sprwoo-pp-price {
	font-size: 0.95em;
	font-weight: 700;
	color: #1d2327;
}

.sprwoo-pp-atc {
	width: 100% !important;
	font-size: 0.82em !important;
	padding: 6px 10px !important;
	text-align: center;
	margin-top: auto;
}

/* Responsive */
@media (max-width: 768px) {
	.sprwoo-cols-4 .sprwoo-pp-products,
	.sprwoo-cols-5 .sprwoo-pp-products {
		grid-template-columns: repeat(2, 1fr);
	}
	.sprwoo-pp-widget {
		padding: 1.25rem 1rem;
	}
}

@media (max-width: 480px) {
	.sprwoo-cols-3 .sprwoo-pp-products {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ── Social Proof Badges ─────────────────────────────────────────────────────── */

.sprwoo-social-proof {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11px;
	font-weight: 600;
	padding: 3px 8px;
	border-radius: 20px;
	line-height: 1.4;
	white-space: nowrap;
	margin-top: 4px;
}

/* Sales velocity — warm orange */
.sprwoo-social-proof--velocity {
	background: #fff3e6;
	color: #b84a00;
	border: 1px solid #fad4a8;
}

/* Rating — gold/amber */
.sprwoo-social-proof--rating {
	background: #fefce8;
	color: #7a5c00;
	border: 1px solid #fde68a;
}

/* Purchase count — soft purple */
.sprwoo-social-proof--count {
	background: #f5f0ff;
	color: #5b3a8f;
	border: 1px solid #ddd0f7;
}

/* Emoji icon inside badge */
.sprwoo-social-proof span[aria-hidden] {
	font-size: 12px;
	line-height: 1;
}

/* Position within recommendation cards */
.sprwoo-reco-info .sprwoo-social-proof,
.sprwoo-pp-info .sprwoo-social-proof,
.sprwoo-rv-info .sprwoo-social-proof,
.sprwoo-block-product__info .sprwoo-social-proof,
.sprwoo-el-product__info .sprwoo-social-proof {
	align-self: flex-start;
}

/* Inside WooCommerce product loop (related products) */
.woocommerce ul.products .sprwoo-social-proof {
	display: inline-flex;
	margin: 4px 0 0;
}

/* ── Low Stock Urgency Badge ─────────────────────────────────────────────────── */

.sprwoo-low-stock-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 20px;
	line-height: 1.4;
	white-space: nowrap;
	margin-top: 4px;
	background: #fff0f0;
	color: #c0392b;
	border: 1px solid #f5c0bc;
	letter-spacing: 0.01em;
}

.sprwoo-low-stock-badge span[aria-hidden] {
	font-size: 11px;
	line-height: 1;
}

/* Positioning inside each recommendation surface */
.sprwoo-fbt-info .sprwoo-low-stock-badge,
.sprwoo-reco-info .sprwoo-low-stock-badge,
.sprwoo-pp-info .sprwoo-low-stock-badge,
.sprwoo-rv-info .sprwoo-low-stock-badge,
.sprwoo-block-product__info .sprwoo-low-stock-badge,
.sprwoo-el-product__info .sprwoo-low-stock-badge {
	align-self: flex-start;
}

/* Low stock badge always renders BEFORE social proof badge */
.sprwoo-low-stock-badge + .sprwoo-social-proof {
	margin-top: 3px;
}

/* WooCommerce product loop (related products section) */
.woocommerce ul.products .sprwoo-low-stock-badge {
	display: inline-flex;
	margin: 4px 0 0;
}
