.softrefo-reviews {
	--softrefo-panel-bg: #f8fafc;
	--softrefo-edge-fade-color: #f8fafc;
	--softrefo-card-bg: #ffffff;
	--softrefo-card-text: #1f2937;
	--softrefo-card-muted: #6b7280;
	--softrefo-card-accent: #f59e0b;
	--softrefo-card-border: #e5e7eb;
	--softrefo-card-radius: 18px;
	--softrefo-card-padding: 24px;
	--softrefo-font-family: inherit;
	--softrefo-grid-columns: 2;
	--softrefo-carousel-columns: 1;
	--softrefo-marquee-columns: 3;
	--softrefo-marquee-duration: 32s;
	--softrefo-title-size: 32px;
	--softrefo-author-size: 16px;
	--softrefo-body-size: 16px;
	--softrefo-meta-size: 14px;
	--softrefo-title-weight: 700;
	--softrefo-author-weight: 700;
	--softrefo-body-weight: 400;
	--softrefo-meta-weight: 400;
	--softrefo-star-size: 16px;
	--softrefo-body-line-height: 1.7;
	--softrefo-review-lines: 8;
	--softrefo-star-color: #f59e0b;
	background: var(--softrefo-panel-bg);
	border: 1px solid color-mix(in srgb, var(--softrefo-card-border) 70%, #ffffff 30%);
	border-radius: calc(var(--softrefo-card-radius) + 6px);
	color: var(--softrefo-card-text);
	font-family: var(--softrefo-font-family);
	padding: clamp(20px, 3vw, 32px);
}

.softrefo-reviews--panel-transparent {
	background: transparent;
	border: 0;
	border-radius: 0;
	padding: 0;
}

.softrefo-reviews__title {
	color: var(--softrefo-card-text);
	font-size: clamp(1.4rem, 2vw, var(--softrefo-title-size));
	font-weight: var(--softrefo-title-weight);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 10px;
}

.softrefo-reviews__attribution {
	color: var(--softrefo-card-muted);
	font-size: calc(var(--softrefo-meta-size) * 1px);
	margin: 0 0 18px;
}

.softrefo-reviews__google-badge {
	align-items: center;
	display: flex;
	margin: 0 0 16px;
}

.softrefo-reviews__google-badge--footer {
	margin: 18px 0 0;
}

.softrefo-google-badge {
	align-items: center;
	background: color-mix(in srgb, var(--softrefo-card-bg) 84%, #ffffff 16%);
	border: 1px solid var(--softrefo-card-border);
	border-radius: 999px;
	display: inline-flex;
	gap: 10px;
	padding: 8px 14px;
}

.softrefo-google-badge__wordmark {
	display: inline-flex;
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-weight: 800;
	gap: 0.02em;
	letter-spacing: -0.01em;
}

.softrefo-google-badge__letter--blue {
	color: #4285f4;
}

.softrefo-google-badge__letter--red {
	color: #ea4335;
}

.softrefo-google-badge__letter--yellow {
	color: #fbbc05;
}

.softrefo-google-badge__letter--green {
	color: #34a853;
}

.softrefo-google-badge__label {
	color: var(--softrefo-card-muted);
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-weight: 700;
}

.softrefo-reviews__list {
	display: grid;
	gap: 18px;
}

.softrefo-screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.softrefo-reviews__motion-stage {
	isolation: isolate;
	position: relative;
}

.softrefo-reviews--motion-fade .softrefo-reviews__motion-stage {
	overflow: hidden;
}

@supports ((-webkit-mask-image: linear-gradient(90deg, transparent, #000)) or (mask-image: linear-gradient(90deg, transparent, #000))) {
	.softrefo-reviews--motion-fade .softrefo-reviews__motion-stage {
		-webkit-mask-image: linear-gradient(
			90deg,
			transparent 0,
			#000000 var(--softrefo-edge-fade-width),
			#000000 calc(100% - var(--softrefo-edge-fade-width)),
			transparent 100%
		);
		mask-image: linear-gradient(
			90deg,
			transparent 0,
			#000000 var(--softrefo-edge-fade-width),
			#000000 calc(100% - var(--softrefo-edge-fade-width)),
			transparent 100%
		);
		-webkit-mask-repeat: no-repeat;
		mask-repeat: no-repeat;
		-webkit-mask-size: 100% 100%;
		mask-size: 100% 100%;
	}
}

@supports not ((-webkit-mask-image: linear-gradient(90deg, transparent, #000)) or (mask-image: linear-gradient(90deg, transparent, #000))) {
	.softrefo-reviews--motion-fade .softrefo-reviews__motion-stage::before,
	.softrefo-reviews--motion-fade .softrefo-reviews__motion-stage::after {
		bottom: 0;
		content: "";
		pointer-events: none;
		position: absolute;
		top: 0;
		width: min(calc(var(--softrefo-edge-fade-width) * 1.15), 18%);
		z-index: 3;
	}

	.softrefo-reviews--motion-fade .softrefo-reviews__motion-stage::before {
		background: linear-gradient(
			90deg,
			var(--softrefo-edge-fade-color) 0,
			color-mix(in srgb, var(--softrefo-edge-fade-color) 80%, transparent 20%) 42%,
			transparent 100%
		);
		left: 0;
	}

	.softrefo-reviews--motion-fade .softrefo-reviews__motion-stage::after {
		background: linear-gradient(
			270deg,
			var(--softrefo-edge-fade-color) 0,
			color-mix(in srgb, var(--softrefo-edge-fade-color) 80%, transparent 20%) 42%,
			transparent 100%
		);
		right: 0;
	}
}

.softrefo-reviews__marquee-window {
	display: flex;
	gap: 18px;
	overflow: hidden;
}

.softrefo-reviews--panel-transparent .softrefo-reviews__motion-stage {
	padding-top: 12px;
}

.softrefo-reviews--panel-transparent .softrefo-reviews__marquee-window {
	padding-bottom: 22px;
}

.softrefo-reviews__list--marquee-track {
	animation: softrefo-marquee-scroll var(--softrefo-marquee-duration) linear infinite;
	display: grid;
	flex: 0 0 100%;
	gap: 18px;
	grid-auto-columns: calc((100% - (18px * (var(--softrefo-marquee-columns) - 1))) / var(--softrefo-marquee-columns));
	grid-auto-flow: column;
	grid-template-columns: none;
	min-width: 100%;
}

.softrefo-reviews--marquee-reverse .softrefo-reviews__list--marquee-track {
	animation-direction: reverse;
}

.softrefo-reviews--marquee-pause:hover .softrefo-reviews__list--marquee-track,
.softrefo-reviews--marquee-pause:focus-within .softrefo-reviews__list--marquee-track {
	animation-play-state: paused;
}

.softrefo-reviews--layout-grid .softrefo-reviews__list {
	grid-template-columns: repeat(var(--softrefo-grid-columns), minmax(0, 1fr));
}

.softrefo-reviews--layout-carousel .softrefo-reviews__list {
	cursor: grab;
	display: grid;
	gap: 18px;
	grid-auto-columns: calc((100% - (18px * (var(--softrefo-carousel-columns) - 1))) / var(--softrefo-carousel-columns));
	grid-auto-flow: column;
	grid-template-columns: none;
	overflow-x: auto;
	padding-bottom: 8px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.softrefo-reviews--panel-transparent.softrefo-reviews--layout-carousel .softrefo-reviews__list {
	padding-top: 12px;
	padding-bottom: 24px;
}

.softrefo-reviews--layout-carousel .softrefo-reviews__list.is-dragging {
	cursor: grabbing;
	scroll-behavior: auto;
	scroll-snap-type: none;
}

.softrefo-reviews--layout-carousel .softrefo-reviews__list::-webkit-scrollbar {
	display: none;
}

.softrefo-reviews--layout-carousel .softrefo-review,
.softrefo-reviews__list--marquee-track .softrefo-review {
	height: 100%;
}

.softrefo-reviews--layout-carousel .softrefo-review {
	scroll-snap-align: start;
}

.softrefo-review {
	background: var(--softrefo-card-bg);
	border: 1px solid var(--softrefo-card-border);
	border-radius: var(--softrefo-card-radius);
	box-shadow: 0 18px 40px rgba(15, 23, 42, 0.06);
	color: var(--softrefo-card-text);
	padding: var(--softrefo-card-padding);
}

.softrefo-reviews--panel-transparent .softrefo-review {
	box-shadow: 0 8px 18px rgba(15, 23, 42, 0.045), 0 1px 3px rgba(15, 23, 42, 0.035);
}

.softrefo-reviews--equal-height .softrefo-review {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.softrefo-review__header {
	align-items: flex-start;
	display: flex;
	gap: 14px;
}

.softrefo-review__topline {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}

.softrefo-review__avatar {
	border-radius: 50%;
	flex: 0 0 56px;
	height: 56px;
	object-fit: cover;
	width: 56px;
}

.softrefo-review__avatar-placeholder {
	align-items: center;
	background: linear-gradient(135deg, color-mix(in srgb, var(--softrefo-card-accent) 22%, #ffffff 78%) 0%, color-mix(in srgb, var(--softrefo-card-accent) 10%, var(--softrefo-card-bg) 90%) 100%);
	border: 1px solid color-mix(in srgb, var(--softrefo-card-accent) 28%, var(--softrefo-card-border) 72%);
	border-radius: 50%;
	color: var(--softrefo-card-text);
	display: inline-flex;
	flex: 0 0 56px;
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-weight: 800;
	height: 56px;
	justify-content: center;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	width: 56px;
}

.softrefo-review__meta {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.softrefo-review__author-stack {
	display: grid;
	gap: 8px;
	min-width: 0;
}

.softrefo-review__author {
	color: var(--softrefo-card-text);
	font-size: calc(var(--softrefo-author-size) * 1px);
	font-family: var(--softrefo-font-family);
	font-weight: var(--softrefo-author-weight);
	line-height: 1.25;
	text-decoration: none;
}

.softrefo-review__author:hover,
.softrefo-review__author:focus {
	color: var(--softrefo-card-accent);
}

.softrefo-review__details {
	align-items: center;
	color: var(--softrefo-card-muted);
	display: flex;
	flex-wrap: wrap;
	gap: 10px 14px;
}

.softrefo-review__rating {
	align-items: center;
	display: inline-flex;
	gap: 8px;
}

.softrefo-rating {
	display: inline-flex;
	gap: 2px;
}

.softrefo-rating__star {
	color: color-mix(in srgb, var(--softrefo-card-border) 50%, #ffffff 50%);
	font-size: var(--softrefo-star-size);
	line-height: 1;
}

.softrefo-rating__star.is-active {
	color: var(--softrefo-star-color);
}

.softrefo-review__rating-value,
.softrefo-review__time {
	color: var(--softrefo-card-muted);
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-family: var(--softrefo-font-family);
	font-weight: var(--softrefo-meta-weight);
}

.softrefo-review__content {
	color: var(--softrefo-card-text);
	font-size: calc(var(--softrefo-body-size) * 1px);
	font-weight: var(--softrefo-body-weight);
	line-height: var(--softrefo-body-line-height);
	margin-top: 18px;
	position: relative;
}

.softrefo-review__content--editorial {
	font-size: calc((var(--softrefo-body-size) + 1) * 1px);
	line-height: calc(var(--softrefo-body-line-height) + 0.05);
}

.softrefo-review__content-text.is-clamped {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--softrefo-review-lines);
}

.softrefo-review__content-text.is-expanded {
	display: block;
	overflow: visible;
	-webkit-line-clamp: unset;
}

.softrefo-review__ellipsis-link {
	background: linear-gradient(90deg, transparent 0%, var(--softrefo-card-bg) 32%);
	bottom: 0;
	color: var(--softrefo-card-accent);
	font-weight: var(--softrefo-body-weight);
	line-height: inherit;
	padding-left: 0.45em;
	position: absolute;
	right: 0;
	text-decoration: none;
}

.softrefo-review__ellipsis-link:hover,
.softrefo-review__ellipsis-link:focus {
	color: var(--softrefo-card-text);
	text-decoration: underline;
}

.softrefo-review__toggle {
	align-self: flex-start;
	background: transparent;
	border: 0;
	color: var(--softrefo-card-accent);
	cursor: pointer;
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-weight: 700;
	margin-top: 12px;
	padding: 0;
	text-decoration: underline;
	text-decoration-color: color-mix(in srgb, var(--softrefo-card-accent) 65%, transparent 35%);
	text-underline-offset: 3px;
}

.softrefo-review__toggle:hover,
.softrefo-review__toggle:focus {
	color: var(--softrefo-card-text);
}

.softrefo-review__source {
	margin: 18px 0 0;
}

.softrefo-reviews--equal-height .softrefo-review__source {
	margin-top: auto;
	padding-top: 18px;
}

.softrefo-review__source--under-author {
	margin: 0;
}

.softrefo-review__source-link {
	display: inline-flex;
}

.softrefo-review__source a {
	color: var(--softrefo-card-text);
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-weight: 600;
	text-decoration-color: color-mix(in srgb, var(--softrefo-card-accent) 65%, transparent 35%);
	text-underline-offset: 3px;
}

.softrefo-review__source-link--button {
	align-items: center;
	background: color-mix(in srgb, var(--softrefo-card-accent) 10%, var(--softrefo-card-bg) 90%);
	border: 1px solid color-mix(in srgb, var(--softrefo-card-accent) 32%, var(--softrefo-card-border) 68%);
	border-radius: 999px;
	color: var(--softrefo-card-text);
	font-size: calc(var(--softrefo-meta-size) * 1px);
	font-weight: 700;
	padding: 9px 14px;
	text-decoration: none;
}

.softrefo-review__source a:hover,
.softrefo-review__source a:focus {
	color: var(--softrefo-card-accent);
}

.softrefo-review__source-link--button:hover,
.softrefo-review__source-link--button:focus {
	background: color-mix(in srgb, var(--softrefo-card-accent) 16%, var(--softrefo-card-bg) 84%);
	border-color: color-mix(in srgb, var(--softrefo-card-accent) 48%, var(--softrefo-card-border) 52%);
	color: var(--softrefo-card-text);
}

.softrefo-reviews--links-plain .softrefo-review__author,
.softrefo-reviews--links-plain .softrefo-review__source a {
	text-decoration: none;
}

.softrefo-reviews--card-editorial .softrefo-review {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.softrefo-reviews--card-editorial .softrefo-review__rating-value {
	display: none;
}

.softrefo-reviews--card-editorial .softrefo-review__content {
	margin-top: 22px;
}

.softrefo-reviews--card-editorial .softrefo-review__footer {
	align-items: center;
	display: flex;
	gap: 14px;
	margin-top: auto;
	padding-top: 22px;
}

.softrefo-reviews--card-editorial .softrefo-review__source {
	margin-top: 20px;
}

.softrefo-reviews--layout-compact .softrefo-review {
	padding: calc(var(--softrefo-card-padding) * 0.75);
}

.softrefo-reviews--layout-compact .softrefo-review__header {
	gap: 12px;
}

.softrefo-reviews--layout-compact .softrefo-review__content {
	font-size: 0.94rem;
	line-height: 1.55;
	margin-top: 14px;
}

.softrefo-reviews--layout-carousel .softrefo-review {
	min-width: 280px;
}

.softrefo-reviews--layout-stacked .softrefo-reviews__list,
.softrefo-reviews--layout-compact .softrefo-reviews__list {
	grid-template-columns: minmax(0, 1fr);
}

.softrefo-reviews--layout-carousel .softrefo-reviews__carousel-controls {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	margin: 0 0 16px;
}

.softrefo-reviews__carousel-button {
	background: var(--softrefo-card-bg);
	border: 1px solid var(--softrefo-card-border);
	border-radius: 999px;
	color: var(--softrefo-card-text);
	cursor: pointer;
	font-size: 0.88rem;
	font-weight: 700;
	padding: 10px 16px;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.softrefo-reviews__carousel-button:hover,
.softrefo-reviews__carousel-button:focus {
	background: color-mix(in srgb, var(--softrefo-card-accent) 12%, var(--softrefo-card-bg) 88%);
	border-color: color-mix(in srgb, var(--softrefo-card-accent) 35%, var(--softrefo-card-border) 65%);
	color: var(--softrefo-card-text);
}

.softrefo-reviews__carousel-dots {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin-top: 18px;
}

.softrefo-reviews__carousel-dot {
	background: color-mix(in srgb, var(--softrefo-card-border) 70%, #ffffff 30%);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	height: 10px;
	padding: 0;
	transition: transform 0.2s ease, background-color 0.2s ease;
	width: 10px;
}

.softrefo-reviews__carousel-dot.is-active {
	background: var(--softrefo-card-accent);
	transform: scale(1.15);
}

.softrefo-reviews__empty-message {
	background: var(--softrefo-card-bg);
	border: 1px dashed var(--softrefo-card-border);
	border-radius: var(--softrefo-card-radius);
	color: var(--softrefo-card-muted);
	padding: var(--softrefo-card-padding);
	text-align: center;
}

@media (max-width: 900px) {
	.softrefo-reviews--layout-grid .softrefo-reviews__list {
		grid-template-columns: minmax(0, 1fr);
	}

	.softrefo-reviews--layout-carousel .softrefo-reviews__list {
		grid-auto-columns: minmax(0, 1fr);
	}

	.softrefo-reviews__list--marquee-track .softrefo-review {
		min-width: 0;
	}

	.softrefo-reviews__list--marquee-track {
		grid-auto-columns: calc((100% - 18px) / 2);
	}
}

@media (max-width: 640px) {
	.softrefo-review {
		padding: 18px;
	}

	.softrefo-review__header {
		gap: 12px;
	}

	.softrefo-review__avatar {
		flex-basis: 48px;
		height: 48px;
		width: 48px;
	}

	.softrefo-review__avatar-placeholder {
		flex-basis: 48px;
		height: 48px;
		width: 48px;
	}

	.softrefo-reviews--layout-carousel .softrefo-reviews__carousel-controls {
		justify-content: stretch;
	}

	.softrefo-reviews__carousel-button {
		flex: 1 1 0;
	}

	.softrefo-reviews__list--marquee-track {
		grid-auto-columns: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.softrefo-reviews__list--marquee-track {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
	}

	.softrefo-reviews--layout-carousel .softrefo-reviews__list {
		scroll-behavior: auto;
	}
}

@keyframes softrefo-marquee-scroll {
	from {
		transform: translateX(0);
	}

	to {
		transform: translateX(calc(-100% - 18px));
	}
}
