/* Wrapper */
.db-gbpr-wrap { width: 100%; }

/* Header */
.db-gbpr-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:16px;
  margin: 0 0 16px 0;
}
.db-gbpr-head-title{ font-size: 22px; font-weight: 800; letter-spacing: -0.2px; }
.db-gbpr-head-sub{ font-size: 14px; opacity: .75; margin-top: 4px; }

.db-gbpr-agg{ display:flex; align-items:center; gap:10px; }
.db-gbpr-googlebadge{
  display:inline-flex; align-items:center; gap:6px;
  font-weight:700; font-size: 13px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
}
.db-gbpr-gicon{ width: 16px; height: 16px; display:block; opacity: .9; }

.db-gbpr-agg-score{ font-weight:800; font-size: 16px; }
.db-gbpr-agg-count{ font-size: 13px; opacity: .7; }

/* Carousel frame */
.db-gbpr{ position:relative; overflow:hidden; }
.db-gbpr-track{
  display:flex;
  transition:transform 320ms ease;
  will-change:transform;
  transform: translate3d(0,0,0);
}
.db-gbpr-slide{ flex:0 0 auto; }

/* Card */
.db-gbpr-card{
  position:relative;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 16px;
  padding: 18px;
  background: #fff;
  box-sizing: border-box;
  height: 100%;
  box-shadow: 0 8px 24px rgba(0,0,0,.06);
}

.db-gbpr-card-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom: 12px;
}

.db-gbpr-name{ font-weight:800; font-size: 15px; }

.db-gbpr-ratingline{
  display:flex; align-items:center; gap:8px;
  margin-top: 6px;
}
.db-gbpr-ratingnum{ font-size: 12px; opacity: .7; }

/* Stars */
.db-gbpr-stars{ display:inline-flex; gap:3px; line-height:1; }
.db-gbpr-star{ width: 16px; height: 16px; }
.db-gbpr-star.is-full path{ fill: #f4b400; }
.db-gbpr-star.is-half path:first-child{ fill: #f4b400; opacity: 1; }
.db-gbpr-star.is-half path:last-child{ fill: rgba(0,0,0,.18); }
.db-gbpr-star.is-empty path{ fill: rgba(0,0,0,.18); }

/* Google badge (per card) */
.db-gbpr-badge{
  display:inline-flex; align-items:center; gap:6px;
  font-size: 12px; font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.08);
  white-space: nowrap;
}

/* Featured pill (subtle) */
.db-gbpr-featured{
  position:absolute;
  top: 14px;
  left: 14px;
  font-size: 11px;
  font-weight: 800;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.10);
}

/* Body */
.db-gbpr-text{
  font-size: 14px;
  line-height: 1.55;
  opacity: .92;
}

/* Footer */
.db-gbpr-card-foot{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 12px;
  margin-top: 14px;
}
.db-gbpr-date{ font-size: 12px; opacity: .65; }
.db-gbpr-view{
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.db-gbpr-view:hover{ text-decoration: underline; }

/* Nav */
.db-gbpr-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  border:none;
  background: rgba(0,0,0,.55);
  color:#fff;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  cursor:pointer;
  font-size: 20px;
  line-height: 1;
}
.db-gbpr-nav.prev{ left:8px; }
.db-gbpr-nav.next{ right:8px; }

/* Dots */
.db-gbpr-dots{
  display:flex;
  gap: 6px;
  justify-content:center;
  margin-top: 14px;
}
.db-gbpr-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  background: rgba(0,0,0,.25);
}
.db-gbpr-dot.is-active{ background: rgba(0,0,0,.65); }

/* Empty */
.db-gbpr-empty{
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(0,0,0,.04);
  border: 1px solid rgba(0,0,0,.08);
}