/* === GRID === */
.gmbrs-wrap { max-width:1200px; margin:0 auto; font-family:inherit; }
.gmbrs-pills { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:30px; }
.gmbrs-wrap .gmbrs-pill { flex:0 0 auto; border:1px solid #b5566f; background:#fff !important; background-image:none !important; color:#8a3b50 !important; -webkit-text-fill-color:#8a3b50 !important; opacity:1 !important; padding:8px 20px; border-radius:999px; font-size:14px; cursor:pointer; white-space:nowrap; transition:background-color .2s; -webkit-appearance:none; appearance:none; }
.gmbrs-wrap .gmbrs-pill:hover { background-color:#f7e9ec !important; }
.gmbrs-wrap .gmbrs-pill.is-active { background-color:#a4495f !important; color:#fff !important; -webkit-text-fill-color:#fff !important; border-color:#a4495f; }
.gmbrs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:start; }
@media(max-width:900px){.gmbrs-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.gmbrs-grid{grid-template-columns:1fr;}}
.gmbrs-card { border:1px solid #e2dede; border-radius:8px; padding:22px; background:#fff; display:flex; flex-direction:column; }
.gmbrs-card.gmbrs-hidden { display:none; }
.gmbrs-stars { color:#a4495f; letter-spacing:2px; margin-bottom:12px; font-size:16px; flex-shrink:0; }
.gmbrs-text-wrap { flex-grow:1; display:flex; flex-direction:column; }
.gmbrs-text { font-style:italic; color:#333; line-height:1.5; margin:0 0 8px; }
.gmbrs-more-btn { display:none; color:#a4495f; font-size:13px; font-weight:600; text-decoration:underline; cursor:pointer; padding:4px 0 0; align-self:flex-start; }
.gmbrs-more-btn:hover,.gmbrs-carousel-more-btn:hover { color:#7a2e44; }
.gmbrs-meta { border-top:1px solid #eee; padding-top:12px; margin-top:16px; flex-shrink:0; }
.gmbrs-author { font-weight:600; color:#222; }
.gmbrs-date { color:#999; font-size:13px; margin-top:2px; }
.gmbrs-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.gmbrs-tag { background:#f7e9ec; color:#8a3b50; font-size:12px; padding:3px 10px; border-radius:999px; }
.gmbrs-empty { text-align:center; color:#777; }
.gmbrs-pagination { display:flex; align-items:center; justify-content:center; gap:16px; margin-top:28px; }
.gmbrs-pagination button { border:1px solid #b5566f; background:#fff; color:#8a3b50; width:36px; height:36px; border-radius:50%; cursor:pointer; font-size:16px; }
.gmbrs-pagination button:hover:not(:disabled){background:#f7e9ec;}
.gmbrs-pagination button:disabled{opacity:.4;cursor:default;}
.gmbrs-page-indicator{color:#555;font-size:14px;min-width:110px;text-align:center;}

/* === CAROUSEL ===
   Cards are display:none by default and display:flex when on the current slide.
   Height is uniform because JS clamps text BEFORE showing anything, then locks
   the wrapper to the tallest measured height once and never touches it again.
   Gentle fade-in via CSS animation — no opacity toggling on the full set.
*/
@keyframes gmbrs-fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.gmbrs-carousel-wrap { position:relative; padding:0 44px; box-sizing:border-box; }
.gmbrs-carousel-track-wrap { overflow:hidden; }
.gmbrs-carousel-track { display:flex; align-items:stretch; }

/* Hidden by default */
.gmbrs-carousel-card {
  display: none;
  flex: 0 0 33.333%;
  box-sizing: border-box;
  padding: 20px 28px 24px;
  text-align: center;
  border-right: 1px solid #f0e6e9;
  flex-direction: column;
}

/* When visible: gentle fade-in animation */
.gmbrs-carousel-card.gmbrs-slide-visible {
  display: flex;
  animation: gmbrs-fade-in 0.4s ease both;
}

.gmbrs-carousel-card.gmbrs-slide-last { border-right: none; }

@media (max-width:900px) { .gmbrs-carousel-card { flex: 0 0 50%; } }
@media (max-width:600px) {
  .gmbrs-carousel-card { flex: 0 0 100%; border-right: none; }
  .gmbrs-carousel-wrap { padding: 0 36px; }
}

.gmbrs-carousel-stars { color:#a4495f; font-size:20px; letter-spacing:3px; margin-bottom:14px; flex-shrink:0; }

/* Text area: grows to fill space so author always sits at the bottom */
.gmbrs-carousel-text { font-style:italic; color:#333; font-size:15px; line-height:1.65; margin:0 0 8px; flex-grow:1; }

.gmbrs-carousel-more-btn {
  display: none;
  color: #a4495f; font-size:13px; font-weight:600;
  text-decoration: underline; cursor: pointer;
  padding: 0 0 8px; flex-shrink:0;
}
.gmbrs-carousel-author { display:inline-flex; align-items:center; gap:8px; justify-content:center; margin-top:6px; flex-shrink:0; }
.gmbrs-carousel-name { font-weight:700; font-size:15px; color:#222; }

/* Arrows centred on the content area */
.gmbrs-carousel-btn {
  position:absolute; top:50%; transform:translateY(-50%);
  display:inline-flex !important; align-items:center; justify-content:center;
  width:30px; height:30px; cursor:pointer;
  opacity:0.45; transition:opacity 0.2s;
  background:none !important; border:none !important; box-shadow:none !important;
  border-radius:0 !important; padding:0 !important;
}
.gmbrs-carousel-btn:hover { opacity:1; }
.gmbrs-carousel-btn.is-disabled { opacity:0.1; cursor:default; pointer-events:none; }
.gmbrs-carousel-prev { left:4px; }
.gmbrs-carousel-next { right:4px; }

/* Dots */
.gmbrs-carousel-dots { display:flex; justify-content:center; gap:7px; margin-top:18px; flex-wrap:wrap; }
.gmbrs-carousel-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#ddd; cursor:pointer; padding:0; transition:background 0.25s; }
.gmbrs-carousel-dot.is-active { background:#a4495f; }
