/* HB Testimonials — base stylesheet
   Clean, minimal, fully overridable. No box shadows. No hover animations.
   All configurable values are exposed as CSS custom properties on .hb-testimonials-wrapper.
*/

/* ─── Grid ──────────────────────────────────────────────────────────────────── */

.hb-testimonials-grid {
	display: grid;
	grid-template-columns: repeat(var(--hbt-columns-mobile, 1), 1fr);
	gap: var(--hbt-gap, 24px);
}

@media (min-width: 768px) {
	.hb-testimonials-grid {
		grid-template-columns: repeat(var(--hbt-columns-tablet, 2), 1fr);
	}
}

@media (min-width: 1024px) {
	.hb-testimonials-grid {
		grid-template-columns: repeat(var(--hbt-columns-desktop, 3), 1fr);
	}
}

/* ─── Carousel ───────────────────────────────────────────────────────────────── */

.hb-testimonials-carousel {
	--hbt-arrow-width: 3rem; /* horizontal space reserved on each side for the nav arrows */
	position: relative;
	/* Inset the swiper so arrows have room outside the slides */
	padding-left: var(--hbt-arrow-width);
	padding-right: var(--hbt-arrow-width);
}

.hb-testimonials-carousel .swiper {
	overflow: hidden;
}

/* Equal-height cards: let slides stretch to the tallest in the row */
.hb-testimonials-carousel .swiper-wrapper {
	align-items: stretch;
}

.hb-testimonials-carousel .swiper-slide {
	height: auto;
}

.hb-testimonials-carousel .hb-testimonial-card {
	height: 100%;
}

.hb-testimonials-nav-prev,
.hb-testimonials-nav-next {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
	background: none;
	border: 1px solid currentColor;
	padding: 0.5rem 0.75rem;
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
}

.hb-testimonials-nav-prev {
	left: 0;
}

.hb-testimonials-nav-next {
	right: 0;
}

.hb-testimonials-pagination {
	text-align: center;
	margin-top: 1rem;
}

/* ─── Ticker ─────────────────────────────────────────────────────────────────── */

.hb-testimonials-ticker {
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
}

.hbt-ticker__track {
	display: flex;
	gap: var(--hbt-ticker-gap, 24px);
	width: max-content;
	animation: hbt-ticker-scroll var(--hbt-ticker-duration, 30s) linear infinite;
}

.hb-testimonials-ticker[data-pause-on-hover="1"] .hbt-ticker__track:hover {
	animation-play-state: paused;
}

.hbt-ticker__item {
	width: var(--hbt-ticker-card-width, 340px);
	flex-shrink: 0;
}

.hbt-ticker__item .hb-testimonial-card {
	height: 100%;
}

@keyframes hbt-ticker-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.hbt-ticker__track {
		animation: none;
	}
}

/* ─── Card ───────────────────────────────────────────────────────────────────── */

.hb-testimonial-card {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.5rem;
	border: 1px solid #e5e5e5;
	background: #fff;
}

.hb-testimonial-card__header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.hb-testimonial-card__avatar {
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}

.hb-testimonial-card__author-info {
	display: flex;
	flex-direction: column;
	gap: 0.125rem;
}

.hb-testimonial-card__author {
	margin: 0;
	font-weight: 600;
	font-size: 0.9375rem;
}

.hb-testimonial-card__meta {
	margin: 0;
	font-size: 0.8125rem;
	color: #666;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 0.5rem;
}

.hb-testimonial-card__rating {
	display: flex;
	gap: 0.125rem;
	font-size: 1rem;
	color: #ccc;
}

.hb-testimonial-card__star--filled {
	color: #f5a623;
}

.hb-testimonial-card__text {
	margin: 0;
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #333;
}

.hb-testimonial-card__footer {
	margin-top: auto;
}

.hb-testimonial-card__source-icon {
	height: 1.25rem;
	width: auto;
}

/* ─── Empty state ────────────────────────────────────────────────────────────── */

.hb-testimonials-empty {
	color: #666;
	font-style: italic;
}
