.reviews-section {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
}

.reviews-section > .section-heading {
  max-width: 780px;
}

.google-reviews-panel {
  padding: clamp(1.15rem, 3vw, 2rem);
  border-radius: 8px;
  box-shadow: var(--shadow);
}

.google-reviews-intro {
  text-align: left;
}

.google-reviews-intro h2 {
  margin-bottom: .4rem;
}

.google-reviews-intro > p:first-of-type {
  max-width: 54ch;
  margin: 0;
}

#google-reviews-status {
  min-height: 1.5em;
  margin: .8rem 0 0;
}

#google-reviews-status:empty {
  display: none;
}

#google-reviews[data-google-reviews-state="error"] #google-reviews-status {
  color: #7a2f25;
}

.google-reviews-error-link,
.google-place-link,
.google-review-link {
  font-weight: 700;
}

.google-reviews-results[hidden] {
  display: none;
}

.google-reviews-results {
  display: grid;
  gap: 1.35rem;
  margin-top: 1.5rem;
}

.google-place-summary {
  padding: 1.25rem;
  border: 1px solid #c5d4e6;
  border-radius: 6px;
  background: var(--blue-soft);
}

.google-place-name {
  margin: 0;
  color: var(--blue-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 500;
  line-height: 1.25;
}

.google-place-address {
  margin: .45rem 0 0;
  color: var(--muted);
}

.google-place-rating {
  margin: .8rem 0;
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 750;
}

.google-reviews-list-title {
  margin: .25rem 0 -.45rem;
  color: var(--blue-strong);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.35rem;
  font-weight: 500;
}

.google-review-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.google-review-card {
  height: 100%;
  padding: 1.2rem;
  border: 1px solid var(--line);
  border-left: 4px solid #669bd1;
  border-radius: 6px;
  background: #ffffff;
}

.google-review-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: .25rem 1rem;
}

.google-review-author-identity {
  display: flex;
  align-items: center;
  gap: .7rem;
  min-width: 0;
}

.google-review-author-photo {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 50%;
  object-fit: cover;
}

.google-review-author-details {
  display: grid;
  gap: .1rem;
  min-width: 0;
}

.google-review-author {
  color: var(--blue-strong);
  font-weight: 750;
}

a.google-review-author:hover,
a.google-review-author:focus-visible {
  text-decoration-thickness: 2px;
}

.google-review-date {
  color: var(--muted);
  font-size: .82rem;
}

.google-review-rating {
  margin: .55rem 0 0;
  color: #775a00;
  font-weight: 750;
}

.google-review-text {
  margin: .8rem 0 0;
  color: #33405b;
  font-size: .98rem;
  line-height: 1.7;
  white-space: pre-line;
}

.google-review-link {
  display: inline-block;
  margin-top: .85rem;
  font-size: .86rem;
}

.google-reviews-empty {
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--muted);
  background: var(--canvas);
}

.google-review-attribution {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem 1rem;
  padding: .9rem 0 0;
  border-top: 1px solid var(--line);
  background: transparent;
  color: #5e5e5e;
  font-family: Arial, sans-serif;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: normal;
}

.google-maps-attribution {
  color: #1f1f1f;
  font-weight: 400;
  white-space: nowrap;
}

.google-data-provider {
  display: block;
}

@media (max-width: 800px) {
  .google-review-list {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 520px) {
  .google-reviews-panel {
    padding: 1rem;
  }

  .google-place-summary,
  .google-review-card {
    padding: 1rem;
  }

  .google-review-header {
    display: grid;
  }
}
