/* BITS Google Reviews — brand-matched stylesheet */
.bits-reviews-wrapper {
  --bits-star-color:  #D4A017;
  --bits-card-bg:     #EEEEEE;
  --bits-card-radius: 14px;
  --bits-accent-red:  #C8242B;
  --bits-gold:        #D4A017;
  --bits-font:        'Open Sans', 'Helvetica Neue', Arial, sans-serif;
  font-family:        var(--bits-font);
  box-sizing:         border-box;
}

/* ── Cards ── */
.bits-reviews-card {
  background:     var(--bits-card-bg);
  border-radius:  var(--bits-card-radius);
  padding:        16px;
  box-shadow:     0 1px 2px rgba(0,0,0,0.04);
  transition:     box-shadow 0.2s ease;
  min-height:     260px;
  height:         100%;            /* fill the stretched slide so all cards match */
  display:        flex;
  flex-direction: column;
  gap:            10px;
  box-sizing:     border-box;
}

.bits-reviews-card:hover {
  box-shadow: 0 6px 16px rgba(0,0,0,0.08);
}

.bits-reviews-card__header {
  display:     flex;
  align-items: center;
  gap:         10px;
}

.bits-reviews-card__avatar {
  width:         48px;
  height:        48px;
  border-radius: 50%;
  object-fit:    cover;
  flex-shrink:   0;
}

.bits-reviews-card__avatar--svg {
  width:  48px;
  height: 48px;
}

.bits-reviews-card__meta {
  display:        flex;
  flex-direction: column;
  gap:            2px;
}

.bits-reviews-card__author {
  font-size:   14px;
  font-weight: 600;
  color:       #1A1A1A;
}

.bits-reviews-card__date {
  font-size: 12px;
  color:     #7A7A7A;
}

/* ── Stars ── */
.bits-reviews-card__stars {
  display:  flex;
  gap:      2px;
}

.bits-reviews-star {
  font-size: 18px;
  color:     #E0E0E0;
  line-height: 1;
}

.bits-reviews-star--filled {
  color: var(--bits-star-color);
}

/* ── Review text ── */
.bits-reviews-card__text {
  font-size:   14px;
  color:       #4A4A4A;
  line-height: 1.55;
  margin:      0;
  overflow:    hidden;
  display:     -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}

.bits-reviews-card__text--expanded {
  display:              block;
  -webkit-line-clamp:   unset;
}

.bits-reviews-card__readmore {
  background:  none;
  border:      none;
  padding:     0;
  cursor:      pointer;
  font-size:   12px;
  font-weight: 600;
  color:       var(--bits-accent-red);
  font-family: var(--bits-font);
  align-self:  flex-start;
  margin-top:  auto;     /* push to the bottom of the card so its position is consistent */
}
.bits-reviews-card__readmore:hover { text-decoration: underline; }

.bits-reviews-card__response {
  border-top:  1px solid #E0E0E0;
  padding-top: 8px;
  font-size:   13px;
  color:       #4A4A4A;
}

/* ── Grid layout ── */
.bits-reviews-wrapper--grid .bits-reviews-grid {
  display:               grid;
  grid-template-columns: repeat(3, 1fr);
  gap:                   16px;
}

@media (max-width: 1023px) {
  .bits-reviews-wrapper--grid .bits-reviews-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 599px) {
  .bits-reviews-wrapper--grid .bits-reviews-grid {
    grid-template-columns: 1fr;
  }
}

/* ── Slider layout (transform carousel) ── */
.bits-reviews-slider {
  position:    relative;
  display:     flex;
  align-items: center;
  gap:         8px;
}

.bits-reviews-slider__viewport {
  flex:           1 1 auto;
  overflow:       hidden;
  padding-bottom: 4px;       /* leave room for card hover shadow */
}

.bits-reviews-slider__track {
  display:       flex;
  gap:           16px;
  transition:    transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  will-change:   transform;
  touch-action:  pan-y;      /* let JS handle horizontal swipe */
}

.bits-reviews-slider__slide {
  flex: 0 0 calc((100% - 32px) / 3);
}

@media (max-width: 1023px) {
  .bits-reviews-slider__slide { flex: 0 0 calc((100% - 16px) / 2); }
}

@media (max-width: 599px) {
  .bits-reviews-slider__slide { flex: 0 0 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .bits-reviews-slider__track { transition: none; }
}

.bits-reviews-slider__prev,
.bits-reviews-slider__next {
  background:      #FFFFFF;
  border:          1px solid #E0E0E0;
  border-radius:   50%;
  width:           36px;
  height:          36px;
  cursor:          pointer;
  font-size:       18px;
  line-height:     1;
  flex-shrink:     0;
  display:         flex;
  align-items:     center;
  justify-content: center;
  transition:      background 0.15s;
}

.bits-reviews-slider__prev:hover,
.bits-reviews-slider__next:hover {
  background: #F2F2F2;
}

/* ── CTA button ── */
.bits-reviews-cta {
  margin-top: 16px;
  text-align: center;
}

.bits-reviews-cta__button {
  display:      inline-block;
  border:       1px solid var(--bits-gold);
  color:        var(--bits-gold);
  padding:      10px 24px;
  border-radius:4px;
  font-size:    14px;
  font-weight:  600;
  text-decoration: none;
  transition:   background 0.15s, color 0.15s;
  font-family:  var(--bits-font);
}

.bits-reviews-cta__button:hover {
  background: var(--bits-gold);
  color:      #FFFFFF;
}

/* ── Empty state ── */
.bits-reviews-empty {
  display: none;
}

/* ── Admin badges ── */
.bits-badge {
  display:       inline-block;
  padding:       2px 6px;
  border-radius: 4px;
  font-size:     11px;
  font-weight:   600;
}

.bits-badge--pin    { background: #D4A017; color: #fff; }
.bits-badge--hidden { background: #7A7A7A; color: #fff; }

.bits-status-badge {
  display:       inline-block;
  padding:       2px 8px;
  border-radius: 4px;
  font-size:     11px;
  font-weight:   600;
}

.bits-status-badge--success { background: #D4EDDA; color: #155724; }
.bits-status-badge--error   { background: #F8D7DA; color: #721C24; }
.bits-status-badge--partial { background: #FFF3CD; color: #856404; }
.bits-status-badge--timeout { background: #F8D7DA; color: #721C24; }

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .bits-reviews-card { transition: none; }
}

/* ── Read-more modal ── */
.bits-reviews-modal {
  position:        fixed;
  inset:           0;
  z-index:         99999;
  display:         flex;
  align-items:     center;
  justify-content: center;
  padding:         16px;
}
.bits-reviews-modal[hidden] { display: none; }

.bits-reviews-modal__backdrop {
  position:        absolute;
  inset:           0;
  background:      rgba(0, 0, 0, 0.6);
  animation:       bits-reviews-fade 0.2s ease;
}

.bits-reviews-modal__dialog {
  position:        relative;
  z-index:         1;
  background:      #FFFFFF;
  border-radius:   12px;
  max-width:       560px;
  width:           100%;
  max-height:      85vh;
  overflow-y:      auto;
  padding:         32px 28px 24px;
  box-shadow:      0 24px 60px rgba(0, 0, 0, 0.25);
  animation:       bits-reviews-modal-in 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.bits-reviews-modal__close {
  position:        absolute;
  top:             10px;
  right:           10px;
  width:           34px;
  height:          34px;
  border:          none;
  border-radius:   50%;
  background:      #F2F2F2;
  cursor:          pointer;
  font-size:       22px;
  line-height:     1;
  color:           #4A4A4A;
  transition:      background 0.15s, color 0.15s;
}
.bits-reviews-modal__close:hover { background: #E0E0E0; color: #1A1A1A; }

/* The cloned card inside the modal — let it use full text. */
.bits-reviews-modal .bits-reviews-card {
  background:    transparent;
  box-shadow:    none;
  padding:       0;
  min-height:    0;
}
.bits-reviews-modal .bits-reviews-card__text {
  display:            block;
  -webkit-line-clamp: unset;
  overflow:           visible;
}
.bits-reviews-modal .bits-reviews-card__readmore { display: none; }

body.bits-reviews-modal-open { overflow: hidden; }

@keyframes bits-reviews-fade {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes bits-reviews-modal-in {
  from { opacity: 0; transform: translateY(16px) scale(0.98); }
  to   { opacity: 1; transform: translateY(0)    scale(1);    }
}

@media (prefers-reduced-motion: reduce) {
  .bits-reviews-modal__backdrop,
  .bits-reviews-modal__dialog { animation: none; }
}
