/* BRN Google Reviews — structural styles only.
   All visual values (colors, fonts, sizes, spacing) come from the Elementor widget controls. */

.brn-gr {
	--brn-gr-cols: var(--brn-gr-spv, 3);
	--brn-gr-gap: 16px;
	--brn-gr-lines: 4;
	--brn-gr-speed: 300ms;
	position: relative;
	box-sizing: border-box;
}
.brn-gr *,
.brn-gr *::before,
.brn-gr *::after { box-sizing: border-box; }

/* Header */
.brn-gr-header { text-align: center; }
.brn-gr-label { display: block; }
.brn-gr-stars { display: flex; align-items: flex-end; line-height: 0; }
.brn-gr-header .brn-gr-stars { justify-content: var(--brn-gr-justify, center); }
.brn-gr-based { display: block; white-space: nowrap; }
.brn-gr-rating-sep { display: inline-block; }
.brn-gr-rating-sep-empty { margin: 0 !important; width: var(--brn-gr-rgap, 6px); }
.brn-gr-rating-num { unicode-bidi: isolate; }
.brn-gr-logo { line-height: 0; }
.brn-gr-logo svg { display: inline-block; width: 110px; height: 35px; max-width: 100%; vertical-align: top; }
.brn-gr-logo a { display: inline-block; line-height: 0; }

/* Stars (full / half / empty) */
.brn-gr-star { position: relative; display: inline-block; flex: 0 0 auto; line-height: 0; }
.brn-gr-star-base,
.brn-gr-star-fill { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; width: 100%; overflow: hidden; display: block; }
.brn-gr-star svg { display: block; width: 100%; height: 100%; }
.brn-gr-star-fill[style*="50%"] svg { width: 200%; max-width: none; }

/* Slider */
.brn-gr-slider { position: relative; display: flow-root; }
.brn-gr-viewport { overflow: hidden; padding: 5px 0 1px; margin-top: -5px; touch-action: pan-y; }
.brn-gr-track {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	transition: transform var(--brn-gr-speed) ease-out;
	will-change: transform;
}
.brn-gr-layout-grid .brn-gr-track { flex-wrap: wrap; transform: none !important; }
.brn-gr-slide {
	flex: 0 0 calc(100% / var(--brn-gr-cols));
	max-width: calc(100% / var(--brn-gr-cols));
	padding-left: calc(var(--brn-gr-gap) / 2);
	padding-right: calc(var(--brn-gr-gap) / 2);
	display: flex;
}
.brn-gr-card { position: relative; flex: 1 1 auto; width: 100%; min-width: 0; transition: background-color .2s, box-shadow .2s, border-color .2s; }
.brn-gr.is-dragging .brn-gr-track { transition: none; }

/* Card header */
.brn-gr-card-head { position: relative; display: flex; align-items: center; }
.brn-gr-avatar { flex: 0 0 auto; overflow: hidden; line-height: 0; }
.brn-gr-avatar img { display: block; object-fit: cover; max-width: none; margin: 0; border: 0; box-shadow: none; }
.brn-gr-avatar-letter { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: #fff; font-weight: 500; line-height: 1; }
.brn-gr-meta { flex: 1 1 auto; min-width: 0; }
.brn-gr-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.brn-gr-name a { color: inherit; text-decoration: none; }
.brn-gr-platform { position: absolute; top: 0; inset-inline-end: 0; line-height: 0; }
.brn-gr-platform svg { width: 100%; height: 100%; display: block; }

/* Card stars + verified */
.brn-gr-card .brn-gr-stars { display: flex; }
.brn-gr-verified { display: inline-block; flex: 0 0 auto; line-height: 0; }
.brn-gr-verified svg { width: 100%; height: 100%; display: block; }

/* Text + read more */
.brn-gr-text {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--brn-gr-lines);
	line-clamp: var(--brn-gr-lines);
	overflow: hidden;
	overflow-wrap: anywhere;
	text-align: start;
}
.brn-gr.brn-gr-nolimit .brn-gr-text,
.brn-gr-card.is-expanded .brn-gr-text { -webkit-line-clamp: unset; line-clamp: none; display: block; }
.brn-gr-more { display: flex; justify-content: flex-start; padding-top: 9px; }
.brn-gr-more[hidden] { display: none; }
.brn-gr-more-btn { display: block; cursor: pointer; text-decoration: none; transition: color .2s, opacity .2s; }

/* Arrows */
.brn-gr button.brn-gr-arrow,
.brn-gr button.brn-gr-arrow:hover,
.brn-gr button.brn-gr-arrow:focus {
	padding: 0;
	min-width: 0;
	min-height: 0;
	border: 0;
	font-size: 0;
	line-height: 0;
	text-transform: none;
	letter-spacing: 0;
	color: inherit;
	background-image: none;
	outline: none;
}
.brn-gr-arrow {
	--brn-gr-ring: 2px;
	width: 30px;
	height: 30px;
	margin-top: -15px;
	border-radius: 15px;
	background-color: #fff;
	--brn-gr-ring-color: #f4f4f4;
	position: absolute;
	top: 50%;
	z-index: 2;
	display: flex;
	padding: 0;
	margin: 0;
	border: 0;
	cursor: pointer;
	box-shadow: 0 0 0 var(--brn-gr-ring) var(--brn-gr-ring-color);
	transition: background-color .2s ease-out, box-shadow .2s ease-out;
	-webkit-appearance: none;
	appearance: none;
}
.brn-gr-arrow:hover,
.brn-gr-arrow:focus-visible { box-shadow: 0 0 0 var(--brn-gr-ring) var(--brn-gr-ring-color), 0 5px 25px 0 rgba(0, 0, 0, .05); outline: none; }
.brn-gr-arrow::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	border: 0 solid #575757;
	border-bottom-width: 2px;
	border-left-width: 2px;
	transition: border-color .2s ease-out;
}
/* chevron is optically shifted 2px toward its tip, like the original */
.brn-gr-next::before { transform: translate(calc(-50% - 2px), -50%) rotate(225deg); }
.brn-gr-prev::before { transform: translate(calc(-50% + 2px), -50%) rotate(45deg); }
[dir="rtl"] .brn-gr-next::before { transform: translate(calc(-50% + 2px), -50%) rotate(45deg); }
[dir="rtl"] .brn-gr-prev::before { transform: translate(calc(-50% - 2px), -50%) rotate(225deg); }
.brn-gr-arrow[disabled] { opacity: 0; pointer-events: none; }
.brn-gr.is-static .brn-gr-arrow,
.brn-gr.is-static .brn-gr-progress { visibility: hidden; }

/* Progress line */
.brn-gr-progress { position: relative; margin-left: auto; margin-right: auto; overflow: hidden; }
.brn-gr-progress-bar { position: absolute; top: 0; bottom: 0; inset-inline-start: 0; transition: transform var(--brn-gr-speed) ease-out, width .2s; }

/* Editor-only info */
.brn-gr-editor-info { font: 12px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; background: #fff8e5; color: #5c4400; border: 1px dashed #e0b84d; padding: 6px 10px; margin-bottom: 10px; border-radius: 4px; text-align: right; }
