/* Reviews Grid - modern, clean cards */
.rg-alert{padding:12px 14px;border-radius:12px;margin:12px 0;font-size:14px;line-height:1.35}
.rg-alert a{font-weight:600}
.rg-alert-success{background:#eaf8ef;border:1px solid #bfe7cb}
.rg-alert-error{background:#fdecec;border:1px solid #f5b9b9}
.rg-alert-info{background:#eef5ff;border:1px solid #c7dcff}

.rg-avg{display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:14px 16px;margin:14px 0;background:#fff}
.rg-avg-right{display:flex;align-items:center;gap:10px}
.rg-avg-num{font-weight:700}

.rg-grid{display:grid;gap:16px}
.rg-cols-4{grid-template-columns:repeat(4, minmax(0,1fr))}
.rg-cols-3{grid-template-columns:repeat(3, minmax(0,1fr))}
.rg-cols-2{grid-template-columns:repeat(2, minmax(0,1fr))}
.rg-cols-1{grid-template-columns:repeat(1, minmax(0,1fr))}

@media (max-width: 1024px){
  .rg-cols-4{grid-template-columns:repeat(2, minmax(0,1fr))}
}
@media (max-width: 640px){
  .rg-cols-4,.rg-cols-3,.rg-cols-2{grid-template-columns:repeat(1, minmax(0,1fr))}
}

.rg-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:16px;box-shadow:0 6px 20px rgba(0,0,0,.06)}
.rg-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}
.rg-stars i{font-size:14px}
.rg-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.rg-name{font-weight:700;font-size:14px}
.rg-date{font-size:12px;opacity:.65}

.rg-content{font-size:14px;line-height:1.55}
.rg-content p{margin:0 0 10px}
.rg-content p:last-child{margin-bottom:0}

.rg-admin-reply{margin-top:14px;border-radius:16px;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);padding:12px 12px}
.rg-admin-reply-head{display:flex;align-items:center;gap:8px;font-weight:800;font-size:12px;letter-spacing:.02em;text-transform:uppercase;opacity:.85;margin-bottom:8px}
.rg-admin-reply-body{font-size:13px;line-height:1.55}
.rg-admin-reply-body p{margin:0 0 8px}
.rg-admin-reply-body p:last-child{margin-bottom:0}

.rg-stars-wrap{display:inline-flex;gap:4px;align-items:center}
.rg-stars-wrap i{opacity:.95}

.rg-empty{grid-column:1/-1;padding:18px;border-radius:16px;border:1px dashed rgba(0,0,0,.15);text-align:center;opacity:.75;background:#fff}

/* Form */
.rg-form-wrap{margin-top:18px;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:18px;padding:16px;box-shadow:0 6px 20px rgba(0,0,0,.06)}
.rg-form-title{margin:0 0 12px;font-size:18px}
.rg-form{display:grid;grid-template-columns:repeat(2, minmax(0,1fr));gap:12px}
.rg-form-row{display:flex;flex-direction:column;gap:6px}
.rg-form-row-full{grid-column:1/-1}
.rg-form label{font-size:13px;font-weight:700}
.rg-form input,.rg-form select,.rg-form textarea{
  width:100%;border:1px solid rgba(0,0,0,.12);border-radius:12px;padding:10px 12px;font-size:14px;outline:none
}
.rg-form input:focus,.rg-form select:focus,.rg-form textarea:focus{border-color:rgba(0,0,0,.35)}
.rg-form-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:6px}
.rg-btn{border:0;border-radius:14px;padding:10px 14px;font-weight:800;cursor:pointer;background:#111;color:#fff}
.rg-btn:hover{opacity:.92}
.rg-form-note{font-size:12px;opacity:.7}

@media (max-width:640px){
  .rg-form{grid-template-columns:1fr}
}



/* =========================
   Premium Polish Layer
   (keeps existing classes; only enhances)
   ========================= */

.rg-card{
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 22px;
  box-shadow:
    0 18px 40px rgba(2, 6, 23, 0.10),
    0 2px 10px rgba(2, 6, 23, 0.06);
  position: relative;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.rg-card::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(1200px 300px at 20% 0%, rgba(59,130,246,0.10), transparent 55%),
              radial-gradient(900px 220px at 100% 0%, rgba(245,179,1,0.10), transparent 60%);
  pointer-events:none;
  opacity:.65;
}

.rg-card:hover{
  transform: translateY(-3px);
  border-color: rgba(59,130,246,0.25);
  box-shadow:
    0 26px 60px rgba(2, 6, 23, 0.14),
    0 4px 16px rgba(2, 6, 23, 0.08);
}

.rg-card-top{margin-bottom: 14px}
.rg-name{font-size: 14px; letter-spacing: .01em}
.rg-date{font-size: 12px}

.rg-stars-wrap i{
  color: #f5b301;
  text-shadow: 0 1px 2px rgba(245,179,1,.35);
}

.rg-stars-wrap .fa-regular.fa-star{
  color: rgba(245,179,1,.40);
  text-shadow: none;
}

.rg-content{
  font-size: 14px;
  color: rgba(15, 23, 42, 0.92);
}

.rg-admin-reply{
  border-radius: 18px;
  border: 1px solid rgba(59,130,246,0.18);
  background: linear-gradient(180deg, rgba(59,130,246,0.08), rgba(2,6,23,0.02));
}

.rg-admin-reply-head{
  opacity: .92;
}

.rg-admin-reply-head i{
  color: rgba(59,130,246,.95);
}

.rg-form-wrap{
  border-radius: 22px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  box-shadow:
    0 18px 40px rgba(2, 6, 23, 0.10),
    0 2px 10px rgba(2, 6, 23, 0.06);
}

.rg-btn{
  border-radius: 16px;
  padding: 11px 16px;
  box-shadow: 0 10px 22px rgba(2, 6, 23, 0.14);
}

.rg-btn:active{ transform: translateY(1px); }

/* Infinite loader */
.rg-infinite-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 18px 0 6px;
}

.rg-loader{
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,0.10);
  background: rgba(255,255,255,0.9);
  box-shadow: 0 10px 26px rgba(2, 6, 23, 0.10);
}

.rg-dot{
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.55);
  animation: rg-bounce 1.0s infinite ease-in-out;
}

.rg-dot:nth-child(2){ animation-delay: .12s; opacity: .85; }
.rg-dot:nth-child(3){ animation-delay: .24s; opacity: .7; }

@keyframes rg-bounce{
  0%, 80%, 100% { transform: translateY(0); }
  40% { transform: translateY(-6px); }
}

/* subtle entrance */
.rg-animate-in{
  animation: rg-fadeUp .22s ease both;
}

@keyframes rg-fadeUp{
  from{ opacity:0; transform: translateY(6px); }
  to{ opacity:1; transform: translateY(0); }
}


/* Load More UI */
.rg-loadmore-wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding: 18px 0 6px;
}

.rg-loadmore-btn{
  border: 1px solid rgba(15,23,42,0.12);
  background: #111;
  color: #fff;
  border-radius: 999px;
  padding: 12px 18px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 14px 30px rgba(2,6,23,0.14);
  transition: transform .15s ease, opacity .15s ease, box-shadow .15s ease;
}

.rg-loadmore-btn:hover{ transform: translateY(-1px); box-shadow: 0 18px 40px rgba(2,6,23,0.18); }
.rg-loadmore-btn:active{ transform: translateY(1px); }
.rg-loadmore-btn:disabled{ opacity: .55; cursor: not-allowed; box-shadow:none; }

.rg-loadmore-status{
  font-size: 13px;
  opacity: .75;
}

.rg-loadmore-status.is-error{
  opacity: 1;
}


/* Average rating badge (safe) */
.rg-badge{
  position: sticky;
  top: 16px;
  z-index: 20;

  margin:0 0 16px;
  padding:10px 14px;
  border-radius:12px;
  background:#fff;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 10px 24px rgba(0,0,0,.08);
  font-weight:800;
}
.rg-badge-count{
  margin-left:8px;
  font-size:13px;
  opacity:.7;
}


/* Premium theme style (Houzez-like) */
.rg-card{
  position:relative;
  padding:22px 18px 18px;
  border-radius:18px;
  background:#1b2a57;
  color:#fff;
  border:1px solid rgba(255,255,255,0.08);
  box-shadow: 0 18px 46px rgba(2,6,23,0.18);
  overflow:hidden;
}

.rg-card:before,
.rg-card:after{
  content:'';
  position:absolute;
  top:18px;
  bottom:18px;
  width:10px;
  border-radius:10px;
  background: rgba(56, 189, 248, 0.95);
  opacity:.9;
}

.rg-card:before{ left:14px; }
.rg-card:after{ right:14px; }

.rg-avatar{
  width:92px;
  height:92px;
  border-radius:999px;
  margin: 0 auto 14px;
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.35), rgba(255,255,255,0.06) 45%),
              rgba(96, 165, 250, 0.35);
  border: 8px solid rgba(255,255,255,0.08);
  box-shadow: 0 20px 40px rgba(2,6,23,0.25);
}

.rg-card-top{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding: 0 26px 10px;
  text-align:center;
}

.rg-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.rg-name{
  font-weight:900;
  letter-spacing:0.01em;
  font-size:15px;
}

.rg-date{
  font-size:12px;
  opacity:.75;
}

.rg-stars{
  order: 3;
}

.rg-stars .rg-star{
  color:#facc15; /* yellow */
  filter: drop-shadow(0 6px 10px rgba(2,6,23,0.35));
}

.rg-stars .rg-star.rg-star-empty{
  color: rgba(255,255,255,0.55);
  filter:none;
}

.rg-content{
  padding: 0 26px 8px;
  text-align:center;
  line-height:1.55;
  font-size:14px;
}

.rg-text.rg-full{ display:none; }
.rg-card.is-expanded .rg-text.rg-full{ display:block; }
.rg-card.is-expanded .rg-text.rg-excerpt{ display:none; }

.rg-readmore{
  margin-top:10px;
  background: transparent;
  border: 0;
  color: rgba(255,255,255,0.70);
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
}

.rg-readmore:hover{ color: rgba(255,255,255,0.92); }

.rg-admin-reply{
  margin: 14px 22px 0;
  border-radius: 16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  padding: 12px 14px;
}

.rg-admin-reply-head{
  opacity:.9;
}


/* === COLOR FIXES (v1.2.5) === */

/* Review card: navy background, white text */
.rg-card{
  background: #1f2d5a !important;
  color: #ffffff !important;
}

.rg-card h3,
.rg-card .rg-name,
.rg-card .rg-date,
.rg-card .rg-content{
  color: #ffffff !important;
}

/* Admin reply: white background, navy text */
.rg-admin-reply{
  background: #ffffff !important;
  color: #1f2d5a !important;
  border-radius: 10px;
}

.rg-admin-reply strong,
.rg-admin-reply p{
  color: #1f2d5a !important;
}


/* === BADGE STYLE ONLY (v1.2.7) === */
/* Reference: v1.2.5-color-fix — card & admin styles untouched */

.rg-badge{
  position: relative !important;
  background: #1f2d5a !important; /* navy */
  color: #ffffff !important;
  border-radius: 16px !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  box-shadow: 0 14px 36px rgba(2,6,23,0.18) !important;
  margin: 0 0 18px 0 !important;
}

.rg-badge strong,
.rg-badge span,
.rg-badge .rg-badge-count{
  color: #ffffff !important;
}

.rg-badge .rg-star{
  color: #facc15 !important; /* yellow stars */
  filter: drop-shadow(0 2px 8px rgba(250,204,21,0.25));
}
