/* Tom Complex Reviews — frontend */

.tc-reviews {
	--tc-bg: #ececec;
	--tc-card-bg: #ffffff;
	--tc-text: #333333;
	--tc-muted: #9a9a9a;
	--tc-title: #3a3a3a;
	--tc-star: #f5b400;
	--tc-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
	--tc-radius: 10px;
	--tc-gap: 20px;

	background: var(--tc-bg);
	padding: 48px 16px 56px;
	box-sizing: border-box;
	width: 100%;
}

.tc-reviews *,
.tc-reviews *::before,
.tc-reviews *::after {
	box-sizing: border-box;
}

.tc-reviews-title {
	margin: 0 0 36px;
	text-align: center;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--tc-title);
	line-height: 1.3;
}

.tc-reviews-empty {
	text-align: center;
	color: var(--tc-muted);
	margin: 0;
}

.tc-reviews-carousel {
	display: flex;
	align-items: center;
	gap: 12px;
	max-width: 1100px;
	margin: 0 auto;
	position: relative;
}

.tc-reviews-viewport {
	overflow: hidden;
	flex: 1 1 auto;
	min-width: 0;
}

.tc-reviews-track {
	display: flex;
	gap: var(--tc-gap);
	transition: transform 0.45s ease;
	will-change: transform;
}

.tc-reviews-card {
	flex: 0 0 auto;
	width: calc((100% - (var(--tc-gap) * 2)) / 3);
	max-width: calc((100% - (var(--tc-gap) * 2)) / 3);
	background: var(--tc-card-bg);
	border-radius: var(--tc-radius);
	box-shadow: var(--tc-shadow);
	padding: 28px 22px 24px;
	text-align: center;
	min-height: 280px;
}

.tc-reviews-avatar-wrap {
	position: relative;
	width: 64px;
	height: 64px;
	margin: 0 auto 14px;
}

.tc-reviews-avatar,
.tc-reviews-avatar-img {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	display: block;
	object-fit: cover;
}

.tc-reviews-avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
}

.tc-reviews-badge {
	position: absolute;
	right: -2px;
	bottom: -2px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.tc-reviews-badge-google svg {
	display: block;
}

.tc-reviews-badge-custom img {
	width: 18px;
	height: 18px;
	object-fit: contain;
	display: block;
}

.tc-reviews-author {
	margin: 0 0 4px;
	font-size: 1.05rem;
	font-weight: 700;
	color: #111;
	line-height: 1.3;
}

.tc-reviews-date {
	margin: 0 0 10px;
	font-size: 0.85rem;
	color: var(--tc-muted);
}

.tc-reviews-rating {
	margin-bottom: 12px;
}

.tc-reviews-stars {
	display: inline-flex;
	gap: 2px;
	font-size: 1.05rem;
	line-height: 1;
}

.tc-star-on {
	color: var(--tc-star);
}

.tc-star-off {
	color: #d0d0d0;
}

.tc-reviews-text {
	color: var(--tc-text);
	font-size: 0.95rem;
	line-height: 1.5;
}

.tc-reviews-text p {
	margin: 0;
}

.tc-reviews-more {
	display: inline-block;
	margin-top: 8px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--tc-muted);
	font-size: 0.9rem;
	cursor: pointer;
	text-decoration: none;
}

.tc-reviews-more:hover,
.tc-reviews-more:focus {
	color: #666;
	text-decoration: underline;
}

.tc-reviews-nav {
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border: 0;
	background: transparent;
	color: #666;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.tc-reviews-nav:hover,
.tc-reviews-nav:focus {
	color: #222;
}

.tc-reviews-nav:disabled {
	opacity: 0.35;
	cursor: default;
}

@media (max-width: 900px) {
	.tc-reviews-card {
		width: calc((100% - var(--tc-gap)) / 2);
		max-width: calc((100% - var(--tc-gap)) / 2);
	}
}

@media (max-width: 600px) {
	.tc-reviews {
		padding: 36px 10px 44px;
	}

	.tc-reviews-title {
		font-size: 1.4rem;
		margin-bottom: 24px;
	}

	.tc-reviews-card {
		width: 100%;
		max-width: 100%;
		min-height: 0;
	}

	.tc-reviews-carousel {
		gap: 4px;
	}
}
