/* Harris Google Reviews — compact navy cards in a scrolling row. Matches the site header (navy #263e57, red #b40000, Norwester). */
.hgr {
	--hgr-card: #1d3248;
	--hgr-border: rgba(255, 255, 255, 0.14);
	--hgr-accent: #b40000;
	--hgr-accent-hover: #8f0000;
	--hgr-text: #ffffff;
	--hgr-muted: rgba(255, 255, 255, 0.8);
	--hgr-star: #fbbc04;
	--hgr-star-off: rgba(255, 255, 255, 0.3);
	--hgr-display: var(--hec-font, 'Norwester', sans-serif);
	--hgr-gap: 16px;
	--hgr-per-row: 1.15;
	color: var(--hgr-text);
	margin: 2rem 0;
}
@media (min-width: 560px)  { .hgr { --hgr-per-row: 2; } }
@media (min-width: 900px)  { .hgr { --hgr-per-row: 3; } }
@media (min-width: 1200px) { .hgr { --hgr-per-row: 4; } }

.hgr *, .hgr *::before, .hgr *::after { box-sizing: border-box; }
.hgr p { margin: 0; }
.hgr a { color: var(--hgr-text); text-decoration: underline; text-underline-offset: 3px; }
.hgr a:hover { text-decoration-thickness: 2px; }
.hgr a:focus-visible, .hgr button:focus-visible, .hgr summary:focus-visible {
	outline: 3px solid #ffffff;
	outline-offset: 2px;
}
.hgr-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }

.hgr-heading { text-align: center; margin: 0 0 1.25rem; }

/* Rating summary */
.hgr-summary {
	background: var(--hgr-card);
	border: 1px solid var(--hgr-border);
	border-top: 3px solid var(--hgr-accent);
	border-radius: 4px;
	padding: 1rem;
	margin: 0 auto 1.5rem;
	max-width: 520px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.4rem;
}
.hgr-summary__score { display: flex; align-items: center; gap: 0.6rem; }
.hgr-summary .hgr-g svg { width: 26px; height: 26px; display: block; }
.hgr-avg { font-family: var(--hgr-display); font-size: 2.2rem; line-height: 1; letter-spacing: 0.05em; }
.hgr-count { color: var(--hgr-muted); }
.hgr-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.25rem 1.25rem; }

/* Carousel row */
.hgr-carousel { position: relative; }
.hgr-track {
	list-style: none;
	margin: 0;
	padding: 4px 2px 8px;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--hgr-per-row) - 1) * var(--hgr-gap)) / var(--hgr-per-row));
	gap: var(--hgr-gap);
	align-items: stretch; /* every card in the row is the same height */
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
}
.hgr-track::-webkit-scrollbar { display: none; }

/* Card */
.hgr-card {
	scroll-snap-align: start;
	background: var(--hgr-card);
	border: 1px solid var(--hgr-border);
	border-top: 3px solid var(--hgr-accent);
	border-radius: 4px;
	padding: 16px;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-align: left;
}
.hgr-card__head { display: flex; align-items: center; gap: 10px; }
.hgr-card__who { flex: 1; min-width: 0; }
.hgr-avatar { width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; object-fit: cover; }
.hgr-avatar--initial {
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--hgr-accent); color: #ffffff;
	font-family: var(--hgr-display); font-size: 1.1rem;
}
.hgr-name { font-weight: 700; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hgr-date { color: var(--hgr-muted); font-size: 0.85rem; line-height: 1.3; }
.hgr-card__g { align-self: flex-start; }
.hgr-card__g svg { width: 20px; height: 20px; display: block; }

/* Stars: grey row with a gold row clipped on top for partial ratings */
.hgr-stars { --hgr-star-size: 17px; position: relative; display: inline-block; line-height: 0; white-space: nowrap; align-self: flex-start; }
.hgr-stars--lg { --hgr-star-size: 24px; align-self: center; }
.hgr-stars svg { width: var(--hgr-star-size); height: var(--hgr-star-size); margin-right: 1px; }
.hgr-stars__base svg { fill: var(--hgr-star-off); }
.hgr-stars__fill { position: absolute; top: 0; left: 0; overflow: hidden; }
.hgr-stars__fill svg { fill: var(--hgr-star); }

/* Review text: 4 lines, then "Read more" */
.hgr-text { font-size: 0.95rem; line-height: 1.5; overflow-wrap: anywhere; }
.hgr-text.is-clamped {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	line-clamp: 4;
	overflow: hidden;
}
.hgr-more {
	align-self: flex-start;
	background: none; border: 0; padding: 2px 0; min-height: 24px;
	color: var(--hgr-text); font: inherit; font-size: 0.9rem;
	text-decoration: underline; text-underline-offset: 3px;
	cursor: pointer;
}

.hgr-reply { border-left: 3px solid var(--hgr-accent); padding: 2px 0 2px 10px; color: var(--hgr-muted); font-size: 0.9rem; }
.hgr-reply summary { cursor: pointer; color: var(--hgr-text); }
.hgr-reply p { margin-top: 0.4em; }

/* Controls bar under the cards: back · pause/play · forward */
.hgr-controls { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 16px; }
.hgr-controls[hidden] { display: none; }
.hgr-nav {
	width: 44px; height: 44px;
	border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.85);
	background: var(--hgr-card); color: #ffffff;
	display: inline-flex; align-items: center; justify-content: center;
	padding: 0; cursor: pointer;
	transition: background 0.2s, border-color 0.2s;
}
.hgr-nav[hidden] { display: none; }
.hgr-nav:hover { background: var(--hgr-accent); border-color: var(--hgr-accent); }
.hgr-nav svg { width: 20px; height: 20px; }
.hgr-nav--toggle .hgr-icon-play { display: none; }
.hgr-nav--toggle.is-paused .hgr-icon-play { display: block; }
.hgr-nav--toggle.is-paused .hgr-icon-pause { display: none; }

/* ---------- [harris_reviews_badge] ---------- */
.hgr-badge-wrap { display: flex; margin: 0.5rem 0; }
.hgr-badge-wrap--center { justify-content: center; }
.hgr-badge-wrap--right { justify-content: flex-end; }
.hgr-badge {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 10px 16px 10px 12px;
	background: #ffffff;
	color: #1f1f1f;
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	font-size: 14px;
	line-height: 1.25;
	text-transform: none;
	letter-spacing: normal;
	text-decoration: none !important;
	position: relative;
	transition: transform 0.15s, box-shadow 0.15s;
}
a.hgr-badge:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3); }
a.hgr-badge:focus-visible { outline: 3px solid #ffffff; outline-offset: 3px; }
.hgr-badge__g svg { width: 44px; height: 44px; display: block; }
.hgr-badge__body { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.hgr-badge__top { display: flex; align-items: center; gap: 6px; }
.hgr-badge .hgr-stars { --hgr-star-size: 17px; }
.hgr-badge .hgr-stars__base svg { fill: #dadce0; }
.hgr-badge .hgr-stars__fill svg { fill: #fbbc04; }
.hgr-badge__avg { font-weight: 700; font-size: 15px; color: #1f1f1f; }
.hgr-badge__label { font-weight: 700; font-size: 15px; color: #1f1f1f; }
.hgr-badge__sub { font-size: 12px; color: #5f6368; }

@media (prefers-reduced-motion: reduce) {
	.hgr-track { scroll-behavior: auto; }
	.hgr * { transition: none !important; }
}
