/* =========================================================
   ALSTON — GOOGLE REVIEWS (shared carousel)

   Home, About, Services and Fleet. Matches the approved home
   design: Google rating block, three cards per view, gold
   progress dots and ring-drawing arrow buttons (ui.css).
   Every rule is scoped under .alston-reviews so page
   stylesheets cannot out-rank it.
========================================================= */

.alston-reviews {
	position: relative;
	width: 100%;
	padding: clamp(30px, 6.2vh, 88px) 20px;
	background: #FFFFFF;
	color: #0E0E0E;
}

.alston-reviews--flush-bottom {
	padding-bottom: 0;
}

.alston-reviews *,
.alston-reviews *::before,
.alston-reviews *::after {
	box-sizing: border-box;
}

.alston-reviews .alston-reviews__inner {
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

.alston-reviews .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ---------------------------------------------------------
   HEAD
--------------------------------------------------------- */

.alston-reviews .alston-reviews__head {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 24px;
	align-items: end;
}

.alston-reviews .alston-reviews__intro {
	grid-column: 1 / span 7;
}

.alston-reviews .alston-reviews__eyebrow {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	font: 500 11px/1 "Inter", system-ui, sans-serif;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: #5A5A5A;
}

.alston-reviews .alston-reviews__eyebrow::before {
	content: "";
	width: 24px;
	height: 1px;
	background: #C9A961;
}

.alston-reviews .alston-reviews__title {
	margin: clamp(10px, 1.8vh, 18px) 0 0;
	font: 300 clamp(26px, min(3vw, 5.2vh), 44px)/1.1 "Jost", "Helvetica Neue", sans-serif;
	letter-spacing: -.01em;
	color: #0E0E0E;
}

.alston-reviews .alston-reviews__title .hl {
	color: #C9A961;
}

.alston-reviews .alston-reviews__score {
	grid-column: 9 / span 4;
	display: flex;
	align-items: center;
	gap: 20px;
	padding-bottom: 4px;
}

.alston-reviews .alston-reviews__g {
	flex: none;
	width: clamp(52px, 7vh, 64px);
	height: clamp(52px, 7vh, 64px);
	border: 1px solid #E6E6E6;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #FFFFFF;
}

.alston-reviews .alston-reviews__score-body {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.alston-reviews .alston-reviews__brand {
	display: flex;
	align-items: baseline;
	gap: 10px;
	font: 400 13px/1 "Inter", system-ui, sans-serif;
	color: #5A5A5A;
}

.alston-reviews .alston-reviews__google {
	font: 400 15px/1 "Inter", system-ui, sans-serif;
	letter-spacing: -.01em;
}

.alston-reviews .alston-reviews__google span:nth-child(1),
.alston-reviews .alston-reviews__google span:nth-child(4) { color: #4285F4; }
.alston-reviews .alston-reviews__google span:nth-child(2),
.alston-reviews .alston-reviews__google span:nth-child(6) { color: #EA4335; }
.alston-reviews .alston-reviews__google span:nth-child(3) { color: #FBBC05; }
.alston-reviews .alston-reviews__google span:nth-child(5) { color: #34A853; }

.alston-reviews .alston-reviews__rating-row {
	display: flex;
	align-items: center;
	gap: 12px;
}

.alston-reviews .alston-reviews__rating {
	font: 200 clamp(36px, 5.4vh, 50px)/1 "Jost", "Helvetica Neue", sans-serif;
	color: #0E0E0E;
}

.alston-reviews .alston-reviews__count {
	font: 400 13px/1.4 "Inter", system-ui, sans-serif;
	color: #5A5A5A;
}

.alston-reviews .alston-reviews__link {
	color: #0E0E0E;
	text-decoration: none;
	border-bottom: 1px solid #C9A961;
	transition: color .3s;
}

.alston-reviews .alston-reviews__link:hover {
	color: #8A6D2F;
}

/* Stars */
.alston-reviews .alston-reviews__stars {
	position: relative;
	display: inline-flex;
	width: max-content;
}

.alston-reviews .alston-reviews__stars-row {
	display: flex;
	gap: 3px;
	white-space: nowrap;
}

.alston-reviews .alston-reviews__stars svg {
	flex: none;
	width: 15px;
	height: 15px;
	fill: #E6E6E6;
}

.alston-reviews .alston-reviews__stars-on {
	position: absolute;
	left: 0;
	top: 0;
	overflow: hidden;
}

.alston-reviews .alston-reviews__stars-on svg {
	fill: #F4B400;
}

/* ---------------------------------------------------------
   CONTROLS
--------------------------------------------------------- */

.alston-reviews .alston-reviews__bar {
	margin-top: clamp(12px, 2.6vh, 32px);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}

.alston-reviews .alston-reviews__nav {
	display: flex;
	gap: 12px;
}

/* ---------------------------------------------------------
   CARDS
--------------------------------------------------------- */

.alston-reviews .alston-reviews__viewport {
	margin: clamp(8px, 1.6vh, 16px) -12px 0;
	padding: 10px 12px 24px;
	overflow: hidden;
	touch-action: pan-y;
}

.alston-reviews .alston-reviews__track {
	--per: 3;
	display: flex;
	gap: 24px;
	transition: transform .8s cubic-bezier(.2, .7, .2, 1);
	will-change: transform;
}

.alston-reviews .alston-reviews__card {
	flex: 0 0 calc((100% - (var(--per) - 1) * 24px) / var(--per));
	min-height: clamp(190px, 27vh, 290px);
	margin: 0;
	padding: clamp(20px, 3.2vh, 30px) clamp(20px, 2vw, 26px);
	display: flex;
	flex-direction: column;
	gap: clamp(12px, 2vh, 18px);
	background: #FFFFFF;
	border: 1px solid #E6E6E6;
	transition: border-color .4s, box-shadow .6s cubic-bezier(.2, .7, .2, 1), transform .6s cubic-bezier(.2, .7, .2, 1);
}

.alston-reviews .alston-reviews__card:hover {
	border-color: #C9A961;
	transform: translateY(-4px);
	box-shadow: 0 24px 48px -32px rgba(14, 14, 14, .25);
}

.alston-reviews .alston-reviews__card-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.alston-reviews .alston-reviews__card-top .alston-reviews__stars svg {
	width: 13px;
	height: 13px;
}

.alston-reviews .alston-reviews__quote {
	flex: 1;
	margin: 0;
}

.alston-reviews .alston-reviews__quote p {
	margin: 0;
	font: 300 clamp(15px, 2.1vh, 17.5px)/1.5 "Jost", "Helvetica Neue", sans-serif;
	color: #0E0E0E;
}

.alston-reviews .alston-reviews__by {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 14px;
	border-top: 1px solid #E6E6E6;
}

.alston-reviews .alston-reviews__avatar {
	flex: none;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #FFFFFF;
	font: 500 13px/1 "Inter", system-ui, sans-serif;
}

.alston-reviews .alston-reviews__name {
	display: block;
	font: 500 13px/1.3 "Inter", system-ui, sans-serif;
	color: #0E0E0E;
}

.alston-reviews .alston-reviews__context {
	display: block;
	font: 400 12px/1.4 "Inter", system-ui, sans-serif;
	color: #6B6B6B;
}

/* ---------------------------------------------------------
   RESPONSIVE
--------------------------------------------------------- */

@media (max-width: 1100px) {

	.alston-reviews .alston-reviews__track {
		--per: 2;
	}

	.alston-reviews .alston-reviews__intro,
	.alston-reviews .alston-reviews__score {
		grid-column: 1 / -1;
	}
}

@media (max-width: 700px) {

	.alston-reviews .alston-reviews__track {
		--per: 1;
	}

	.alston-reviews .alston-reviews__g {
		width: 56px;
		height: 56px;
	}

	.alston-reviews .alston-reviews__rating {
		font-size: 36px;
	}

	.alston-reviews .alston-reviews__quote p {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 7;
		overflow: hidden;
	}

	.alston-reviews .alston-reviews__card {
		min-height: 0;
	}
}

@media (max-width: 640px) and (max-height: 720px) {

	.alston-reviews {
		padding-top: 26px;
		padding-bottom: 26px;
	}

	.alston-reviews .alston-reviews__quote p {
		-webkit-line-clamp: 4;
	}

	.alston-reviews .alston-reviews__count {
		font-size: 12px;
	}

	.alston-reviews .alston-reviews__title {
		font-size: 24px;
	}

	.alston-reviews .alston-reviews__card {
		min-height: 0;
	}

	.alston-reviews .alston-reviews__bar {
		margin-top: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.alston-reviews .alston-reviews__track,
	.alston-reviews .alston-reviews__card {
		transition: none;
	}
}
