/* ==========================================================================
   FV Product Cards - Stylesheet
   Prefix: .fv-pc-
   ========================================================================== */

/* --------------------------------------------------------------------------
   CSS Custom Properties
   -------------------------------------------------------------------------- */
:root {
	--fv-pc-orange:      #ff6b35;
	--fv-pc-orange-hover:#e55a28;
	--fv-pc-red:         #e74c3c;
	--fv-pc-red-hover:   #c0392b;
	--fv-pc-dark:        #2c3e50;
	--fv-pc-dark-hover:  #1a252f;
	--fv-pc-green:       #22c55e;
	--fv-pc-green-hover: #16a34a;
	--fv-pc-green-bg:    #f0fdf4;
	--fv-pc-red-light:   #ef4444;
	--fv-pc-red-bg:      #fef2f2;
	--fv-pc-gold:        #f39c12;
	--fv-pc-gray-light:  #f8f9fa;
	--fv-pc-gray:        #dee2e6;
	--fv-pc-gray-mid:    #6c757d;
	--fv-pc-white:       #ffffff;
	--fv-pc-shadow:      0 2px 12px rgba(0, 0, 0, 0.08);
	--fv-pc-radius:      10px;
	--fv-pc-transition:  0.2s ease;
}

/* --------------------------------------------------------------------------
   Base reset for plugin elements
   -------------------------------------------------------------------------- */
.fv-pc-card,
.fv-pc-comparison-wrap,
.fv-pc-verdict,
.fv-pc-proscons,
.fv-pc-price-alert {
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	-webkit-font-smoothing: antialiased;
}

.fv-pc-card *,
.fv-pc-comparison-wrap *,
.fv-pc-verdict *,
.fv-pc-proscons *,
.fv-pc-price-alert * {
	box-sizing: border-box;
}

/* --------------------------------------------------------------------------
   Product Card
   -------------------------------------------------------------------------- */
.fv-pc-card {
	background: var(--fv-pc-white);
	border: 1px solid var(--fv-pc-gray);
	border-radius: var(--fv-pc-radius);
	box-shadow: var(--fv-pc-shadow);
	overflow: hidden;
	margin: 1.5rem 0;
}

.fv-pc-card__inner {
	display: flex;
	gap: 0;
}

.fv-pc-card__media {
	flex: 0 0 220px;
	background: var(--fv-pc-gray-light);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
}

.fv-pc-card__media img {
	max-width: 100%;
	max-height: 200px;
	object-fit: contain;
	display: block;
}

.fv-pc-card__body {
	flex: 1 1 auto;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.fv-pc-card__header {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.fv-pc-card__name {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--fv-pc-dark);
	margin: 0;
	line-height: 1.3;
}

.fv-pc-badge {
	display: inline-block;
	background: var(--fv-pc-red);
	color: var(--fv-pc-white);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 0.2em 0.6em;
	border-radius: 4px;
	white-space: nowrap;
	align-self: flex-start;
	margin-top: 0.2rem;
}

.fv-pc-card__rating {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.fv-pc-card__rating-number {
	font-size: 0.85rem;
	color: var(--fv-pc-gray-mid);
}

.fv-pc-card__price {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.fv-pc-card__price-current {
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--fv-pc-dark);
}

.fv-pc-card__price-original {
	font-size: 1rem;
	font-weight: 400;
	color: var(--fv-pc-gray-mid);
	text-decoration: line-through;
}

.fv-pc-card__description {
	font-size: 0.9rem;
	color: #444;
	line-height: 1.6;
	margin: 0;
}

.fv-pc-card__proscons {
	display: flex;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-top: 0.25rem;
}

.fv-pc-card__pros,
.fv-pc-card__cons {
	flex: 1 1 200px;
}

.fv-pc-card__pros h4,
.fv-pc-card__cons h4 {
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0 0 0.4rem;
}

.fv-pc-card__pros h4 {
	color: var(--fv-pc-green);
}

.fv-pc-card__cons h4 {
	color: var(--fv-pc-red);
}

.fv-pc-card__pros ul,
.fv-pc-card__cons ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.fv-pc-card__pros li,
.fv-pc-card__cons li {
	font-size: 0.85rem;
	color: #333;
	padding: 0.2rem 0;
	display: flex;
	align-items: flex-start;
	gap: 0.35rem;
	line-height: 1.5;
}

.fv-pc-card__pros li::before {
	content: "\2713";
	color: var(--fv-pc-green);
	font-weight: 700;
	flex-shrink: 0;
	margin-top: 0.05em;
}

.fv-pc-card__cons li::before {
	content: "\2715";
	color: var(--fv-pc-red);
	font-weight: 700;
	flex-shrink: 0;
	margin-top: 0.05em;
}

.fv-pc-card__footer {
	margin-top: auto;
	padding-top: 0.75rem;
}

/* --------------------------------------------------------------------------
   Stars
   -------------------------------------------------------------------------- */
.fv-pc-stars {
	display: inline-flex;
	gap: 1px;
	line-height: 1;
}

.fv-pc-star {
	font-size: 1rem;
}

.fv-pc-star--full {
	color: var(--fv-pc-gold);
}

.fv-pc-star--half {
	color: var(--fv-pc-gold);
	opacity: 0.6;
}

.fv-pc-star--empty {
	color: var(--fv-pc-gray);
}

/* --------------------------------------------------------------------------
   Buy Button - base
   -------------------------------------------------------------------------- */
.fv-pc-btn,
a.fv-pc-btn,
a.fv-pc-btn:link,
a.fv-pc-btn:visited {
	display: inline-block;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	border-radius: 6px;
	cursor: pointer;
	transition: background var(--fv-pc-transition), transform var(--fv-pc-transition), box-shadow var(--fv-pc-transition);
	border: none;
	line-height: 1.2;
	color: var(--fv-pc-white);
	/* default size = medium */
	font-size: 1rem;
	padding: 0.75rem 1.5rem;
}

a.fv-pc-btn:hover,
a.fv-pc-btn:focus,
a.fv-pc-btn:active {
	color: var(--fv-pc-white);
	text-decoration: none;
}

/* Size variants */
.fv-pc-btn--small {
	font-size: 0.82rem;
	padding: 0.45rem 1rem;
}

.fv-pc-btn--medium {
	font-size: 1rem;
	padding: 0.75rem 1.5rem;
}

.fv-pc-btn--large {
	font-size: 1.1rem;
	padding: 0.95rem 2rem;
}

/* Color variants */
.fv-pc-btn--orange {
	background: var(--fv-pc-orange);
	color: var(--fv-pc-white);
	box-shadow: 0 3px 8px rgba(255, 107, 53, 0.35);
}

.fv-pc-btn--orange:hover,
.fv-pc-btn--orange:focus {
	background: var(--fv-pc-orange-hover);
	color: var(--fv-pc-white);
	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(255, 107, 53, 0.45);
	text-decoration: none;
}

.fv-pc-btn--green {
	background: var(--fv-pc-green);
	color: var(--fv-pc-white);
	box-shadow: 0 3px 8px rgba(34, 197, 94, 0.35);
}

.fv-pc-btn--green:hover,
.fv-pc-btn--green:focus {
	background: var(--fv-pc-green-hover);
	color: var(--fv-pc-white);
	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(34, 197, 94, 0.45);
	text-decoration: none;
}

.fv-pc-btn--dark {
	background: var(--fv-pc-dark);
	color: var(--fv-pc-white);
	box-shadow: 0 3px 8px rgba(44, 62, 80, 0.3);
}

.fv-pc-btn--dark:hover,
.fv-pc-btn--dark:focus {
	background: var(--fv-pc-dark-hover);
	color: var(--fv-pc-white);
	transform: translateY(-1px);
	text-decoration: none;
}

.fv-pc-btn--red {
	background: var(--fv-pc-red);
	color: var(--fv-pc-white);
	box-shadow: 0 3px 8px rgba(231, 76, 60, 0.35);
}

.fv-pc-btn--red:hover,
.fv-pc-btn--red:focus {
	background: var(--fv-pc-red-hover);
	color: var(--fv-pc-white);
	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(231, 76, 60, 0.45);
	text-decoration: none;
}

/* Legacy aliases kept for backward compatibility */
.fv-pc-btn--primary {
	background: var(--fv-pc-orange);
	color: var(--fv-pc-white);
	box-shadow: 0 3px 8px rgba(255, 107, 53, 0.35);
}

.fv-pc-btn--primary:hover,
.fv-pc-btn--primary:focus {
	background: var(--fv-pc-orange-hover);
	color: var(--fv-pc-white);
	transform: translateY(-1px);
	box-shadow: 0 5px 14px rgba(255, 107, 53, 0.45);
	text-decoration: none;
}

.fv-pc-btn--secondary {
	background: var(--fv-pc-dark);
	color: var(--fv-pc-white);
	box-shadow: 0 3px 8px rgba(44, 62, 80, 0.3);
}

.fv-pc-btn--secondary:hover,
.fv-pc-btn--secondary:focus {
	background: var(--fv-pc-dark-hover);
	color: var(--fv-pc-white);
	transform: translateY(-1px);
	text-decoration: none;
}

.fv-pc-btn-wrap {
	margin: 0.5rem 0;
	text-align: center;
}

/* Full-width variant used inside product card footer */
.fv-pc-card__footer .fv-pc-btn {
	width: 100%;
	display: block;
	font-size: 1.05rem;
	padding: 0.85rem 1.5rem;
}

/* --------------------------------------------------------------------------
   Standalone Pros/Cons block
   -------------------------------------------------------------------------- */
.fv-pc-proscons {
	display: flex;
	gap: 1.25rem;
	margin: 1.5rem 0;
	flex-wrap: wrap;
}

.fv-pc-proscons__col {
	flex: 1 1 220px;
	border-radius: var(--fv-pc-radius);
	padding: 1.1rem 1.25rem;
}

.fv-pc-proscons__col--pros {
	background: var(--fv-pc-green-bg);
	border: 1px solid #a9dfbf;
}

.fv-pc-proscons__col--cons {
	background: var(--fv-pc-red-bg);
	border: 1px solid #f1aaa5;
}

.fv-pc-proscons__heading {
	font-size: 0.85rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 0.75rem;
}

.fv-pc-proscons__col--pros .fv-pc-proscons__heading {
	color: var(--fv-pc-green);
}

.fv-pc-proscons__col--cons .fv-pc-proscons__heading {
	color: var(--fv-pc-red);
}

.fv-pc-proscons__list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.fv-pc-proscons__list li {
	font-size: 0.9rem;
	color: #333;
	padding: 0.3rem 0;
	display: flex;
	align-items: flex-start;
	gap: 0.4rem;
	line-height: 1.5;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.fv-pc-proscons__list li:last-child {
	border-bottom: none;
}

.fv-pc-proscons__icon {
	flex-shrink: 0;
	font-style: normal;
	font-weight: 700;
	margin-top: 0.05em;
}

.fv-pc-proscons__col--pros .fv-pc-proscons__icon {
	color: var(--fv-pc-green);
}

.fv-pc-proscons__col--cons .fv-pc-proscons__icon {
	color: var(--fv-pc-red);
}

/* --------------------------------------------------------------------------
   Verdict Box
   -------------------------------------------------------------------------- */
.fv-pc-verdict {
	background: linear-gradient(135deg, #f8f9fa 0%, #eef2f5 100%);
	border: 2px solid var(--fv-pc-dark);
	border-radius: var(--fv-pc-radius);
	padding: 1.5rem;
	margin: 1.5rem 0;
	display: flex;
	gap: 1.5rem;
	align-items: flex-start;
	flex-wrap: wrap;
}

.fv-pc-verdict__image {
	flex-shrink: 0;
	width: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.fv-pc-verdict__image img {
	max-width: 100%;
	max-height: 120px;
	object-fit: contain;
	display: block;
	border-radius: 6px;
}

.fv-pc-verdict__score-wrap {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.25rem;
}

.fv-pc-verdict__score {
	width: 72px;
	height: 72px;
	background: var(--fv-pc-dark);
	color: var(--fv-pc-white);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1;
}

.fv-pc-verdict__score-label {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--fv-pc-gray-mid);
}

.fv-pc-verdict__body {
	flex: 1 1 240px;
}

.fv-pc-verdict__title {
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--fv-pc-gray-mid);
	margin: 0 0 0.2rem;
}

.fv-pc-verdict__product {
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--fv-pc-dark);
	margin: 0 0 0.5rem;
}

.fv-pc-verdict__summary {
	font-size: 0.92rem;
	color: #444;
	line-height: 1.65;
	margin: 0 0 0.75rem;
}

.fv-pc-verdict__best-for {
	font-size: 0.82rem;
	color: var(--fv-pc-gray-mid);
	margin-bottom: 1rem;
}

.fv-pc-verdict__best-for strong {
	color: var(--fv-pc-dark);
}

/* --------------------------------------------------------------------------
   Comparison Table
   -------------------------------------------------------------------------- */
.fv-pc-comparison-wrap {
	margin: 1.5rem 0;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: var(--fv-pc-radius);
	box-shadow: var(--fv-pc-shadow);
}

.fv-pc-comparison-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.88rem;
	background: var(--fv-pc-white);
}

.fv-pc-comparison-table thead {
	position: sticky;
	top: 0;
	z-index: 2;
}

.fv-pc-comparison-table th {
	background: var(--fv-pc-dark);
	color: var(--fv-pc-white);
	font-weight: 700;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 0.8rem 1rem;
	text-align: left;
	white-space: nowrap;
}

.fv-pc-comparison-table th:first-child {
	border-radius: var(--fv-pc-radius) 0 0 0;
}

.fv-pc-comparison-table th:last-child {
	border-radius: 0 var(--fv-pc-radius) 0 0;
}

.fv-pc-comparison-table td {
	padding: 0.75rem 1rem;
	vertical-align: middle;
	border-bottom: 1px solid var(--fv-pc-gray);
	color: #333;
}

.fv-pc-comparison-table tbody tr:nth-child(even) {
	background: var(--fv-pc-gray-light);
}

.fv-pc-comparison-table tbody tr:hover {
	background: #eef2f5;
}

.fv-pc-comparison-table tbody tr:last-child td {
	border-bottom: none;
}

.fv-pc-comparison-table td:first-child {
	font-weight: 600;
	color: var(--fv-pc-dark);
}

.fv-pc-ct-buy a {
	color: var(--fv-pc-red);
	font-weight: 700;
	text-decoration: none;
	font-size: 0.82rem;
}

.fv-pc-ct-buy a:hover {
	text-decoration: underline;
}

/* --------------------------------------------------------------------------
   Price Alert Banner
   -------------------------------------------------------------------------- */
.fv-pc-price-alert {
	background: linear-gradient(135deg, #fff8e1 0%, #fffde7 100%);
	border: 2px solid var(--fv-pc-gold);
	border-radius: var(--fv-pc-radius);
	padding: 1.1rem 1.4rem;
	margin: 1.5rem 0;
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.fv-pc-price-alert__icon {
	font-size: 1.6rem;
	flex-shrink: 0;
}

.fv-pc-price-alert__content {
	flex: 1 1 200px;
}

.fv-pc-price-alert__label {
	font-size: 0.72rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--fv-pc-gold);
	margin: 0 0 0.2rem;
}

.fv-pc-price-alert__product {
	font-size: 1rem;
	font-weight: 700;
	color: var(--fv-pc-dark);
	margin: 0 0 0.3rem;
}

.fv-pc-price-alert__prices {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	flex-wrap: wrap;
}

.fv-pc-price-alert__old {
	font-size: 0.95rem;
	color: var(--fv-pc-gray-mid);
	text-decoration: line-through;
}

.fv-pc-price-alert__new {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--fv-pc-green);
}

.fv-pc-price-alert__savings {
	font-size: 0.75rem;
	font-weight: 700;
	background: var(--fv-pc-green);
	color: var(--fv-pc-white);
	padding: 0.15em 0.5em;
	border-radius: 4px;
}

.fv-pc-price-alert__cta {
	flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */
@media (max-width: 680px) {
	.fv-pc-card__inner {
		flex-direction: column;
	}

	.fv-pc-card__media {
		flex: 0 0 auto;
		width: 100%;
		max-height: 220px;
	}

	.fv-pc-card__media img {
		max-height: 180px;
	}

	.fv-pc-verdict {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.fv-pc-verdict__best-for {
		margin-bottom: 0.75rem;
	}

	.fv-pc-proscons {
		flex-direction: column;
	}

	.fv-pc-card__proscons {
		flex-direction: column;
	}

	.fv-pc-price-alert {
		flex-direction: column;
		text-align: center;
	}

	.fv-pc-price-alert__prices {
		justify-content: center;
	}

	.fv-pc-comparison-table th,
	.fv-pc-comparison-table td {
		padding: 0.6rem 0.7rem;
		font-size: 0.82rem;
	}
}

/* --------------------------------------------------------------------------
   Print styles
   -------------------------------------------------------------------------- */
@media print {
	.fv-pc-card {
		box-shadow: none;
		border: 1px solid #ccc;
	}

	.fv-pc-btn {
		background: #333 !important;
		color: #fff !important;
	}

	.fv-pc-comparison-wrap {
		box-shadow: none;
		overflow: visible;
	}

	.fv-pc-comparison-table thead {
		position: static;
	}

	.fv-pc-card__footer .fv-pc-btn::after {
		content: " (" attr(href) ")";
		font-size: 0.75rem;
		font-weight: 400;
	}
}
