.srga-reviews-css-vars {
	--text--large: 20px;
	--text--normal: 15px;
	--text--small: 12px;
	--gap-normal: 20px;
	--gap-small: 10px;
	--radius: 10px;
	--padding-y-x: 10px 20px;
	--color-bg: #fff;
	--color-border: #eee;
	--color-title: #888;
	--color-content: #000;
	--color-accent: orange;
	--cards-gap: var(--gap-normal);
	--card-bg: var(--color-bg);
	--card-padding: var(--cards-gap);
	--card-radius: var(--radius);
	--card-border-color: var(--color-border);
	--card-gap: var(--gap-normal);
	--card-shadow: none;
	--card-icon-text: var(--text--large);
	--card-icon-size: calc(var(--card-icon-text) + 2 * var(--gap-small));
	--card-icon-weight: 700;
	--card-icon-bg: var(--color-border);
	--card-icon-color: var(--color-accent);
	--card-title-size: var(--text--small);
	--card-title-weight: 400;
	--card-title-color: var(--color-title);
	--card-rating-size: var(--text--normal);
	--card-rating-color: var(--color-accent);
	--card-content-size: var(--text--normal);
	--card-content-weight: 300;
	--card-content-color: var(--color-content);
	--video-text-padding: var(--padding-y-x);
	--video-text-size: var(--text--normal);
	--video-text-weight: 400;
	--video-text-color: #fff;
	--video-text-bg: rgba(0, 0, 0, 0.5);
	--video-height: clamp(240px, 25cqw, 320px);
	--btn-gap: var(--gap-small);
	--btn-radius: 999px;
	--btn-padding: 10px 20px;
	--btn-text-size: var(--text--normal);
	--btn-text-weight: 400;
	--btn-color: var(--color-title);
	--btn-bg: transparent;
	--btn-color-active: var(--color-accent);
	--btn-bg-active: transparent;
	--badge-text-size: 0.75em;
	--badge-text-weight: 400;
	--badge-size: 1.25em;
	--badge-color: var(--color-content);
	--badge-bg: var(--color-border);
	--form-gap: var(--gap-normal);
	--form-input-radius: var(--card-radius);
	--form-input-padding: var(--gap-small);
	--form-input-border-color: var(--card-border-color);
	--form-title-color: var(--color-content);
	--form-title-size: inherit;
	--form-title-weight: 700;
	--form-asterisk-color: var(--color-accent);
	--form-raiting-color: var(--color-accent);
	--form-raiting-size: var(--text--large);
}

.srga-reviews {
	display: grid;
	gap: var(--cards-gap);
}

.srga-reviews--columns-2,
.srga-reviews--columns-3,
.srga-reviews--columns-4 {
	grid-template-columns: 1fr;
}

.srga-review {
	display: flex;
	flex-direction: column;
	gap: var(--card-gap);
	background: var(--card-bg);
	border: 1px solid var(--card-border-color);
	border-radius: var(--card-radius);
	padding: var(--card-padding);
	box-shadow: var(--card-shadow);
}

.srga-review__header {
	display: flex;
	align-items: center;
	gap: var(--card-gap);
}

.srga-review__avatar {
	display: inline-flex;
	flex: 0 0 var(--card-icon-size);
	align-items: center;
	justify-content: center;
	width: var(--card-icon-size);
	height: var(--card-icon-size);
	border-radius: 50%;
	background: var(--card-icon-bg);
	color: var(--card-icon-color);
	font-size: var(--card-icon-text);
	font-weight: var(--card-icon-weight);
	text-transform: uppercase;
}
.srga-review__name {
	font-size: var(--card-title-size);
	font-weight: var(--card-title-weight);
	color: var(--card-title-color);
}

.srga-review__divider {
	margin: 0 0.125em 0 -0.125em;
}

.srga-review__rating {
	white-space: nowrap;
	display: flex;
	align-items: center;
}

.srga-review__rating span {
	font-size: var(--card-rating-size);
	color: var(--card-rating-color);
	filter: grayscale(1);
}

.srga-review__rating .is-filled {
	filter: grayscale(0);
}

.srga-review__content {
	color: var(--card-content-color);
	font-size: var(--card-content-size);
	font-weight: var(--card-content-weight);
}

.srga-review__content > :first-child {
	margin-top: 0;
}

.srga-review__content > :last-child {
	margin-bottom: 0;
}

.srga-review-filter__controls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--btn-gap);
	margin-bottom: var(--cards-gap);
}

.srga-review-filter .srga-review-filter__button {
	display: inline-flex;
	align-items: center;
	gap: var(--btn-gap);
	cursor: pointer;
	background: var(--btn-bg);
	color: var(--btn-color);
	font-size: var(--btn-text-size);
	font-weight: var(--btn-text-weight);
	line-height: 1;
	white-space: nowrap;
	border: 1px solid var(--btn-color);
	border-radius: var(--btn-radius);
	padding: var(--btn-padding);
}

.srga-review-filter .srga-review-filter__button:hover,
.srga-review-filter .srga-review-filter__button.is-active {
	color: var(--btn-color-active);
	border: 1px solid var(--btn-color-active);
	background: var(--btn-bg-active);
}

.srga-review-filter__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: var(--badge-size);
	height: var(--badge-size);
	border-radius: 50%;
	background: var(--badge-bg);
	color: var(--badge-color);
	font-size: var(--badge-text-size);
	font-weight: var(--badge-text-weight);
	line-height: 1;
}

[data-srga-review-categories][hidden] {
	display: none;
}

.srga-review-videos {
	width: 100%;
	display: grid;
	grid-auto-flow: dense;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: start;
	gap: var(--cards-gap);
}

.srga-review-video {
	position: relative;
	min-width: 0;
	margin: 0;
	overflow: hidden;
	border-radius: var(--card-radius);
	background: #000;
}

.srga-review-video::before {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 1;
	width: 32px;
	height: 32px;
	margin: -16px 0 0 -16px;
	border: 3px solid rgba(255, 255, 255, 0.25);
	border-top-color: #fff;
	border-radius: 50%;
	content: "";
	pointer-events: none;
	animation: srga-review-video-loader 0.8s linear infinite;
}

.srga-review-video--standard {
	grid-column: span 2;
	aspect-ratio: 16 / 9;
}

.srga-review-video--short {
	grid-column: span 1;
	aspect-ratio: 9 / 16;
}

.srga-review-video__button,
.srga-review-video__player,
.srga-review-video__preview {
	display: block;
	width: 100%;
	height: 100%;
}

.srga-review-video__button {
	position: relative;
	z-index: 1;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.srga-review-video__button::after {
	position: absolute;
	width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
	top: 50%;
	left: 50%;
	z-index: 2;
	content: "▶";
	pointer-events: none;
	font-size: 32px;
	line-height: 1;
	color: #fff;
	border-radius: 999px;
	background: rgba(0, 0, 0, 0.25);
	transform: translate(-50%, -50%);
}

.srga-review-video__player {
	position: relative;
	z-index: 1;
	border: 0;
}

.srga-review-video .srga-review-video__preview {
	position: relative;
	z-index: 1;
	height: 100%;
	object-fit: cover;
	object-position: center;
	transition: transform 0.25s ease;
}

.srga-review-video__title {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	z-index: 2;
	padding: var(--video-text-padding);
	background: var(--video-text-bg);
	color: var(--video-text-color);
	font-size: var(--video-text-size);
	font-weight: var(--video-text-weight);
	line-height: normal;
}

.srga-review-video__button:hover .srga-review-video__preview,
.srga-review-video__button:focus-visible .srga-review-video__preview {
	transform: scale(1.025);
}

@keyframes srga-review-video-loader {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.srga-review-video::before {
		animation-duration: 1.6s;
	}
}

.srga-review-form {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	gap: var(--form-gap);
}

.srga-review-form__row-full,
.srga-review-form__row-half {
	grid-column: span 2;
}

.srga-review-form__column {
	display: grid;
	gap: var(--form-gap);
}

.srga-review-form__title {
	color: var(--form-title-color);
	font-size: var(--form-title-size);
	font-weight: var(--form-title-weight);
	line-height: normal;
}

.srga-review-form p,
.srga-review-form h2 {
	margin: 0;
}

.srga-review-form label {
	display: grid;
	gap: var(--form-input-padding);
}

.srga-review-form label:has([required]) > .srga-review-form__label-text::after,
.srga-review-form__rating-field:has([required])
	> .srga-review-form__label-text::after {
	content: " *";
	color: var(--form-asterisk-color);
}

.srga-review-form input,
.srga-review-form select,
.srga-review-form textarea {
	box-sizing: border-box;
	width: 100%;
	padding: var(--form-input-padding);
	border: 1px solid var(--form-input-border-color);
	border-radius: var(--form-input-radius);
	font: inherit;
}

.srga-review-form__rating-field {
	display: block;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.srga-review-form__rating-field legend {
	float: left;
	margin: 0;
	margin-right: 0.75rem;
	padding: 0;
	line-height: 1.75rem;
}

.srga-review-form__rating-field::after {
	display: block;
	clear: both;
	content: "";
}

.srga-review-form__rating-stars {
	display: inline-flex;
	flex-direction: row-reverse;
	justify-content: flex-end;
	width: max-content;
}

.srga-review-form .srga-review-form__rating-input {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.srga-review-form__rating-star {
	display: block !important;
	cursor: pointer;
	color: var(--form-raiting-color);
	font-size: var(--form-raiting-size);
	line-height: 1;
}

.srga-review-form__rating-star::before {
	content: "\2606";
}

.srga-review-form__rating-input:checked
	~ .srga-review-form__rating-star::before,
.srga-review-form__rating-star:hover::before,
.srga-review-form__rating-star:hover ~ .srga-review-form__rating-star::before {
	content: "\2605";
}

.srga-review-form__rating-input:focus-visible + .srga-review-form__rating-star {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.srga-review-form button {
	cursor: pointer;
	font: inherit;
}

.srga-review-form__notice {
	margin-bottom: 1rem;
	padding: 0.875rem 1rem;
	border-radius: 0.375rem;
}

.srga-review-form__notice.is-success {
	background: #dcfce7;
	color: #166534;
}

.srga-review-form__notice.is-error {
	background: #fee2e2;
	color: #991b1b;
}

@media (min-width: 480px) {
	.srga-review-videos {
		container-type: inline-size;
		display: flex;
		flex-wrap: wrap;
		align-items: flex-start;
		justify-content: center;
	}

	.srga-review-video {
		flex: 0 0 auto;
		width: auto;
		max-width: 100%;
		height: var(--video-height);
	}

	.srga-review-video--standard,
	.srga-review-video--short {
		grid-column: auto;
	}
}

@media (min-width: 768px) {
	.srga-reviews--columns-2,
	.srga-reviews--columns-3,
	.srga-reviews--columns-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.srga-review-form {
		grid-template-columns: repeat(2, 1fr);
	}
	.srga-review-form__row-half {
		grid-column: span 1;
	}
}

@media (min-width: 1024px) {
	.srga-reviews--columns-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.srga-reviews--columns-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
