/* Google-Bewertungen – Aufbau wie in den Schwesterprojekten (Slider mit
   Endlos-Lauf, Weiterlesen-Umschalter), Schrift und Farben von Gerold
   Jensen. Die Schriftfamilie erbt bewusst vom Theme. */

/* Das umgebende <main> hat 30px Innenabstand. Damit die Fläche bis an
   beide Ränder reicht, wird er hier wieder aufgehoben. */
.gjr-sektion {
  padding: 55px 0 60px;
  background: #f7f8f9;
  margin-left: -30px;
  margin-right: -30px;
}
.gjr-innen { max-width: 1248px; margin: 0 auto; padding: 0 30px; }

/* Überschrift im Stil der übrigen Seitentitel (vgl. „Gerold Jensen“ auf
   der Startseite): Schrift und Farbe kommen aus dem Theme. */
.gjr-kopf { margin: 0 0 36px; text-align: center; }
.gjr-kopf .gj-title { margin: 0; }
/* Die Titelklasse des Themes richtet linksbündig aus – hier mittig. */
.gjr-kopf .gj-title-heading { text-align: center !important; }

.gjr { display: grid; gap: 28px; }
@media (min-width: 980px) { .gjr { grid-template-columns: 290px 1fr; align-items: center; } }

/* ---------- Gesamtwertung ---------- */
.gjr-summe { text-align: center; padding: 14px 0; }

/* Sterne: graue Reihe als Grund, goldene Reihe darüber auf den Anteil
   beschnitten – so lassen sich auch halbe Sterne exakt darstellen. */
.gjr-sterne-gross {
  position: relative;
  display: inline-block;
  font-size: 38px;
  line-height: 1;
  letter-spacing: 4px;
  white-space: nowrap;
}
.gjr-grund { color: #d5d5d5; }
.gjr-fuellung {
  position: absolute; inset: 0;
  width: var(--anteil, 100%);
  overflow: hidden;
  color: #f5b301;
}

.gjr-anzahl {
  margin: 16px 0 18px;
  font-size: 17px;
  color: #212934;
}
.gjr-anzahl strong { font-weight: 700; }

.gjr-glogo {
  display: inline-block;
  text-decoration: none;
  line-height: 1;
}
.gjr-glogo span { font-size: 40px; font-weight: 700; letter-spacing: -1px; }
.g-b { color: #4285f4; } .g-r { color: #ea4335; }
.g-y { color: #fbbc05; } .g-g { color: #34a853; }
.gjr-glogo:hover { opacity: .85; }

@media (max-width: 800px) {
  .gjr-sterne-gross { font-size: 32px; }
  .gjr-anzahl { font-size: 15.5px; }
  .gjr-glogo span { font-size: 34px; }
}

/* ---------- Slider ---------- */
.gjr-slider { position: relative; min-width: 0; }

.gjr-spur {
  display: flex; flex-wrap: nowrap; align-items: stretch; gap: 24px;
  overflow-x: auto; overflow-y: hidden;
  scroll-behavior: auto; scroll-snap-type: x proximity;
  -ms-overflow-style: none; scrollbar-width: none;
}
.gjr-spur::-webkit-scrollbar { display: none; }

.gjr-karte {
  flex: 0 0 calc((100% - 48px) / 3);
  scroll-snap-align: start;
  background: #fff; border: 1px solid #e5e4e3; border-radius: 10px;
  padding: 24px; display: flex; flex-direction: column; gap: 10px;
}
@media (max-width: 900px) { .gjr-karte { flex-basis: calc((100% - 24px) / 2); } }
@media (max-width: 620px) { .gjr-karte { flex-basis: 100%; } }

.gjr-karte-kopf { display: flex; align-items: center; gap: 12px; }
.gjr-avatar {
  width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: 0 0 auto;
  background: #df694d; color: #fff; display: flex; align-items: center;
  justify-content: center; font-weight: 700; font-size: 17px;
}
.gjr-karte-kopf .name { margin: 0; font-weight: 600; font-size: 15px; line-height: 1.3; color: #212934; }
.gjr-karte-kopf .wann { margin: 0; font-size: 12.5px; color: #6f737a; }
.gjr-karte .gjr-sterne { margin: 0; font-size: 15px; }

.gjr-text { margin: 0; color: #4a4e57; font-size: 15px; line-height: 1.6; }
.gjr-text.ist-gekuerzt {
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical;
  overflow: hidden;
}
.gjr-mehr {
  margin-top: auto; align-self: flex-start; background: none; border: 0; padding: 0;
  cursor: pointer; font: inherit; font-size: 13.5px; font-weight: 600;
  color: #df694d; text-decoration: underline;
}
.gjr-mehr:hover { opacity: .75; }

/* Blättern */
.gjr-nav {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 42px; height: 42px; border-radius: 50%; cursor: pointer;
  background: #fff; border: 1px solid #e5e4e3; color: #212934;
  font-size: 22px; line-height: 1; display: flex; align-items: center;
  justify-content: center; box-shadow: 0 2px 8px rgba(33, 41, 52, .12);
  transition: background .2s ease, color .2s ease;
}
.gjr-nav:hover { background: #df694d; color: #fff; border-color: #df694d; }
.gjr-vor { left: -21px; }
.gjr-zurueck { right: -21px; }
@media (max-width: 700px) {
  .gjr-vor { left: -8px; }
  .gjr-zurueck { right: -8px; }
}

/* Platzhalter, solange kein Schlüssel hinterlegt ist */
.gjr-hinweis {
  background: #fff; border: 1px solid #e5e4e3; border-left: 4px solid #df694d;
  border-radius: 6px; padding: 22px 26px; grid-column: 1 / -1;
}
.gjr-hinweis h3 { margin: 0 0 8px; font-size: 17px; color: #212934; }
.gjr-hinweis p { margin: 0 0 8px; color: #4a4e57; font-size: 15px; line-height: 1.6; }
.gjr-hinweis code { background: #f2f3f5; padding: 2px 6px; border-radius: 3px; font-size: 14px; }

@media (max-width: 800px) {
  /* Oben denselben Abstand wie unter der Überschrift (36px), sonst wirkt
     der Kopf nach oben eingerückt. */
  .gjr-sektion { padding-top: 36px; padding-bottom: 44px; }
  .gjr-kopf { margin-bottom: 28px; }
}

@media (prefers-reduced-motion: reduce) {
  .gjr-spur { scroll-behavior: auto; }
}
