/* Custom Google Reviews carousel — styled to match the client's Google
   reviews widget: a business-summary panel on the left and dark review
   cards in a carousel on the right, over the dark-red reviews band. */

.gr-section {
  display: flex;
  align-items: stretch;
  gap: 26px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 10px 20px 20px;
  box-sizing: border-box;
  font-family: "Poppins", "Roboto", Helvetica, Arial, sans-serif;
}

/* --- business summary panel --- */
.gr-summary {
  flex: 0 0 230px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  color: #fff;
  text-align: left;
}
.gr-logo { width: 72px; height: 72px; object-fit: contain; border-radius: 8px; margin-bottom: 12px; background: #fff; padding: 4px; }
.gr-biz { font-size: 20px; font-weight: 700; line-height: 1.2; margin-bottom: 6px; }
.gr-count { font-size: 14px; opacity: 0.9; margin: 4px 0 14px; }
.gr-write {
  display: inline-block;
  background: #1a73e8;
  color: #fff !important;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  padding: 9px 18px;
  border-radius: 6px;
  transition: background 0.15s;
}
.gr-write:hover { background: #1666d0; color: #fff !important; }

/* stars */
.gr-stars { line-height: 1; white-space: nowrap; }
.gr-star { color: #fbbc04; font-size: 17px; }
.gr-star-off { color: #cfcfcf; }
.gr-stars-lg .gr-star { font-size: 22px; }

/* --- carousel --- */
.gr-carousel-wrap {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
}
.gr-viewport { overflow: hidden; width: 100%; }
.gr-track {
  display: flex;
  gap: 18px;
  transition: transform 0.5s ease;
  will-change: transform;
}

/* --- dark review card --- */
.gr-card {
  flex: 0 0 calc((100% - 36px) / 3);
  box-sizing: border-box;
  background: #1c1c1c;
  border-radius: 10px;
  padding: 18px 18px 16px;
  color: #e8e8e8;
  min-width: 0;
}
.gr-card-top { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.gr-avatar {
  flex: 0 0 auto;
  width: 40px; height: 40px;
  border-radius: 50%;
  color: #fff;
  font-weight: 600;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
}
.gr-meta { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.gr-name { font-weight: 600; font-size: 15px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gr-when { font-size: 12px; color: #9aa0a6; }
.gr-g { flex: 0 0 auto; display: flex; }
.gr-card .gr-stars { margin-bottom: 8px; }
.gr-text { font-size: 14px; line-height: 1.5; color: #cfcfcf; }
.gr-more {
  color: #8ab4f8;
  text-decoration: none;
  font-weight: 500;
  white-space: nowrap;
}
.gr-more:hover { text-decoration: underline; color: #8ab4f8; }

/* arrows */
.gr-section .gr-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  background: rgba(0, 0, 0, 0.5) !important;
  color: #fff !important;
  border: none !important;
  width: 42px !important;
  height: 42px !important;
  min-width: 0 !important;
  border-radius: 50% !important;
  font-size: 24px !important;
  line-height: 1 !important;
  padding: 0 !important;
  cursor: pointer;
  opacity: 0.9;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
  transition: opacity 0.15s, background 0.15s;
}
.gr-section .gr-arrow:hover { opacity: 1; background: rgba(0, 0, 0, 0.78) !important; }
.gr-section .gr-prev { left: -20px; }
.gr-section .gr-next { right: -20px; }

/* Tablet: 20px left/right padding */
@media (max-width: 1024px) {
  .gr-card { flex-basis: calc((100% - 18px) / 2); }
  .gr-section {
    flex-direction: column;
    gap: 18px;
    align-items: center;
    padding-left: 20px;
    padding-right: 20px;
  }
  .gr-summary { flex-basis: auto; align-items: center; text-align: center; }
  /* In the column layout the section is align-items:center, which makes the
     carousel shrink-to-content and overflow. Force it to the section width so
     the cards stay inside the padding. */
  .gr-carousel-wrap { width: 100%; align-self: stretch; min-width: 0; }
}
@media (max-width: 640px) {
  .gr-card { flex-basis: 100%; }
}
/* Mobile: 15px left/right padding */
@media (max-width: 767px) {
  .gr-section {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* subtle text selection inside dark cards (overrides the theme's red ::selection) */
.gr-card ::selection { background: rgba(255, 255, 255, 0.28); color: #fff; }
.gr-card ::-moz-selection { background: rgba(255, 255, 255, 0.28); color: #fff; }
