/* Reviews carousel — guest testimonials. Measured: 1-up mobile / 2-up ≥768
   (flex 0 0 calc(50% - 20px), 40px gap), hairline slide top-border ≥768,
   auto curly quotes, circular soft-black arrows 24px→40px, 12px→16px bullets.
   Implemented as CSS scroll-snap; arrows/bullets driven by reviews-carousel.js. */

.reviews-carousel { display: block; }

.reviews-carousel__slider-track-wrapper {
	align-items: center;
	display: flex;
	gap: 10px;
}
@media screen and (min-width: 768px) {
	.reviews-carousel__slider-track-wrapper { gap: 25px; }
}

.reviews-carousel__track {
	flex: 1;
	min-width: 0;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.reviews-carousel__track::-webkit-scrollbar { display: none; }

.reviews-carousel__slides {
	display: flex;
	gap: 40px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.reviews-carousel__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
}
@media screen and (min-width: 768px) {
	.reviews-carousel__slide { flex: 0 0 calc(50% - 20px); }
}

.reviews-carousel__slide-content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 16px;
	height: 100%;
}
@media screen and (min-width: 768px) {
	.reviews-carousel__slide-content {
		align-items: flex-start;
		border-top: 0.5px solid var(--color-silver);
		padding-top: 16px;
	}
}

.reviews-carousel__content p { text-align: center; }
.reviews-carousel__content p::before { content: "\201C"; }
.reviews-carousel__content p::after { content: "\201D"; }
@media screen and (min-width: 768px) {
	.reviews-carousel__content p { text-align: left; }
}

.reviews-carousel__author { align-items: center; display: flex; }

.reviews-carousel__name-location { font-size: 12px; text-align: center; }
@media (min-width: 400px)  { .reviews-carousel__name-location { font-size: calc(0.1vw + 11.6px); } }
@media (min-width: 1400px) { .reviews-carousel__name-location { font-size: 13px; } }
@media screen and (min-width: 768px) {
	.reviews-carousel__name-location { text-align: left; }
}

.reviews-carousel__rating {
	align-items: center;
	display: flex;
	gap: 4px;
}
.reviews-carousel__rating svg { fill: currentcolor; height: 20px; width: 20px; }

.reviews-carousel__rating-text { color: var(--color-silver); font-size: 16px; }
@media (min-width: 400px)  { .reviews-carousel__rating-text { font-size: calc(0.3vw + 14.8px); } }
@media (min-width: 1400px) { .reviews-carousel__rating-text { font-size: 19px; } }

.reviews-carousel__rating-number { color: var(--color-soft-black); }

.reviews-carousel__arrow-button {
	align-items: center;
	background-color: var(--color-soft-black);
	border: none;
	border-radius: 50%;
	color: var(--color-soft-white);
	cursor: pointer;
	display: inline-flex;
	flex-shrink: 0;
	height: 24px;
	justify-content: center;
	padding: 0;
	transition: all var(--transition-time) var(--transition-easing);
	width: 24px;
}
@media screen and (min-width: 768px) {
	.reviews-carousel__arrow-button { height: 40px; width: 40px; }
}
@media (hover: hover) {
	.reviews-carousel__arrow-button:hover { opacity: 0.8; }
}
.reviews-carousel__arrow-button:disabled { cursor: default; opacity: 0.3; }

.reviews-carousel__arrow-button svg { height: 12px; width: 12px; }
@media screen and (min-width: 768px) {
	.reviews-carousel__arrow-button svg { height: 16px; width: 16px; }
}
.reviews-carousel__arrow-button--next svg { transform: rotate(180deg); }

.reviews-carousel__bullets {
	align-items: center;
	display: flex;
	justify-content: center;
	margin-top: 30px;
	min-height: 8px;
	position: relative;
}
.reviews-carousel__bullets button {
	background-color: transparent;
	border: 0.5px solid var(--color-soft-black);
	border-radius: 50%;
	cursor: pointer;
	font-size: 0;
	height: 12px;
	line-height: 1;
	padding: 0;
	transition: all var(--transition-time) var(--transition-easing);
	width: 12px;
}
@media screen and (min-width: 768px) {
	.reviews-carousel__bullets button { height: 16px; width: 16px; }
}
.reviews-carousel__bullets button + button { margin-left: 10px; }
.reviews-carousel__bullets button.is-active { background-color: var(--color-soft-black); }
