.sw-google-reviews {
	padding-block: clamp(4rem, 7vw, 5.5rem);
	border-block: 1px solid var(--sw-color-border, #e2e8f0);
	background: linear-gradient(135deg, #f7fafd 0%, #edf5fd 100%);
}

.sw-google-reviews,
.sw-google-reviews * {
	box-sizing: border-box;
}

.sw-google-reviews__layout {
	display: grid;
	gap: 2rem;
}

.sw-google-reviews--about .sw-google-reviews__layout {
	grid-template-columns: minmax(15rem, .62fr) minmax(0, 1.7fr);
	align-items: start;
	gap: clamp(2rem, 5vw, 4rem);
}

.sw-google-reviews__intro {
	max-inline-size: 45rem;
}

.sw-google-reviews__intro h2 {
	margin: 0 0 .9rem;
	color: var(--sw-color-ink, #0c1f3a);
	font-family: var(--sw-font-heading, sans-serif);
	font-size: clamp(2.1rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1.1;
}

.sw-google-reviews__intro > p:not(.sw-editorial-eyebrow) {
	margin: 0;
	color: var(--sw-color-muted, #5a6473);
}

.sw-google-reviews__summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem .75rem;
	margin-block-start: 1.35rem;
}

.sw-google-reviews__source {
	color: #4285f4;
	font-size: 1rem;
	font-weight: 700;
}

.sw-google-reviews__summary strong {
	color: var(--sw-color-ink, #0c1f3a);
	font-size: 1.35rem;
	line-height: 1;
}

.sw-google-reviews__summary > span:not(.sw-google-reviews__source) {
	color: var(--sw-color-muted, #5a6473);
	font-size: .85rem;
}

.sw-google-reviews__summary a {
	inline-size: 100%;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin-block-start: .25rem;
	color: var(--sw-color-primary, #005fcc);
	font-size: .88rem;
	font-weight: 700;
	text-decoration: none;
}

.sw-google-reviews__summary a:hover {
	color: var(--sw-color-accent, #017ef6);
}

.sw-google-reviews__carousel {
	min-inline-size: 0;
}

.sw-google-reviews__controls {
	display: flex;
	justify-content: flex-end;
	gap: .6rem;
	margin-block-end: 1rem;
}

.sw-google-reviews__controls button {
	inline-size: 3rem;
	block-size: 3rem;
	display: grid;
	place-items: center;
	padding: 0;
	border: 1px solid #b9d7f5;
	border-radius: var(--sw-radius-sm, .5rem);
	background: #fff;
	color: var(--sw-color-primary, #005fcc);
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
}

.sw-google-reviews__controls button:hover:not(:disabled) {
	border-color: var(--sw-color-primary, #005fcc);
	background: var(--sw-color-primary, #005fcc);
	color: #fff;
}

.sw-google-reviews__controls button:disabled {
	opacity: .38;
	cursor: default;
}

.sw-google-reviews__controls button:focus-visible,
.sw-google-reviews__track:focus-visible,
.sw-google-review-card button:focus-visible,
.sw-google-review-card a:focus-visible,
.sw-google-reviews__summary a:focus-visible {
	outline: 3px solid rgba(1, 126, 246, .5);
	outline-offset: 3px;
}

.sw-google-reviews__track {
	min-inline-size: 0;
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;
	overflow-x: auto;
	padding: .2rem .15rem 1rem;
	scroll-behavior: smooth;
	scroll-padding-inline: .15rem;
	scroll-snap-type: x mandatory;
	scrollbar-color: #9fc8ef #edf5fd;
	scrollbar-width: thin;
}

.sw-google-review-card {
	min-inline-size: 0;
	flex: 0 0 calc((100% - 3rem) / 3);
	padding: 1.5rem;
	border: 1px solid var(--sw-color-border, #e2e8f0);
	border-radius: var(--sw-radius-md, .75rem);
	background: #fff;
	box-shadow: 0 .75rem 2rem rgba(12, 31, 58, .07);
	scroll-snap-align: start;
}

.sw-google-reviews--about .sw-google-review-card {
	flex-basis: calc((100% - 1.5rem) / 2);
}

.sw-google-review-card > header {
	display: flex;
	align-items: center;
	gap: .85rem;
}

.sw-google-review-card__avatar {
	inline-size: 3rem;
	block-size: 3rem;
	flex: 0 0 3rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	object-fit: cover;
}

.sw-google-review-card__avatar--fallback {
	background: #e8f4ff;
	color: var(--sw-color-primary, #005fcc);
	font-weight: 700;
}

.sw-google-review-card__avatar svg {
	inline-size: 1.45rem;
	block-size: 1.45rem;
}

.sw-google-review-card h3 {
	margin: 0;
	color: var(--sw-color-ink, #0c1f3a);
	font-family: var(--sw-font-body, sans-serif);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.3;
}

.sw-google-review-card time {
	display: block;
	margin-block-start: .15rem;
	color: var(--sw-color-muted, #5a6473);
	font-size: .76rem;
	line-height: 1.3;
}

.sw-google-review-card__stars {
	display: flex;
	gap: .12rem;
	margin-block: 1rem .75rem;
	color: #f9ab00;
	font-size: 1.05rem;
	line-height: 1;
}

.sw-google-review-card__stars .is-empty {
	color: #d6dde6;
}

.sw-google-review-card__text {
	margin: 0;
	color: var(--sw-color-text, #334155);
	font-size: .95rem;
	line-height: 1.68;
	white-space: pre-line;
}

.sw-google-review-card__text.is-collapsed {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 7;
}

.sw-google-review-card__footer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	margin-block-start: 1rem;
	padding-block-start: .9rem;
	border-block-start: 1px solid var(--sw-color-border, #e2e8f0);
}

.sw-google-review-card__footer button,
.sw-google-review-card__footer a {
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--sw-color-primary, #005fcc);
	font: inherit;
	font-size: .78rem;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

@media (max-width: 1024px) {
	.sw-google-reviews--about .sw-google-reviews__layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.sw-google-review-card,
	.sw-google-reviews--about .sw-google-review-card {
		flex-basis: calc((100% - 1.5rem) / 2);
	}
}

@media (max-width: 767px) {
	.sw-google-reviews {
		padding-block: 3.5rem;
	}

	.sw-google-reviews__controls {
		justify-content: flex-start;
	}

	.sw-google-review-card,
	.sw-google-reviews--about .sw-google-review-card {
		flex-basis: 88%;
		padding: 1.25rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sw-google-reviews__track {
		scroll-behavior: auto;
	}
}
