/* Google Reviews widget - v1.0.0 */

.gr-widget {
  --gr-accent: #1a73e8;
  --gr-star: #fbbc04;
  --gr-star-empty: #dadce0;
  --gr-bg: transparent;
  --gr-card: #ffffff;
  --gr-border: #e4e7eb;
  --gr-text: #1f2328;
  --gr-muted: #62676d;
  --gr-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 8px 24px -12px rgba(16, 24, 40, .18);
  --gr-radius: 14px;
  --gr-columns: 3;
  --gr-clamp: 6;

  box-sizing: border-box;
  background: var(--gr-bg);
  color: var(--gr-text);
  font-family: inherit;
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

.gr-widget *,
.gr-widget *::before,
.gr-widget *::after { box-sizing: border-box; }

.gr-widget[data-gr-theme="dark"] {
  --gr-card: #17191c;
  --gr-border: #2c3034;
  --gr-text: #ecedee;
  --gr-muted: #9aa0a6;
  --gr-star-empty: #3c4043;
  --gr-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}

@media (prefers-color-scheme: dark) {
  .gr-widget[data-gr-theme="auto"] {
    --gr-card: #17191c;
    --gr-border: #2c3034;
    --gr-text: #ecedee;
    --gr-muted: #9aa0a6;
    --gr-star-empty: #3c4043;
    --gr-shadow: 0 1px 2px rgba(0, 0, 0, .4);
  }
}

.gr-heading {
  margin: 0 0 18px;
  font-size: 1.5rem;
  font-weight: 650;
  letter-spacing: -.015em;
  color: var(--gr-text);
}

/* ---------- summary ---------- */

.gr-summary {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 22px;
}

.gr-summary-badge {
  margin: 0;
  padding: 14px 18px;
  background: var(--gr-card);
  border: 1px solid var(--gr-border);
  border-radius: var(--gr-radius);
  box-shadow: var(--gr-shadow);
  display: inline-flex;
}

.gr-summary-mark { flex: 0 0 auto; line-height: 0; }
.gr-summary-mark .gr-g { width: 30px; height: 30px; }

.gr-summary-name {
  font-weight: 600;
  letter-spacing: -.01em;
  margin-bottom: 1px;
}

.gr-summary-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.gr-score {
  font-size: 1.25rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.gr-summary-meta {
  font-size: .82rem;
  color: var(--gr-muted);
  margin-top: 3px;
}

.gr-summary-meta a {
  color: var(--gr-muted);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}

.gr-summary-meta a:hover {
  color: var(--gr-accent);
  border-bottom-color: currentColor;
}

.gr-sep { margin: 0 6px; opacity: .5; }

/* ---------- stars ---------- */

.gr-stars {
  position: relative;
  display: inline-block;
  line-height: 0;
  white-space: nowrap;
}

.gr-stars-base,
.gr-stars-fill { display: flex; gap: 1px; }

.gr-stars-base svg { fill: var(--gr-star-empty); }

.gr-stars-fill {
  position: absolute;
  inset: 0 auto 0 0;
  overflow: hidden;
}

.gr-stars-fill svg { fill: var(--gr-star); }

.gr-stars svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  display: block;
}

/* ---------- cards ---------- */

.gr-items {
  display: grid;
  grid-template-columns: repeat(var(--gr-columns), minmax(0, 1fr));
  gap: 16px;
}

.gr-layout-list .gr-items { grid-template-columns: 1fr; }

.gr-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
  background: var(--gr-card);
  border: 1px solid var(--gr-border);
  border-radius: var(--gr-radius);
  box-shadow: var(--gr-shadow);
  transition: transform .18s ease, box-shadow .18s ease;
}

@media (hover: hover) {
  .gr-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(16, 24, 40, .07), 0 16px 32px -16px rgba(16, 24, 40, .25);
  }
}

.gr-card-head {
  display: flex;
  align-items: center;
  gap: 11px;
}

.gr-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 auto;
  background: var(--gr-border);
}

.gr-avatar-fallback {
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: .95rem;
  color: #fff;
  background: var(--gr-accent);
}

.gr-who {
  display: flex;
  flex-direction: column;
  min-width: 0;
  flex: 1 1 auto;
}

.gr-author {
  font-weight: 600;
  font-size: .93rem;
  color: var(--gr-text);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

a.gr-author:hover { color: var(--gr-accent); }

.gr-when {
  font-size: .78rem;
  color: var(--gr-muted);
}

.gr-card-mark { line-height: 0; flex: 0 0 auto; }
.gr-card-mark .gr-g { width: 18px; height: 18px; }

.gr-text {
  font-size: .92rem;
  color: var(--gr-text);
  word-break: break-word;
}

.gr-text.gr-clamped {
  display: -webkit-box;
  -webkit-line-clamp: var(--gr-clamp);
  line-clamp: var(--gr-clamp);
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gr-more {
  align-self: flex-start;
  margin: 0;
  padding: 0;
  font: inherit;
  font-size: .82rem;
  font-weight: 600;
  color: var(--gr-accent);
  background: none;
  border: 0;
  cursor: pointer;
}

.gr-more:hover { text-decoration: underline; }

.gr-empty {
  margin: 0;
  padding: 20px;
  text-align: center;
  color: var(--gr-muted);
  border: 1px dashed var(--gr-border);
  border-radius: var(--gr-radius);
}

.gr-credit {
  margin: 14px 0 0;
  font-size: .74rem;
  color: var(--gr-muted);
}

/* ---------- carousel ---------- */

.gr-carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
}

.gr-track {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 4px;
  margin: -4px;
  flex: 1 1 auto;
}

.gr-track::-webkit-scrollbar { display: none; }
.gr-track:focus-visible { outline: 2px solid var(--gr-accent); outline-offset: 4px; }

.gr-track > .gr-card {
  flex: 0 0 calc((100% - (var(--gr-columns) - 1) * 16px) / var(--gr-columns));
  scroll-snap-align: start;
}

.gr-nav {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  color: var(--gr-text);
  background: var(--gr-card);
  border: 1px solid var(--gr-border);
  border-radius: 50%;
  box-shadow: var(--gr-shadow);
  cursor: pointer;
  transition: opacity .15s ease, color .15s ease;
}

.gr-nav svg { width: 18px; height: 18px; }
.gr-nav:hover { color: var(--gr-accent); }
.gr-nav[disabled] { opacity: .35; cursor: default; }
.gr-nav[disabled]:hover { color: var(--gr-text); }

.gr-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 14px;
}

.gr-dots span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gr-star-empty);
  transition: width .2s ease, background .2s ease;
}

.gr-dots span.is-active {
  width: 20px;
  border-radius: 3px;
  background: var(--gr-accent);
}

/* ---------- responsive ---------- */

@media (max-width: 900px) {
  .gr-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gr-track > .gr-card { flex-basis: calc((100% - 16px) / 2); }
}

@media (max-width: 620px) {
  .gr-items { grid-template-columns: 1fr; }
  .gr-track > .gr-card { flex-basis: 86%; }
  .gr-nav { display: none; }
  .gr-summary { flex-wrap: wrap; }
}

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