.grw-widget{
  --grw-card:#ffffff;
  --grw-text:#1f1f1f;
  --grw-sub:#70757a;
  --grw-shadow:0 4px 18px rgba(0,0,0,.08);
  --grw-radius:14px;
  --grw-blue:#4285F4;
  --grw-green:#34A853;
  --grw-yellow:#FBBC05;
  --grw-red:#EA4335;
  font-family:'Segoe UI',Roboto,Arial,Helvetica,sans-serif;
  max-width:1200px;
  margin:0 auto;
  color:var(--grw-text);
  -webkit-font-smoothing:antialiased;
  box-sizing:border-box;
}
.grw-widget *{box-sizing:border-box;}

.grw-header{
  background:var(--grw-card);
  border-radius:var(--grw-radius);
  box-shadow:var(--grw-shadow);
  padding:16px 22px;
  display:flex;
  align-items:center;
  gap:16px;
  margin:0 55px 22px;
  flex-wrap:wrap;
}
.grw-wordmark{
  font-family:'Product Sans','Segoe UI',Arial,sans-serif;
  font-size:26px;font-weight:500;letter-spacing:-1px;line-height:1;
  display:inline-flex;
}
.grw-wordmark .b{color:var(--grw-blue);}
.grw-wordmark .r{color:var(--grw-red);}
.grw-wordmark .y{color:var(--grw-yellow);}
.grw-wordmark .g{color:var(--grw-green);}

.grw-head-stars{display:inline-flex;gap:1px;}
.grw-head-stars svg{width:20px;height:20px;}
.grw-head-score{font-size:18px;font-weight:700;color:var(--grw-text);}
.grw-divider{width:1px;height:22px;background:#dadce0;}
.grw-head-label{font-size:16px;font-weight:600;color:var(--grw-text);}
.grw-write{
  margin-left:auto;
  background:var(--grw-blue);
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  padding:9px 18px;
  border-radius:8px;
  white-space:nowrap;
  transition:background .2s;
}
.grw-write:hover{background:#3367d6;color:#fff;}

.grw-carousel-wrap{position:relative;padding:0 46px;}
/* Vertical padding gives the drop shadow room inside the clip box; the matching
   negative margin pulls it back so layout doesn't move. This stops the shadow
   being trimmed top/bottom (the worst case on mobile). Horizontal room comes
   from the slide gutter below — no horizontal negative margin, so no card peek. */
.grw-carousel{position:relative;overflow:hidden;padding:22px 0;margin:-22px 0;}
/* flex-start = each card sizes to its own height, so expanding one card does
   NOT stretch the others. A shared min-height keeps them uniform when collapsed. */
.grw-track{display:flex;align-items:flex-start;transition:transform .6s cubic-bezier(.25,.8,.25,1);}
.grw-slide{flex:0 0 calc(100% / var(--grw-per, 1));padding:0 12px;display:flex;}

.grw-card{
  background:var(--grw-card);
  border-radius:var(--grw-radius);
  box-shadow:var(--grw-shadow);
  padding:22px 24px;
  min-height:200px;   /* floor; JS then equalises all collapsed cards to the tallest */
  flex:1 1 auto;      /* fill the slide width */
  display:flex;
  flex-direction:column;
}
.grw-card-head{display:flex;align-items:center;gap:12px;}
.grw-avatar-wrap{position:relative;flex-shrink:0;}
.grw-avatar{
  width:46px;height:46px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:600;font-size:19px;overflow:hidden;
}
.grw-avatar-badge{
  position:absolute;right:-2px;bottom:-2px;
  width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);
  display:flex;align-items:center;justify-content:center;
}
.grw-badge-g{width:12px;height:12px;}
.grw-author{line-height:1.35;flex:1;min-width:0;}
.grw-author-name{font-size:16px;font-weight:600;}
.grw-author-date{font-size:13px;color:var(--grw-sub);}
.grw-card-google{width:22px;height:22px;flex-shrink:0;}
.grw-card-stars{display:flex;align-items:center;gap:2px;margin:14px 0 10px;}
.grw-card-stars svg{width:19px;height:19px;}
.grw-verified{width:17px;height:17px;margin-left:6px;}
.grw-card-text{
  font-size:15px;line-height:1.55;color:#3c4043;
  /* clamp to a tidy number of lines so all cards stay a uniform, compact height */
  display:-webkit-box;
  -webkit-line-clamp:var(--grw-clamp, 4);
  -webkit-box-orient:vertical;
  overflow:hidden;
}
/* expanded state (after "Read more") shows the full review */
.grw-card.grw-expanded .grw-card-text{
  display:block;
  -webkit-line-clamp:unset;
  overflow:visible;
}
.grw-readmore{
  align-self:flex-start;
  margin-top:9px;
  padding:0;
  background:none;
  border:none;
  color:var(--grw-blue);
  font-weight:600;
  font-size:13px;
  cursor:pointer;
}
.grw-readmore:hover{text-decoration:underline;}
.grw-readmore[hidden]{display:none;}

.grw-arrow{
  position:absolute;top:50%;transform:translateY(-50%);
  width:38px;height:38px;border-radius:50%;border:1px solid #e4e6e9;
  background:var(--grw-card);box-shadow:0 2px 8px rgba(0,0,0,.08);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:var(--grw-sub);transition:transform .15s,color .15s,box-shadow .15s;z-index:2;
  padding:0;
}
.grw-arrow:hover{color:var(--grw-blue);box-shadow:0 4px 12px rgba(0,0,0,.14);}
.grw-arrow.grw-prev{left:0;}
.grw-arrow.grw-next{right:0;}
.grw-arrow svg{width:18px;height:18px;}

.grw-credit{
  text-align:center;
  font-size:13px;
  color:var(--grw-sub);
  margin-top:18px;
  letter-spacing:.2px;
}
.grw-credit a{color:var(--grw-blue);font-weight:600;text-decoration:none;}
.grw-credit a:hover{text-decoration:underline;}

@media (max-width:600px){
  .grw-header{gap:10px 12px;padding:14px 16px;margin:0 49px 22px;}
  .grw-write{margin-left:0;width:100%;text-align:center;order:5;}
  .grw-carousel-wrap{padding:0 40px;}
}
