.sr-reviews {
	display: grid;
	gap: 1.5rem;
	margin: 1.5rem 0;
}
.sr-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sr-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sr-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 782px) {
	.sr-cols-2, .sr-cols-3, .sr-cols-4 { grid-template-columns: 1fr; }
}

.sr-reviews .sr-review {
	padding: 1.25rem 1.5rem;
	border: 1px solid rgba(0, 0, 0, .1);
	border-radius: 8px;
	background: rgba(255, 255, 255, .6);
}
.sr-review__title { margin: 0 0 .4rem; font-size: 1.15em; }
.sr-review__rating { margin-bottom: .4rem; }
.sr-review__author { font-size: .9em; margin-bottom: .6rem; opacity: .85; }
.sr-review__name { font-weight: 600; }
.sr-review__role::before { content: " · "; }
.sr-review__name:only-child + .sr-review__role::before,
.sr-review__role:first-child::before { content: ""; }
.sr-review__body > :last-child { margin-bottom: 0; }

.sr-review__cats {
	list-style: none;
	margin: .9rem 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
}
.sr-review__cats a {
	display: inline-block;
	font-size: .8em;
	padding: .15em .6em;
	border-radius: 999px;
	background: rgba(0, 0, 0, .06);
	text-decoration: none;
}

/* Star rating: grey base with a gold overlay clipped to the rating width */
.sr-stars {
	position: relative;
	display: inline-block;
	font-size: 1.15em;
	line-height: 1;
	letter-spacing: 2px;
	font-family: Arial, sans-serif;
	vertical-align: middle;
}
.sr-stars::before { content: "★★★★★"; color: #d6d6d6; }
.sr-stars__fill {
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
	white-space: nowrap;
}
.sr-stars__fill::before { content: "★★★★★"; color: #f5a623; }

.sr-average { display: flex; align-items: center; gap: .5rem; margin: 1rem 0; }
.sr-average__text { font-size: .95em; }

/* Source badge (Google, Facebook, etc.) */
.sr-review__source { margin: -.2rem 0 .6rem; }
.sr-source {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	font-size: .8em;
	font-weight: 600;
	text-decoration: none;
	opacity: .85;
}
.sr-source::before {
	content: "";
	width: .6em;
	height: .6em;
	border-radius: 50%;
	background: #888;
}
a.sr-source:hover { opacity: 1; text-decoration: underline; }
.sr-source--google::before   { background: #4285f4; }
.sr-source--facebook::before { background: #1877f2; }
.sr-source--website::before  { background: #2e7d32; }
.sr-source--email::before    { background: #8e24aa; }

.sr-stars__number { font-size: .85em; margin-left: .3em; vertical-align: middle; opacity: .8; }

/* Services chips get an outline so they read differently from categories */
.sr-review__cats--services { margin-top: .4rem; }
.sr-review__cats--services a { background: transparent; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .2); }
