:host {
  all: initial;
  display: block;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }

.gbp-root {
  max-width: 1200px;
  margin: auto;
  padding: var(--gbp-reviews-spacing, 20px);
  background: var(--gbp-reviews-background, transparent);
  color: var(--gbp-reviews-text, #172033);
  font: var(--gbp-reviews-font, 16px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.header { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 16px; }
.summary, .disclosure { color: var(--gbp-reviews-muted, #667085); font-size: 14px; }
.google { color: var(--gbp-reviews-link, #4285f4); font-weight: 650; text-decoration: none; }
.google:hover { text-decoration: underline; }
.cards { display: grid; gap: 16px; }
.cards.grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); align-items: start; }
.cards.list { grid-template-columns: 1fr; }
.card { padding: 18px; border: 1px solid var(--gbp-reviews-border, #e4e7ec); border-radius: var(--gbp-reviews-radius, 14px); background: var(--gbp-reviews-card-background, #fff); box-shadow: 0 5px 18px rgba(16, 24, 40, .05); }
.review-meta, .review-source { display: flex; align-items: center; }
.review-meta { justify-content: space-between; gap: 16px; }
.review-source { gap: 12px; }
.author { margin-top: 10px; font-weight: 650; }
.stars { color: var(--gbp-reviews-stars, #f5a623); letter-spacing: 1px; }
.google-icon { display: inline-flex; align-items: center; justify-content: center; padding: 3px; border-radius: 4px; background: #fff; }
.google-icon img { display: block; width: 18px; height: 18px; }
.text { margin-top: 14px; white-space: pre-wrap; }
.date, .reply { color: var(--gbp-reviews-muted, #667085); font-size: 13px; }
.review-text summary { cursor: pointer; list-style: none; }
.review-text summary::-webkit-details-marker { display: none; }
.more-label, .less-label { color: var(--gbp-reviews-link, #1a73e8); font-weight: 600; text-decoration: underline; }
.less-label, .review-text[open] .excerpt, .review-text[open] .more-label { display: none; }
.review-text[open] .less-label { display: inline; }
.full-text { margin-top: 10px; }
.reply { margin-top: 12px; }
.disclosure { margin-top: 16px; }
[data-gbp-track] { display: flex; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; }
[data-gbp-slide] { min-width: 100%; scroll-snap-align: start; }
.controls { display: none; justify-content: center; gap: 10px; margin-top: 14px; }
[data-gbp-carousel][data-gbp-enhanced] .controls { display: flex; }
.controls button { padding: 8px 14px; border: 1px solid var(--gbp-reviews-border, #e4e7ec); border-radius: 999px; background: #fff; cursor: pointer; }
.empty { padding: 40px; color: var(--gbp-reviews-muted, #667085); text-align: center; }

@media (prefers-reduced-motion: reduce) {
  [data-gbp-track] { scroll-behavior: auto; }
}

@media (max-width: 520px) {
  .gbp-root { padding: var(--gbp-reviews-spacing-mobile, 12px); }
  .header { align-items: start; flex-direction: column; }
}
