/**
 * Wrubens Reviews frontend styling.
 */

.wrb-reviews-shell {
	--wrb-review-bg: #f3f3f3;
	--wrb-review-title: #474b50;
	--wrb-review-text: #5f6266;
	--wrb-review-muted: #9b9da0;
	--wrb-review-line: #dddddd;
	--wrb-review-star: #111111;
	--wrb-review-ink: #4e5257;
	--wrb-review-underline: #aeb0b2;
	--wrb-font-family: inherit;
	--wrb-shell-max-width: 1060px;
	--wrb-shell-padding-top: 52px;
	--wrb-shell-padding-right: 58px;
	--wrb-shell-padding-bottom: 62px;
	--wrb-shell-padding-left: 58px;
	--wrb-title-size: 20px;
	--wrb-title-weight: 500;
	--wrb-title-letter-spacing: 0.08em;
	--wrb-underline-width: 82px;
	--wrb-underline-thickness: 1px;
	--wrb-header-bottom-spacing: 38px;
	--wrb-name-size: 14px;
	--wrb-name-weight: 700;
	--wrb-location-size: 12px;
	--wrb-review-copy-size: 14px;
	--wrb-review-copy-weight: 400;
	--wrb-review-copy-line-height: 1.72;
	--wrb-date-size: 11px;
	--wrb-star-size: 17px;
	--wrb-star-gap: 9px;
	--wrb-meta-column-width: 178px;
	--wrb-date-column-width: 72px;
	--wrb-column-gap: 42px;
	--wrb-review-vertical-spacing: 43px;
	--wrb-separator-thickness: 1px;
	--wrb-pagination-top-spacing: 44px;
	box-sizing: border-box;
	width: 100%;
	max-width: min(100%, var(--wrb-shell-max-width));
	margin: 0 auto;
	padding: var(--wrb-shell-padding-top) var(--wrb-shell-padding-right) var(--wrb-shell-padding-bottom) var(--wrb-shell-padding-left);
	background: var(--wrb-review-bg);
	color: var(--wrb-review-text);
	font-family: var(--wrb-font-family);
	overflow: hidden;
}

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

.wrb-reviews-header {
	width: 100%;
	margin: 0 0 var(--wrb-header-bottom-spacing);
	padding: 0;
	text-align: center;
}

.wrb-reviews-header h2 {
	margin: 0;
	padding: 0;
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-title-size);
	line-height: 1.18;
	font-weight: var(--wrb-title-weight);
	letter-spacing: var(--wrb-title-letter-spacing);
	text-align: center;
	text-transform: uppercase;
	color: var(--wrb-review-title);
}

.wrb-reviews-header span {
	display: block;
	width: var(--wrb-underline-width);
	height: var(--wrb-underline-thickness);
	margin: 17px auto 0;
	background: var(--wrb-review-underline);
}

.wrb-reviews-status {
	min-height: 18px;
	margin: -14px 0 12px;
	font-family: var(--wrb-font-family);
	font-size: 12px;
	line-height: 1.4;
	text-align: center;
	color: var(--wrb-review-muted);
}

.wrb-reviews-status.is-error {
	color: #8a2f2f;
}

.wrb-reviews-content {
	position: relative;
	width: 100%;
	transition: opacity 180ms ease;
}

.wrb-reviews-shell.is-loading .wrb-reviews-content {
	opacity: 0.45;
	pointer-events: none;
}


.wrb-reviews-shell.is-device-pending .wrb-reviews-content {
	visibility: hidden;
	min-height: 140px;
}

.wrb-reviews-shell.is-device-ready .wrb-reviews-content {
	visibility: visible;
}

.wrb-reviews-list {
	width: 100%;
}

.wrb-review-card {
	display: grid;
	grid-template-columns: minmax(110px, var(--wrb-meta-column-width)) minmax(0, 1fr) var(--wrb-date-column-width);
	gap: var(--wrb-column-gap);
	align-items: start;
	width: 100%;
	min-height: 0;
	padding: var(--wrb-review-vertical-spacing) 0 calc(var(--wrb-review-vertical-spacing) + 2px);
	border-bottom: var(--wrb-separator-thickness) solid var(--wrb-review-line);
}

.wrb-review-card:first-child {
	padding-top: 18px;
}

.wrb-review-meta {
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 0;
	text-align: center;
}

.wrb-review-name {
	display: block;
	margin: 0 0 9px;
	padding: 0;
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-name-size);
	line-height: 1.22;
	font-weight: var(--wrb-name-weight);
	letter-spacing: 0.01em;
	color: var(--wrb-review-ink);
}

.wrb-review-location {
	display: block;
	min-height: 30px;
	max-width: 168px;
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-location-size);
	line-height: 1.45;
	font-style: italic;
	font-weight: 400;
	color: var(--wrb-review-text);
}

.wrb-review-stars {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wrb-star-gap);
	margin: 20px 0 0;
	padding: 0;
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-star-size);
	line-height: 1;
	letter-spacing: 0;
	color: var(--wrb-review-star);
}

.wrb-review-stars .is-filled,
.wrb-review-stars .is-empty {
	color: var(--wrb-review-star) !important;
	text-shadow: none !important;
}


.wrb-review-stars .is-empty {
	opacity: 0.25;
}

.wrb-review-stars.has-custom-star img {
	display: inline-block;
	width: 1em;
	height: 1em;
	object-fit: contain;
}

.wrb-review-stars.has-custom-star .is-empty {
	opacity: 0.25;
}

.wrb-review-copy {
	min-width: 0;
	padding-top: 0;
}

.wrb-review-copy p {
	max-width: 640px;
	margin: 0;
	padding: 0;
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-review-copy-size);
	line-height: var(--wrb-review-copy-line-height);
	font-weight: var(--wrb-review-copy-weight);
	letter-spacing: 0.01em;
	color: var(--wrb-review-text);
}

.wrb-review-date {
	display: block;
	min-width: 0;
	padding-top: 1px;
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-date-size);
	line-height: 1.4;
	font-weight: 400;
	text-align: right;
	color: var(--wrb-review-muted);
	white-space: nowrap;
}

.wrb-reviews-empty {
	margin: 18px 0 0;
	padding: 36px 0;
	border-bottom: var(--wrb-separator-thickness) solid var(--wrb-review-line);
	font-family: var(--wrb-font-family);
	font-size: var(--wrb-review-copy-size);
	text-align: center;
	color: var(--wrb-review-muted);
}

.wrb-reviews-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding-top: var(--wrb-pagination-top-spacing);
}

.wrb-review-page {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	min-height: 28px;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 1px solid #b9b9b9;
	border-radius: 0;
	background: transparent;
	color: #6b6f75;
	font: inherit;
	font-size: 10px;
	line-height: 1;
	cursor: pointer;
	transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.wrb-review-page:hover,
.wrb-review-page.is-active {
	background: #ffffff;
	border-color: #7b7f85;
	color: #2e3237;
}

.wrb-review-page:focus-visible {
	background: #ffffff;
	border-color: #2e3237;
	color: #2e3237;
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.wrb-review-ellipsis {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	min-height: 28px;
	font-family: var(--wrb-font-family);
	font-size: 12px;
	line-height: 1;
	color: #6b6f75;
}

@media (max-width: 1024px) {
	.wrb-reviews-shell {
		padding: calc(var(--wrb-shell-padding-top) * 0.82) min(var(--wrb-shell-padding-right), 44px) calc(var(--wrb-shell-padding-bottom) * 0.87) min(var(--wrb-shell-padding-left), 44px);
	}

	.wrb-review-card {
		grid-template-columns: minmax(108px, min(var(--wrb-meta-column-width), 154px)) minmax(0, 1fr) min(var(--wrb-date-column-width), 62px);
		gap: min(var(--wrb-column-gap), 24px);
		padding: calc(var(--wrb-review-vertical-spacing) * 0.82) 0 calc(var(--wrb-review-vertical-spacing) * 0.86);
	}

	.wrb-review-card:first-child {
		padding-top: 14px;
	}

	.wrb-review-copy p {
		max-width: 100%;
	}
}

@media (max-width: 860px) {
	.wrb-reviews-shell {
		padding-right: min(var(--wrb-shell-padding-right), 34px);
		padding-left: min(var(--wrb-shell-padding-left), 34px);
	}

	.wrb-review-card {
		grid-template-columns: minmax(104px, min(var(--wrb-meta-column-width), 140px)) minmax(0, 1fr) min(var(--wrb-date-column-width), 58px);
		gap: min(var(--wrb-column-gap), 20px);
	}

	.wrb-review-stars {
		gap: min(var(--wrb-star-gap), 6px);
	}
}

@media (max-width: 767px) {
	.wrb-reviews-shell {
		padding: calc(var(--wrb-shell-padding-top) * 0.7) min(var(--wrb-shell-padding-right), 20px) calc(var(--wrb-shell-padding-bottom) * 0.72) min(var(--wrb-shell-padding-left), 20px);
	}

	.wrb-reviews-header {
		margin-bottom: min(var(--wrb-header-bottom-spacing), 24px);
	}

	.wrb-reviews-header h2 {
		font-size: max(14.5px, calc(var(--wrb-title-size) * 0.78));
		letter-spacing: min(var(--wrb-title-letter-spacing), 0.065em);
	}

	.wrb-reviews-header span {
		width: min(var(--wrb-underline-width), 62px);
		margin-top: 13px;
	}

	.wrb-review-card {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 14px 18px;
		padding: calc(var(--wrb-review-vertical-spacing) * 0.6) 0 calc(var(--wrb-review-vertical-spacing) * 0.65);
	}

	.wrb-review-card:first-child {
		padding-top: 10px;
	}

	.wrb-review-meta {
		align-items: flex-start;
		text-align: left;
	}

	.wrb-review-name {
		margin-bottom: 6px;
	}

	.wrb-review-location {
		min-height: 0;
		max-width: none;
		line-height: 1.4;
	}

	.wrb-review-stars {
		justify-content: flex-start;
		gap: min(var(--wrb-star-gap), 7px);
		margin-top: 12px;
	}

	.wrb-review-copy {
		grid-column: 1 / -1;
	}

	.wrb-review-copy p {
		max-width: none;
	}

	.wrb-review-date {
		padding-top: 1px;
		text-align: right;
	}

	.wrb-reviews-status {
		margin-top: -8px;
		margin-bottom: 8px;
	}

	.wrb-reviews-pagination {
		gap: 8px;
		flex-wrap: wrap;
		padding-top: min(var(--wrb-pagination-top-spacing), 28px);
	}
}

@media (max-width: 480px) {
	.wrb-reviews-shell {
		padding: calc(var(--wrb-shell-padding-top) * 0.62) min(var(--wrb-shell-padding-right), 16px) calc(var(--wrb-shell-padding-bottom) * 0.64) min(var(--wrb-shell-padding-left), 16px);
	}

	.wrb-review-card {
		gap: 12px 14px;
	}

	.wrb-review-stars {
		gap: min(var(--wrb-star-gap), 5px);
	}

	.wrb-review-page {
		min-width: 36px;
		min-height: 36px;
		width: 36px;
		height: 36px;
	}
}

@media (max-width: 360px) {
	.wrb-reviews-shell {
		padding-right: min(var(--wrb-shell-padding-right), 14px);
		padding-left: min(var(--wrb-shell-padding-left), 14px);
	}

	.wrb-reviews-header h2 {
		font-size: max(14px, calc(var(--wrb-title-size) * 0.72));
	}
}


@media (prefers-reduced-motion: reduce) {
	.wrb-reviews-shell,
	.wrb-reviews-content,
	.wrb-review-page {
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
