/* Google Reviews Widget — front-end styles */
.grw {
	--grw-bg: #ffffff;
	--grw-card: #ffffff;
	--grw-text: #202124;
	--grw-muted: #5f6368;
	--grw-border: #e4e6eb;
	--grw-star: #fbbc05;
	--grw-star-empty: #dadce0;
	--grw-accent: #4285f4;
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	color: var(--grw-text);
	max-width: 100%;
}
.grw *,
.grw *::before,
.grw *::after { box-sizing: border-box; }

.grw.grw-theme-dark {
	--grw-bg: #1f1f24;
	--grw-card: #26262c;
	--grw-text: #f1f3f4;
	--grw-muted: #9aa0a6;
	--grw-border: #3a3a42;
	--grw-star-empty: #4a4a52;
}

/* Stars */
.grw-stars { display: inline-flex; line-height: 1; white-space: nowrap; }
.grw-star { color: var(--grw-star-empty); font-size: 18px; position: relative; }
.grw-star.is-full { color: var(--grw-star); }
.grw-star.is-half {
	color: var(--grw-star-empty);
	background: linear-gradient(90deg, var(--grw-star) 50%, var(--grw-star-empty) 50%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}

.grw-g { flex: none; }

/* ---------- Header ---------- */
.grw-header {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 4px 16px;
	flex-wrap: wrap;
}
.grw-header-logo { display: flex; }
.grw-header-meta { display: flex; flex-direction: column; gap: 2px; }
.grw-header-title { font-weight: 600; font-size: 15px; }
.grw-header-rate { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--grw-muted); }
.grw-header-rate strong { color: var(--grw-text); font-size: 16px; }
.grw-header-count { color: var(--grw-muted); }
.grw-header-cta {
	margin-left: auto;
	background: var(--grw-accent);
	color: #fff !important;
	text-decoration: none;
	padding: 8px 14px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
	white-space: nowrap;
}
.grw-header-cta:hover { opacity: .92; color: #fff; }

/* ---------- Carousel ---------- */
.grw-viewport { position: relative; }
.grw-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 4px;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.grw-track::-webkit-scrollbar { display: none; }

.grw-slide {
	flex: 0 0 320px;
	max-width: 85%;
	scroll-snap-align: start;
}
@media (max-width: 600px) {
	.grw-slide { flex-basis: 260px; }
}

.grw-card {
	background: var(--grw-card);
	border: 1px solid var(--grw-border);
	border-radius: 12px;
	padding: 18px;
	height: 100%;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-shadow: 0 1px 3px rgba(60, 64, 67, .08);
}
.grw-card-top { display: flex; align-items: center; gap: 10px; }
.grw-avatar {
	width: 44px; height: 44px;
	border-radius: 50%;
	object-fit: cover;
	flex: none;
}
.grw-avatar-fallback {
	display: flex; align-items: center; justify-content: center;
	background: var(--grw-accent);
	color: #fff; font-weight: 600; font-size: 18px;
}
.grw-card-id { display: flex; flex-direction: column; min-width: 0; }
.grw-card-name { font-weight: 600; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grw-card-when { font-size: 12px; color: var(--grw-muted); }
.grw-card-g { margin-left: auto; opacity: .9; }
.grw-card-text {
	font-size: 14px;
	line-height: 1.55;
	color: var(--grw-text);
	display: -webkit-box;
	-webkit-line-clamp: 6;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Nav buttons */
.grw-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 38px; height: 38px;
	border-radius: 50%;
	border: 1px solid var(--grw-border);
	background: var(--grw-bg);
	color: var(--grw-text);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	box-shadow: 0 2px 6px rgba(60,64,67,.18);
	transition: opacity .2s;
}
.grw-nav:hover { color: var(--grw-accent); }
.grw-prev { left: -6px; }
.grw-next { right: -6px; }
.grw-nav[disabled] { opacity: .35; cursor: default; }

/* Dots */
.grw-dots { display: flex; justify-content: center; gap: 6px; margin-top: 14px; }
.grw-dot {
	width: 8px; height: 8px; border-radius: 50%;
	border: none; padding: 0;
	background: var(--grw-star-empty);
	cursor: pointer;
}
.grw-dot.is-active { background: var(--grw-accent); }

/* ---------- Badge ---------- */
.grw-badge { display: inline-block; }
.grw-badge-inner {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	background: var(--grw-card);
	border: 1px solid var(--grw-border);
	border-radius: 12px;
	padding: 12px 18px;
	box-shadow: 0 1px 3px rgba(60,64,67,.10);
	color: var(--grw-text);
}
.grw-badge-inner:hover { box-shadow: 0 3px 10px rgba(60,64,67,.16); }
.grw-badge-logo svg { width: 28px; height: 28px; }
.grw-badge-body { display: flex; flex-direction: column; gap: 2px; }
.grw-badge-title { font-weight: 600; font-size: 14px; }
.grw-badge-rate { display: flex; align-items: center; gap: 6px; }
.grw-badge-rate strong { font-size: 20px; color: #e7711b; }
.grw-badge-rate .grw-star { font-size: 16px; }
.grw-badge-count { font-size: 12px; color: var(--grw-muted); }

/* Admin notice */
.grw-notice {
	background: #fff3cd;
	border: 1px solid #ffe69c;
	color: #664d03;
	padding: 10px 14px;
	border-radius: 6px;
	font-size: 14px;
}
