/* =========================================================
   Section: social_proof (reviews rail with controls)
   ========================================================= */

.social-proof {
	background:
		radial-gradient(60% 60% at 100% 100%, rgba(46, 90, 69, 0.06) 0%, transparent 60%),
		var(--color-bg-base);
}

.social-proof__viewport {
	position: relative;
}

/* Side fades for visual cue of horizontal scroll */
.social-proof__viewport::before,
.social-proof__viewport::after {
	content: "";
	position: absolute;
	top: 0; bottom: 0;
	width: 40px;
	pointer-events: none;
	z-index: 2;
}
.social-proof__viewport::before {
	left: 0;
	background: linear-gradient(90deg, var(--color-bg-base) 0%, transparent 100%);
}
.social-proof__viewport::after {
	right: 0;
	background: linear-gradient(-90deg, var(--color-bg-base) 0%, transparent 100%);
}

/* Nav buttons */
.social-proof__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 3;
	width: 44px; height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--color-bg-surface);
	color: var(--color-ink-primary);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-pill);
	box-shadow: var(--shadow-md);
	transition: background var(--duration-fast) var(--easing-default),
	            color var(--duration-fast) var(--easing-default),
	            opacity var(--duration-fast) var(--easing-default);
}
.social-proof__nav:hover {
	background: var(--color-brand-primary);
	color: var(--color-bg-base);
	border-color: var(--color-brand-primary);
}
.social-proof__nav:focus-visible {
	outline: none;
	box-shadow: var(--shadow-focus), var(--shadow-md);
}
.social-proof__nav[disabled] {
	opacity: 0.35;
	cursor: not-allowed;
}
.social-proof__nav--prev { left: -20px; }
.social-proof__nav--next { right: -20px; }

@media (max-width: 900px) {
	.social-proof__nav { display: none; }
}

/* Rail */
.social-proof__rail {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
}
.social-proof__rail::-webkit-scrollbar { display: none; }
.social-proof__rail:focus-visible {
	outline: none;
	box-shadow: var(--shadow-focus);
	border-radius: var(--radius-md);
}

.social-proof__list {
	display: flex;
	gap: var(--space-4);
	list-style: none;
	padding: var(--space-2) 0 var(--space-3);
	margin: 0;
}

/* Review card */
.review-card {
	flex: 0 0 380px;
	scroll-snap-align: start;
	background: var(--color-bg-surface);
	border: 1px solid var(--color-border-default);
	border-radius: var(--radius-md);
	padding: var(--space-5);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	position: relative;
	box-shadow: var(--shadow-sm);
}
@media (max-width: 540px) {
	.review-card { flex-basis: 86vw; }
}

.review-card__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-3);
}
.review-card__stars {
	display: inline-flex;
	gap: 2px;
	color: var(--color-secondary);
}
.review-card__verified {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 10px;
	background: rgba(46, 90, 69, 0.10);
	color: var(--color-brand-primary);
	border-radius: var(--radius-pill);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

/* Decorative quote mark */
.review-card__mark {
	position: absolute;
	top: 56px; right: 24px;
	font-family: var(--font-display);
	font-size: 6rem;
	color: var(--color-bg-subtle);
	line-height: 0.8;
	pointer-events: none;
	user-select: none;
	z-index: 0;
}

.review-card__quote {
	margin: 0;
	color: var(--color-ink-primary);
	position: relative;
	z-index: 1;
	flex: 1;
}
.review-card__quote p {
	margin: 0;
	font-family: var(--font-display);
	font-size: 1.125rem;
	line-height: 1.45;
	letter-spacing: -0.005em;
	font-weight: 500;
}

/* Footer */
.review-card__footer {
	margin-top: auto;
	padding-top: var(--space-3);
	border-top: 1px solid var(--color-border-default);
	display: flex;
	align-items: center;
	gap: var(--space-3);
}
.review-card__pet-avatar {
	display: inline-flex;
	width: 44px; height: 44px;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	color: rgba(250, 244, 232, 0.92);
	flex: 0 0 auto;
	overflow: hidden;
}
.review-card[data-species="perros"]   .review-card__pet-avatar { background: linear-gradient(135deg, #DDBE94 0%, #B58F5B 100%); }
.review-card[data-species="gatos"]    .review-card__pet-avatar { background: linear-gradient(135deg, #C4D1C0 0%, #6B8E6A 100%); }
.review-card[data-species="roedores"] .review-card__pet-avatar { background: linear-gradient(135deg, #E2CDA8 0%, #C58A2C 100%); }
.review-card[data-species="caballos"] .review-card__pet-avatar { background: linear-gradient(135deg, #C7B89A 0%, #8A6F3F 100%); }
.review-card[data-species="pajaros"]  .review-card__pet-avatar { background: linear-gradient(135deg, #F2A589 0%, #C95838 100%); }

.review-card__pet-avatar svg { width: 60%; height: 60%; }

.review-card__author { line-height: 1.3; }
.review-card__name {
	margin: 0;
	font-weight: 600;
	color: var(--color-ink-primary);
	font-size: var(--fs-body-s);
}
.review-card__context {
	margin: 1px 0 0;
	color: var(--color-ink-muted);
	font-size: 11px;
}
.review-card__purchase {
	margin: 4px 0 0;
	font-size: 11px;
	color: var(--color-brand-primary);
	font-weight: 500;
	display: inline-flex;
	gap: 5px;
	flex-wrap: wrap;
}
.review-card__purchase-dot { color: var(--color-border-default); }

/* Progress bar */
.social-proof__progress {
	margin-top: var(--space-5);
	height: 3px;
	background: var(--color-border-default);
	border-radius: var(--radius-pill);
	overflow: hidden;
	max-width: 200px;
	margin-left: auto;
	margin-right: auto;
}
.social-proof__progress-bar {
	display: block;
	height: 100%;
	background: var(--color-brand-primary);
	border-radius: var(--radius-pill);
	transition: width var(--duration-base) var(--easing-default),
	            transform var(--duration-base) var(--easing-default);
	width: 20%; /* updated by JS */
}
