.tpct-rating,
.tpct-reviews {
	--tpct-ink: #111827;
	--tpct-muted: #667085;
	--tpct-border: #dfe3e9;
	--tpct-yellow: #ffd21f;
	--tpct-green: #168650;
	box-sizing: border-box;
	color: var(--tpct-ink);
	font-family: inherit;
}

.tpct-rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
}

.tpct-rating strong {
	font-size: 18px;
}

.tpct-rating a,
.tpct-reviews a {
	color: var(--tpct-ink);
}

.tpct-rating a {
	white-space: nowrap;
}

.tpct-rating a:hover,
.tpct-reviews a:hover {
	color: var(--tpct-green);
}

.tpct-google-label {
	font-size: 13px;
	font-weight: 700;
}

.tpct-google-maps-attribution {
	color: #5e5e5e;
	font-family: Roboto, Arial, sans-serif;
	font-size: 12px;
	font-style: normal;
	font-weight: 400;
	letter-spacing: normal;
	white-space: nowrap;
}

.tpct-stars {
	color: #c99000;
	font-size: 18px;
	line-height: 1;
	letter-spacing: 0;
	white-space: nowrap;
}

.tpct-rating--compact {
	font-size: 14px;
}

.tpct-reviews {
	width: 100%;
	padding: 28px 0;
}

.tpct-reviews__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 20px;
}

.tpct-reviews__eyebrow {
	display: block;
	margin-bottom: 7px;
	color: var(--tpct-green);
	font-size: 12px;
	font-weight: 750;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.tpct-reviews h2 {
	margin: 0;
	font-size: clamp(28px, 4vw, 42px);
	line-height: 1.1;
	letter-spacing: 0;
}

.tpct-reviews__items {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.tpct-reviews__items:focus-visible {
	outline: 3px solid rgba(22, 134, 80, 0.35);
	outline-offset: 4px;
}

.tpct-reviews__swipe-hint {
	display: none;
}

.tpct-review {
	box-sizing: border-box;
	min-width: 0;
	padding: 20px;
	border: 1px solid var(--tpct-border);
	border-top: 4px solid var(--tpct-yellow);
	border-radius: 8px;
	background: #fff;
}

.tpct-review__author {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-bottom: 14px;
}

.tpct-review__author img,
.tpct-review__initial {
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
}

.tpct-review__author img {
	display: block;
	object-fit: cover;
}

.tpct-review__initial {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #f0f2f5;
	font-weight: 750;
}

.tpct-review__author div {
	min-width: 0;
}

.tpct-review__author strong,
.tpct-review__author span {
	display: block;
	overflow-wrap: anywhere;
}

.tpct-review__author-link {
	font-weight: inherit;
	text-decoration: none;
}

.tpct-review__author span {
	margin-top: 2px;
	color: var(--tpct-muted);
	font-size: 13px;
}

.tpct-review__comment,
.tpct-review__reply p {
	margin: 14px 0 0;
	color: #344054;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

.tpct-reviews--grid .tpct-review__comment,
.tpct-reviews--slider .tpct-review__comment {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
}

.tpct-review__reply {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--tpct-border);
}

.tpct-review__reply strong {
	font-size: 14px;
}

.tpct-review__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
	font-size: 13px;
}

.tpct-reviews__disclosure,
.tpct-place-attributions,
.tpct-place-empty,
.tpct-place-error,
.tpct-place-loading {
	color: var(--tpct-muted);
	font-size: 13px;
	line-height: 1.5;
}

.tpct-reviews__disclosure {
	margin: 14px 0 0;
}

.tpct-place-attributions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.tpct-reviews__link {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	margin-top: 18px;
	padding: 0 16px;
	border: 1px solid var(--tpct-border);
	border-radius: 6px;
	background: #fff;
	font-weight: 700;
	text-decoration: none;
}

.tpct-reviews--list .tpct-reviews__items {
	grid-template-columns: 1fr;
}

.tpct-reviews--slider .tpct-reviews__items {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding-bottom: 10px;
}

.tpct-reviews--slider .tpct-review {
	flex: 0 0 min(390px, 88vw);
	scroll-snap-align: start;
}

@media (max-width: 900px) {
	.tpct-reviews__items {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	.tpct-reviews {
		padding: 22px 0;
	}

	.tpct-reviews__head {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}

	.tpct-reviews--list .tpct-reviews__items {
		grid-template-columns: 1fr;
	}

	.tpct-reviews--grid .tpct-reviews__items {
		display: flex;
		width: 100%;
		max-width: 100%;
		align-items: stretch;
		gap: 12px;
		overflow-x: auto;
		overflow-y: hidden;
		padding: 0 0 10px;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 0;
		scrollbar-width: none;
		overscroll-behavior-inline: contain;
		-webkit-overflow-scrolling: touch;
	}

	.tpct-reviews--grid .tpct-reviews__items::-webkit-scrollbar {
		display: none;
	}

	.tpct-reviews--grid .tpct-reviews__items::after {
		content: "";
		flex: 0 0 16px;
	}

	.tpct-reviews--grid .tpct-review {
		flex: 0 0 min(340px, calc(100% - 28px));
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	.tpct-reviews--grid .tpct-reviews__swipe-hint,
	.tpct-reviews--slider .tpct-reviews__swipe-hint {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		margin: -4px 0 10px;
		color: var(--tpct-muted);
		font-size: 13px;
		font-weight: 650;
	}

	.tpct-review {
		padding: 18px;
	}
}
