.cgrs-wrap { margin: 32px 0; position: relative; }
.cgrs-heading { margin-bottom: 10px; }
.cgrs-summary { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; font-weight: 600; }
.cgrs-stars { color: #f5a623; letter-spacing: 1px; white-space: nowrap; }
.cgrs-slider { position: relative; display: flex; align-items: stretch; gap: 12px; }
.cgrs-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (16px * (var(--cgrs-cards, 3) - 1))) / var(--cgrs-cards, 3)); gap: 16px; overflow: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; width: 100%; }
.cgrs-card { scroll-snap-align: start; background: #fff; border: 1px solid rgba(0,0,0,.1); border-radius: 12px; padding: 18px; box-shadow: 0 8px 24px rgba(0,0,0,.06); min-height: 220px; display: flex; flex-direction: column; }
.cgrs-card h3 { font-size: 18px; margin: 8px 0 12px; }
.cgrs-review-text { margin: 0 0 12px; line-height: 1.55; }
.cgrs-read-more { align-self: flex-start; border: 0; background: transparent; color: #2463eb; padding: 0; cursor: pointer; font-weight: 700; margin-top: auto; }
.cgrs-google-link { display: inline-block; margin-top: 12px; font-weight: 700; }
.cgrs-arrow { border: 1px solid rgba(0,0,0,.12); background: #fff; border-radius: 999px; width: 38px; min-width: 38px; font-size: 30px; line-height: 1; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.08); }

.cgrs-view-all-wrap { text-align: center; margin-top: 20px; }
.cgrs-view-all-link { display: inline-block; padding: 10px 18px; border-radius: 999px; background: #4285f4; color: #fff !important; text-decoration: none; font-weight: 700; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.cgrs-view-all-link:hover, .cgrs-view-all-link:focus { color: #fff !important; text-decoration: none; filter: brightness(.95); }
.cgrs-attribution { font-size: 13px; margin-top: 10px; opacity: .7; }
.cgrs-error { border-left: 4px solid #d63638; padding: 10px 12px; background: #fff5f5; }
@media (max-width: 980px) { .cgrs-track { grid-auto-columns: calc((100% - 16px) / 2); } }
@media (max-width: 640px) { .cgrs-track { grid-auto-columns: 100%; } .cgrs-arrow { width: 34px; min-width: 34px; } }
