/* ===== Base grid (4-up) ===== */
.testimonial-grid{
  display:flex;
  flex-wrap:wrap;
  gap:2rem;
  justify-content:flex-start;
  margin-bottom:3rem;
}

.testimonial-card{
  position:relative;
  background:#fff;
  border:1px solid #eee;
  padding:1.5rem;
  width:100%;
  max-width:none;
  box-shadow:0 0 10px rgba(0,0,0,0.05);
  text-align:left;
  flex:0 1 calc(25% - 1.5rem);
}

@media (max-width: 980px){
  .testimonial-card{ flex-basis: calc(50% - 1rem); }
}

@media (max-width: 560px){
  .testimonial-card{ flex-basis: 100%; }
}

/* Logo in upper-right (grid + single only) */
.testimonial-card__logo{
  position:absolute;
  top:1.25rem;
  right:1.25rem;
  width:96px;
  height:30px;
  object-fit:contain;
}

/* Header row: name left, stars right (inline) */
.testimonial-card__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

/* Name (make space for logo in grid/single) */
.testimonial-card__name{
  margin:0;
  font-weight:700;
  padding-right:110px;
}

/* Stars inline top-right with name */
.testimonial-card__stars{
  color:#ffc107;
  font-size:1.15rem;
  line-height:1;
  white-space:nowrap;
  margin-top:0.15rem;
}

/* Role line under name */
.testimonial-card__role{
  font-size:0.95rem;
  font-weight:600;
  margin-top:0.25rem;
}

/* Heading above testimonial */
.testimonial-card__heading{
  margin:1rem 0 1rem;
  font-size:1.4rem;
  line-height:1.15;
  font-weight:700;
}

/* Content */
.testimonial-card__content{
  color:#555;
  line-height:1.55;
  font-size:0.95rem;
}

.testimonial-card__content p{ margin:0 0 0.9rem; }
.testimonial-card__content p:last-child{ margin-bottom:0; }

.read-more{ display:none !important; }

/* ===== SINGLE layout (sidebar): full width ===== */
.testimonial-grid.testimonial-grid--single{
  display:block !important;
  width:100% !important;
}
.testimonial-grid.testimonial-grid--single .testimonial-card{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  flex:none !important;
  flex-basis:auto !important;
}

/* ===== CAROUSEL (cross-fade) layout ===== */
.testimonial-carousel{
  width:100%;
}

.testimonial-carousel__viewport{
  display:grid;
}

.testimonial-carousel__slide{
  grid-area: 1 / 1;
  opacity:0;
  pointer-events:none;
  transition: opacity 450ms ease;
  display:flex;
  gap:2rem;
}

.testimonial-carousel__slide.is-active{
  opacity:1;
  pointer-events:auto;
}

/* 3 across, fill row */
.testimonial-card--carousel{
  flex:0 0 calc((100% - 4rem) / 3);
  border-radius:18px;
}

/* No logo in carousel */
.testimonial-card--carousel .testimonial-card__logo{ display:none !important; }

/* Smaller name in carousel, no logo padding */
.testimonial-card--carousel .testimonial-card__name{
  font-size:1.05rem;
  padding-right:0;
}

/* Keep stars inline with name */
.testimonial-card--carousel .testimonial-card__stars{
  font-size:1.05rem;
}

/* Slightly smaller heading in carousel */
.testimonial-card--carousel .testimonial-card__heading{
  font-size:1.25rem;
}

/* Responsive carousel: 2 visible */
@media (max-width: 980px){
  .testimonial-carousel__slide{
    flex-wrap:wrap;
  }
  .testimonial-card--carousel{
    flex-basis: calc((100% - 2rem) / 2);
  }
}

/* Responsive carousel: 1 visible */
@media (max-width: 560px){
  .testimonial-card--carousel{
    flex-basis: 100%;
  }
}
