/* Base */
.grib-google-reviews {
  border-radius:16px;
  padding:18px;
  box-sizing:border-box;
}

.grib-google-reviews * {
  box-sizing:border-box;
}

/* =========================
   LAYOUT GLOBAL (FLEX)
   ========================= */

.grib-gr-wrap {
  display:flex;
  gap:24px;
  align-items:stretch;
}

.grib-gr-wrap.has-summary {
  flex-wrap:nowrap;
}

.grib-gr-summary {
  flex:0 0 280px;
  padding:10px 0;
}

.grib-gr-main {
  flex:1 1 auto;
  min-width:0; /* IMPORTANT pour éviter overflow */
}

/* Responsive */
@media (max-width: 820px) {
  .grib-gr-wrap.has-summary {
	flex-direction:column;
  }

  .grib-gr-summary {
	flex:1 1 auto;
  }
}

/* =========================
   SUMMARY
   ========================= */

.grib-gr-quality {
  font-weight:700;
  font-size:18px;
  margin:0 0 8px;
}

.grib-gr-summary-stars {
  letter-spacing:1px;
  font-size:18px;
  margin:0 0 10px;
}

.grib-gr-score {
  opacity:.9;
  font-size:14px;
  margin:0;
}

.grib-gr-score strong {
  font-size:20px;
}

.grib-gr-place {
  margin-top:10px;
  opacity:.8;
}

/* =========================
   LIST MODE
   ========================= */

.grib-gr-list {
  display:flex;
  flex-direction:column;
  gap:18px;
}

.grib-gr-item {
  border-radius:14px;
  padding:16px 0;
}

.grib-gr-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}

.grib-gr-author {
  font-weight:600;
}

.grib-gr-stars {
  letter-spacing:1px;
}

.grib-gr-text {
  margin:0;
  white-space:pre-wrap;
}

.grib-gr-time {
  opacity:.75;
  font-size:12px;
  margin-top:8px;
}

/* =========================
   SLIDER (NO GAP — spacing via padding)
   ========================= */

.grib-gr-slider {
  position:relative;
  width:100%;
  max-width:100%;
}

.grib-gr-viewport {
  overflow:hidden;
  width:100%;
  touch-action:pan-y;
}

.grib-gr-track {
  display:flex;
  gap:0; /* IMPORTANT: plus de gap */
  will-change:transform;
  transition:transform .35s ease;
  cursor:grab;
}

.grib-gr-viewport:active .grib-gr-track {
  cursor:grabbing;
}

/* spacing horizontal entre cartes */
.grib-gr-slide {
  flex:0 0 100%;
  padding:0 9px; /* 18px total entre 2 slides */
}

/* 3 par 3 */
.grib-gr-per-3 .grib-gr-slide {
  flex:0 0 calc(100% / 3);
}

/* 2 par 2 tablette */
@media (max-width: 900px) {
  .grib-gr-per-3 .grib-gr-slide {
	flex:0 0 50%;
  }
}

/* 1 par 1 mobile */
@media (max-width: 600px) {
  .grib-gr-per-3 .grib-gr-slide {
	flex:0 0 100%;
  }
}

/* =========================
   NAVIGATION
   ========================= */

.grib-gr-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:18px;
  gap:10px;
}

.grib-gr-btn {
  background:transparent;
  border:none;
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;
  font-size:18px;
}

.grib-gr-btn[disabled] {
  opacity:.3;
  cursor:default;
}

.grib-gr-dots {
  display:flex;
  gap:8px;
  justify-content:center;
  flex:1;
}

.grib-gr-dot {
  width:9px;
  height:9px;
  border-radius:99px;
  background:#ccc;
  cursor:pointer;
  border:none;
}

.grib-gr-dot.is-active {
  background:#111;
}

.grib-gr-spacer {
  flex:1;
}

/* =========================
   FOOTER
   ========================= */

.grib-gr-footer {
  margin-top:20px;
}

.grib-gr-link {
  display:inline-block;
  text-decoration:underline;
}

/* =========================
   ERROR
   ========================= */

.grib-google-reviews--error {
  background:#fff5f5;
  border-radius:14px;
  padding:14px;
}