/* AG Review Layout */
.ag-rv, .ag-rv-badge {
	--ag-navy: #02247B;
	--ag-navy-mid: #1A3D9E;
	--ag-grey: #6B7280;
	--ag-border: #E5E7EB;
	--ag-off: #F5F6FA;
}

/* ---------- Stars ---------- */
.ag-rv-stars { position: relative; display: inline-block; line-height: 0; white-space: nowrap; vertical-align: middle; }
.ag-rv-stars__bg, .ag-rv-stars__fg { display: inline-flex; gap: 2px; }
.ag-rv-stars__fg { position: absolute; top: 0; left: 0; overflow: hidden; }
.ag-rv-stars svg { width: 18px; height: 18px; flex: 0 0 18px; }
.ag-rv-stars__bg svg { fill: #D4D6DD; }
.ag-rv-stars__fg svg { fill: var(--ag-navy); }

/* ---------- Badge under title ---------- */
.ag-rv-badge {
	display: inline-flex; align-items: center; gap: 6px; margin-top: 8px;
	font: 400 14px/1 'Helvetica Neue', Helvetica, Arial, sans-serif;
	color: var(--ag-grey) !important; text-decoration: none !important;
}
.ag-rv-badge strong { color: #111; font-weight: 700; }
.ag-rv-badge:hover span { text-decoration: underline; }
.ag-rv-badge .ag-rv-stars svg { width: 16px; height: 16px; flex-basis: 16px; }

/* ---------- Summary ---------- */
.ag-rv .ag-rv-summary {
	display: flex; flex-direction: column; gap: 20px; width: 100%;
	padding-bottom: 20px; border-bottom: 1px solid var(--ag-border);
}
.ag-rv .ag-rv-score { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.ag-rv .ag-rv-score__num {
	font: 700 48px/1 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #111; letter-spacing: -1px;
}
.ag-rv .ag-rv-score .ag-rv-stars svg { width: 20px; height: 20px; flex-basis: 20px; }
.ag-rv .ag-rv-score__count { font: 400 14px/1.4 'Helvetica Neue', Helvetica, Arial, sans-serif; color: var(--ag-grey); }

.ag-rv-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 0 22px; border-radius: 10px; cursor: pointer;
	font: 700 14px/1 'Helvetica Neue', Helvetica, Arial, sans-serif;
	background: var(--ag-navy); color: #fff; border: 1px solid var(--ag-navy);
	transition: background .15s, color .15s;
}
.ag-rv-btn:hover, .ag-rv-btn:focus-visible { background: var(--ag-navy-mid); border-color: var(--ag-navy-mid); color: #fff; }
.ag-rv .ag-rv-write { margin-top: 10px; width: 100%; }
.ag-rv-btn--outline { background: #fff; color: var(--ag-navy); border-color: #CBD2E1; }
.ag-rv-btn--outline:hover, .ag-rv-btn--outline:focus-visible { background: var(--ag-off); color: var(--ag-navy); border-color: var(--ag-navy); }
.ag-rv-more { width: 100%; margin-top: 4px; }
.ag-rv-more[hidden] { display: none !important; }

/* Bars: 5 to 1 stars, one per row */
.ag-rv .ag-rv-summary .elementor-widget-ts-review-stats { width: 100%; margin: 0 !important; }
.ag-rv .ts-review-bars { display: flex !important; flex-direction: column !important; gap: 8px !important; width: 100%; }
.ag-rv .ts-percentage-bar {
	display: grid !important; grid-template-columns: 34px 1fr 42px; align-items: center; gap: 10px;
	width: 100% !important; margin: 0 !important; padding: 0 !important;
}
.ag-rv .ts-percentage-bar .ts-bar-data, .ag-rv .ts-percentage-bar .ts-bar-data p { display: contents !important; }
.ag-rv .ag-rv-bar-label {
	grid-column: 1; grid-row: 1; display: inline-flex; align-items: center; gap: 3px;
	font: 400 14px/1 'Helvetica Neue', Helvetica, Arial, sans-serif; color: #111;
}
.ag-rv .ag-rv-bar-label svg { width: 13px; height: 13px; fill: var(--ag-navy); }
.ag-rv .ts-percentage-bar .ts-bar-chart {
	grid-column: 2; grid-row: 1; height: 8px !important; border-radius: 8px !important;
	background: #ECEEF3 !important; overflow: hidden; margin: 0 !important;
}
.ag-rv .ts-percentage-bar .ts-bar-chart > div { height: 100% !important; border-radius: 8px !important; background: var(--ag-navy) !important; }
.ag-rv .ag-rv-bar-pct {
	grid-column: 3; grid-row: 1; text-align: right;
	font: 400 13px/1 'Helvetica Neue', Helvetica, Arial, sans-serif !important; color: var(--ag-grey) !important;
}

/* ---------- Composer: hidden until "Write a review" ---------- */
.ag-rv:not(.ag-rv-open) .vxfeed .vxf-create-post:not(.vxf-create-comment):not(.vxf-expanded) { display: none !important; }
.ag-rv:not(.ag-rv-open) .vxfeed > div:has(> .vxf-create-post:not(.vxf-create-comment):not(.vxf-expanded)) { display: none !important; }
.ag-rv .vxfeed { row-gap: 0 !important; gap: 0 !important; }
.ag-rv .vxfeed > .vxf-filters { margin: 4px 0 4px !important; }
.ag-rv.ag-rv-open .vxfeed > div:has(> .vxf-create-post) { margin-bottom: 20px !important; }

/* ---------- Review cards ---------- */
.ag-rv .vxfeed > .vxf-subgrid.ag-rv-hidden { display: none !important; }
.ag-rv .vxfeed > .vxf-subgrid > .vxf-post {
	background: transparent !important; border: 0 !important; box-shadow: none !important;
	border-radius: 0 !important; padding: 20px 0 !important; margin: 0 !important;
	border-bottom: 1px solid var(--ag-border) !important;
}
.ag-rv .vxfeed > .vxf-subgrid { margin: 0 !important; }
.ag-rv .vxf-post .vxf-avatar img { width: 40px !important; height: 40px !important; }
.ag-rv .vxf-post .vxf-user > a { font-weight: 700 !important; color: #111 !important; }
/* hide @handle, keep date */
.ag-rv .vxf-post .vxf-user > span > a[href*="/members/"] { display: none !important; }
.ag-rv .vxf-post .vxf-user > span { color: var(--ag-grey) !important; font-size: 13px !important; }
.ag-rv .vxf-post .vxf-user > span a { color: var(--ag-grey) !important; }
/* stars only, no "Excellent" label */
.ag-rv .vxf-post .rev-score > span { display: none !important; }
.ag-rv .vxf-post .vxf-body-text { color: #222 !important; line-height: 1.55 !important; }

/* Footer: remove like and repost; reply only for logged-in users */
.ag-rv .vxf-post .vxf-footer .vxf-actions > a:has(.ray-holder) { display: none !important; }
.ag-rv .vxf-post .vxf-recent-likes { display: none !important; }
body:not(.logged-in) .ag-rv .vxfeed > .vxf-subgrid > .vxf-post > .vxf-footer { display: none !important; }
body.logged-in .ag-rv .vxfeed > .vxf-subgrid > .vxf-post > .vxf-footer { margin-top: 8px !important; }

/* Replies (e.g. response from the business) */
.ag-rv .vxf-comment-level {
	margin: 0 0 16px 52px !important; padding: 12px 14px !important;
	background: var(--ag-off) !important; border-radius: 12px !important; border: 0 !important;
}
.ag-rv .vxf-comment-level .vxf-post { background: transparent !important; border: 0 !important; padding: 6px 0 !important; }

/* ---------- Wider layouts ---------- */
.ag-rv-host { container-type: inline-size; }

@container (min-width: 520px) {
	.ag-rv .ag-rv-summary { flex-direction: row; align-items: center; gap: 32px; }
	.ag-rv .ag-rv-score { flex: 0 0 190px; }
	.ag-rv .ag-rv-summary .elementor-widget-ts-review-stats { flex: 1 1 auto; }
}

@container (min-width: 900px) {
	.ag-rv {
		display: grid !important; grid-template-columns: 280px minmax(0, 1fr);
		column-gap: 48px; align-items: start;
	}
	.ag-rv > .elementor-widget-heading { grid-column: 1; grid-row: 1; }
	.ag-rv > .ag-rv-summary {
		grid-column: 1; grid-row: 2; flex-direction: column; align-items: stretch;
		position: sticky; top: 100px; border-bottom: 0; padding-bottom: 0;
	}
	.ag-rv > .ag-rv-summary .ag-rv-score { flex: none; }
	.ag-rv > .elementor-widget-ts-timeline { grid-column: 2; grid-row: 1 / span 3; }
	.ag-rv > .ag-rv-more { grid-column: 2; grid-row: 4; }
	.ag-rv .vxfeed > .vxf-subgrid:first-of-type > .vxf-post { padding-top: 8px !important; }
}
