/* ============================================================
   MWM Reviews — Professional Multi-Source Review Styles v2
   OsmicSoft | osmicsoft.com
   ============================================================ */

:root {
  --rev-primary:   #c8ed85;
  --rev-dark:      #2a3d1a;
  --rev-beige:     #c9bfaf;
  --rev-cream:     #faf7f2;
  --rev-white:     #ffffff;
  --rev-charcoal:  #2e2a24;
  --rev-muted:     #7a7068;
  --rev-border:    #ede8e2;
  --rev-star:      #f59e0b;
  --rev-star-bg:   #fef3c7;
  --rev-verified:  #059669;
  --rev-radius:    16px;
  --rev-shadow:    0 2px 12px rgba(42,61,26,.07), 0 1px 3px rgba(42,61,26,.05);
  --rev-shadow-h:  0 16px 48px rgba(42,61,26,.14), 0 4px 12px rgba(42,61,26,.08);
  --rev-trans:     all .3s cubic-bezier(.4,0,.2,1);
}

/* ─── Stars ─────────────────────────────────────────────────── */
.rev-stars { display:inline-flex; gap:1px; line-height:1; }
.rev-star { font-size:.95rem; color:#d1ccc7; line-height:1; }
.rev-star--full  { color: var(--rev-star); }
.rev-star--empty { color: #d1ccc7; }
.rev-star--half  { position:relative; color:#d1ccc7; }
.rev-star--half::before {
  content:'★'; position:absolute; inset:0;
  color:var(--rev-star); width:50%; overflow:hidden;
}

/* ─── Base Review Card ──────────────────────────────────────── */
.rev-card {
  background: var(--rev-white);
  border-radius: var(--rev-radius);
  box-shadow: var(--rev-shadow);
  border: 1px solid var(--rev-border);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transition: var(--rev-trans);
  height: 100%;
}
.rev-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--rev-shadow-h);
  border-color: transparent;
}

/* ── Platform colour accent strip at top ── */
.rev-card__accent {
  height: 4px;
  background: var(--p-color, var(--rev-primary));
  flex-shrink: 0;
}

/* ── Card inner body ── */
.rev-card__body { padding: 1.5rem; display:flex; flex-direction:column; gap:1rem; flex:1; }

/* ── Top row: platform badge + stars ── */
.rev-card__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.rev-card__platform {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .28rem .75rem;
  border-radius: 50px;
  background: var(--p-bg, #f5f5f5);
  color: var(--p-color, #666);
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  border: 1px solid var(--p-border, #eee);
  white-space: nowrap;
  flex-shrink: 0;
}
.rev-card__platform svg,
.rev-card__platform i { font-size: .85rem; flex-shrink:0; }

.rev-card__stars-row {
  display: flex;
  align-items: center;
  gap: .35rem;
}
.rev-card__stars-row .rev-stars { font-size:1rem; }
.rev-card__rating-num {
  font-size: .72rem;
  font-weight: 700;
  color: var(--rev-muted);
}

/* ── Quote text ── */
.rev-card__quote-wrap { flex: 1; position:relative; }
.rev-card__quote-symbol {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 4.5rem;
  line-height: .65;
  color: var(--p-color, var(--rev-primary));
  opacity: .18;
  position: absolute;
  top: -.3rem;
  left: -.2rem;
  pointer-events: none;
  user-select: none;
  font-weight: 700;
}
.rev-card__quote {
  padding-left: 1.5rem;
  font-size: .9rem;
  line-height: 1.75;
  color: var(--rev-charcoal);
  margin: 0;
  font-style: normal;
  border: none;
  background: none;
}
.rev-text-full { display:none; }
.rev-read-more {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
  margin-top: .5rem;
  background: none; border:none; padding:0;
  color: var(--p-color, var(--rev-dark));
  font-size: .78rem; font-weight: 700;
  cursor: pointer; font-family:inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  opacity: .75;
  transition: opacity .18s;
}
.rev-read-more:hover { opacity: 1; }

/* ── Divider ── */
.rev-card__divider {
  height: 1px;
  background: var(--rev-border);
  margin: 0;
  flex-shrink: 0;
}

/* ── Author row ── */
.rev-card__author {
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: 0 1.5rem;
}
.rev-card__avatar-wrap { position:relative; flex-shrink:0; }
.rev-card__avatar-wrap img {
  width: 46px; height: 46px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--rev-border);
  display: block;
}
.rev-card__initials {
  width: 46px; height: 46px;
  border-radius: 50%;
  display: flex; align-items:center; justify-content:center;
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: -.02em;
  border: 2px solid transparent;
  /* Platform-tinted initials */
  background: var(--p-bg, #eef7dc);
  color: var(--rev-dark);
  border-color: var(--p-border, #c8ed85);
}
/* Tiny platform icon badge */
.rev-card__avatar-platform {
  position: absolute;
  bottom: -2px; right: -2px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--p-color, var(--rev-primary));
  border: 2px solid var(--rev-white);
  display: flex; align-items:center; justify-content:center;
  font-size: .48rem; color: var(--rev-white); line-height:1;
}
.rev-card__avatar-platform i,
.rev-card__avatar-platform svg { font-size: .48rem; }

.rev-card__author-info { display:flex; flex-direction:column; gap:.1rem; min-width:0; }
.rev-card__name {
  font-size: .88rem; font-weight: 700; color: var(--rev-dark);
  display: block; line-height:1.2;
}
.rev-card__role {
  font-size: .75rem; color: var(--rev-muted); display:block; line-height:1.3;
}
.rev-card__location {
  font-size: .7rem; color: var(--rev-muted);
  display: flex; align-items:center; gap:.25rem;
  opacity: .75; line-height:1.3;
}
.rev-card__location i { font-size: .6rem; }

/* ── Footer: verified + date + source link ── */
.rev-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  flex-wrap: wrap;
  padding: .875rem 1.5rem;
  background: #fafaf8;
  border-top: 1px solid var(--rev-border);
  flex-shrink: 0;
}
.rev-card__footer-left { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap; }
.rev-card__verified {
  display: inline-flex; align-items:center; gap:.3rem;
  color: var(--rev-verified);
  font-size: .68rem; font-weight: 700;
  background: #ecfdf5;
  padding: .2rem .6rem;
  border-radius: 50px;
  border: 1px solid #a7f3d0;
  white-space: nowrap;
}
.rev-card__verified i { font-size: .72rem; }
.rev-card__date { font-size: .68rem; color: var(--rev-muted); }
.rev-card__source-link {
  display: inline-flex; align-items:center; gap:.25rem;
  font-size: .68rem; font-weight: 600;
  color: var(--p-color, var(--rev-dark));
  text-decoration: underline; text-underline-offset: 2px;
  opacity: .65; transition: opacity .18s;
  white-space: nowrap;
}
.rev-card__source-link:hover { opacity: 1; }

/* ── Platform-specific card modifiers ── */
.rev-card--google    { --p-color:#4285F4; --p-bg:#e8f0fe; --p-border:#c5d8fb; }
.rev-card--facebook  { --p-color:#1877F2; --p-bg:#e7f0fd; --p-border:#bed2f8; }
.rev-card--tripadvisor { --p-color:#00AF87; --p-bg:#e5f7f2; --p-border:#a7e8da; }
.rev-card--trustpilot { --p-color:#00B67A; --p-bg:#e5f7f2; --p-border:#a7e8da; }
.rev-card--yelp      { --p-color:#D32323; --p-bg:#fde8e8; --p-border:#f9b9b9; }
.rev-card--direct    { --p-color:#2a3d1a; --p-bg:#eef7dc; --p-border:#c8ed85; }

/* ════════════════════════════════════════════════════════════
   SLIDER LAYOUT (homepage — Swiper)
   ════════════════════════════════════════════════════════════ */
.mwm-reviews-slider { padding-bottom: 3.5rem !important; }
.rev-swiper .swiper-slide { height:auto; }

/* Swiper nav */
.rev-swiper-pagination { bottom: 0 !important; }
.rev-swiper-pagination .swiper-pagination-bullet {
  background: rgba(255,255,255,.35) !important;
  opacity: 1; transition: var(--rev-trans);
}
.rev-swiper-pagination .swiper-pagination-bullet-active {
  background: var(--rev-primary) !important; transform:scale(1.3);
}
.rev-swiper-prev, .rev-swiper-next {
  width: 44px !important; height: 44px !important;
  background: var(--rev-primary) !important;
  border-radius: 50%; color: var(--rev-dark) !important;
  transition: var(--rev-trans);
  box-shadow: 0 4px 16px rgba(200,237,133,.3);
}
.rev-swiper-prev:hover, .rev-swiper-next:hover {
  background: var(--rev-dark) !important; color: var(--rev-primary) !important;
}
.rev-swiper-prev::after, .rev-swiper-next::after { font-size:1rem !important; font-weight:900 !important; }

/* On the beige testimonials section bg, cards need extra shadow */
.home-testimonials .rev-card {
  box-shadow: 0 4px 20px rgba(42,61,26,.1), 0 1px 4px rgba(42,61,26,.06);
}

/* ════════════════════════════════════════════════════════════
   RATING SUMMARY WIDGET
   ════════════════════════════════════════════════════════════ */
.rev-summary {
  display: flex;
  gap: 0;
  background: var(--rev-white);
  border: 1px solid var(--rev-border);
  border-radius: var(--rev-radius);
  overflow: hidden;
  box-shadow: var(--rev-shadow);
  margin-bottom: 2.5rem;
}

/* Left panel: big number */
.rev-summary__score {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: 2rem 2.5rem;
  background: linear-gradient(135deg, var(--rev-dark) 0%, #3d5a22 100%);
  color: var(--rev-white);
  flex-shrink: 0;
  min-width: 180px;
  text-align: center;
}
.rev-summary__num {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 4rem;
  font-weight: 700;
  color: var(--rev-white);
  line-height: 1;
}
.rev-summary__score .rev-stars { font-size: 1.2rem; }
.rev-summary__score .rev-stars .rev-star { color: rgba(255,255,255,.3); }
.rev-summary__score .rev-stars .rev-star--full { color: var(--rev-star); }
.rev-summary__total { font-size: .78rem; color:rgba(255,255,255,.65); margin:0; }
.rev-summary__total strong { color:var(--rev-white); }
.rev-summary__label {
  font-size: .65rem; text-transform:uppercase; letter-spacing:.12em;
  color: rgba(255,255,255,.5); margin-top:.25rem;
}

/* Right panel: platform breakdown */
.rev-summary__platforms {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: .875rem;
  padding: 1.75rem 2rem;
}
.rev-summary__row {
  display: flex;
  align-items: center;
  gap: .875rem;
}
.rev-summary__platform-icon {
  width: 22px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.rev-summary__platform-icon i,
.rev-summary__platform-icon svg { font-size:.95rem; }
.rev-summary__platform-name {
  font-size: .8rem; font-weight: 600; color: var(--rev-charcoal); min-width: 90px;
}
.rev-summary__bar {
  flex: 1; height: 7px;
  background: var(--rev-border); border-radius: 50px; overflow:hidden;
}
.rev-summary__bar-fill {
  height: 100%; background: var(--p-color, var(--rev-primary));
  border-radius: 50px;
  transition: width 1.1s cubic-bezier(.4,0,.2,1);
}
.rev-summary__row-stats {
  font-size: .8rem; font-weight: 700; color: var(--rev-charcoal);
  min-width: 70px; text-align:right;
}
.rev-summary__row-stats em { font-style:normal; color:var(--rev-muted); font-weight:400; }

/* ════════════════════════════════════════════════════════════
   TRUST BAR (used on testimonials page header)
   ════════════════════════════════════════════════════════════ */
.rev-trust-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  padding: 1.25rem 0;
  margin-bottom: 2rem;
}
.rev-trust-pill {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem 1.1rem;
  background: var(--rev-white);
  border: 1px solid var(--rev-border);
  border-radius: 50px;
  font-size: .8rem;
  font-weight: 600;
  color: var(--rev-charcoal);
  box-shadow: var(--rev-shadow);
  transition: var(--rev-trans);
}
.rev-trust-pill:hover { transform:translateY(-2px); box-shadow:var(--rev-shadow-h); }
.rev-trust-pill .rev-stars { font-size: .85rem; }
.rev-trust-pill i,
.rev-trust-pill svg { font-size:.95rem; flex-shrink:0; }
.rev-trust-pill strong { color:var(--rev-dark); }

/* ════════════════════════════════════════════════════════════
   SOURCE FILTER BAR
   ════════════════════════════════════════════════════════════ */
.rev-filter-bar {
  display: flex; gap: .6rem; flex-wrap:wrap; margin-bottom: 2rem;
}
.rev-filter-btn {
  display: inline-flex; align-items:center; gap:.4rem;
  padding: .5rem 1.1rem; border-radius:50px;
  border: 2px solid var(--rev-border); background:transparent;
  color: var(--rev-charcoal); font-size:.78rem; font-weight:700;
  text-transform:uppercase; letter-spacing:.08em;
  cursor:pointer; transition:var(--rev-trans); font-family:inherit;
}
.rev-filter-btn i, .rev-filter-btn svg { opacity:.65; font-size:.9rem; }
.rev-filter-count {
  background:#eee; color:#888; border-radius:50px;
  padding:.1rem .45rem; font-size:.68rem; font-weight:700;
}
.rev-filter-btn:hover { border-color:var(--p-color,var(--rev-dark)); color:var(--p-color,var(--rev-dark)); }
.rev-filter-btn.is-active {
  background:var(--p-color,var(--rev-dark));
  border-color:var(--p-color,var(--rev-dark)); color:#fff;
}
.rev-filter-btn.is-active .rev-filter-count { background:rgba(255,255,255,.25); color:#fff; }
.rev-filter-btn.is-active i,
.rev-filter-btn.is-active svg { opacity:1; }

/* ════════════════════════════════════════════════════════════
   FULL LISTING GRIDS
   ════════════════════════════════════════════════════════════ */

/* Masonry (default) */
.rev-grid--masonry { columns:3; column-gap:1.25rem; }
.rev-grid--masonry .rev-grid__item { break-inside:avoid; margin-bottom:1.25rem; }

/* Equal grid */
.rev-grid--grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.rev-grid--grid .rev-grid__item { display:flex; }
.rev-grid--grid .rev-card { flex:1; }

/* Featured: first card tall */
.rev-grid--featured { display:grid; grid-template-columns:repeat(3,1fr); gap:1.25rem; }
.rev-grid--featured .rev-grid__item { display:flex; }
.rev-grid--featured .rev-grid__item:first-child { grid-row:span 2; }
.rev-grid--featured .rev-grid__item:first-child .rev-card { flex:1; }
.rev-grid--featured .rev-grid__item:first-child .rev-card__quote { font-size:1rem; }

/* Hidden filtered items */
.rev-grid__item.is-filtered-out { display:none; }

/* ── Card entrance animation ── */
@keyframes revIn {
  from { opacity:0; transform:translateY(18px) scale(.97); }
  to   { opacity:1; transform:translateY(0) scale(1); }
}
.rev-card { animation:revIn .45s ease both; }
.rev-grid__item:nth-child(1)  .rev-card { animation-delay:.05s; }
.rev-grid__item:nth-child(2)  .rev-card { animation-delay:.10s; }
.rev-grid__item:nth-child(3)  .rev-card { animation-delay:.15s; }
.rev-grid__item:nth-child(4)  .rev-card { animation-delay:.20s; }
.rev-grid__item:nth-child(5)  .rev-card { animation-delay:.25s; }
.rev-grid__item:nth-child(n+6).rev-card { animation-delay:.30s; }

/* ── Empty state ── */
.rev-empty {
  text-align:center; padding:5rem 2rem; color:var(--rev-muted);
  border:2px dashed var(--rev-border); border-radius:var(--rev-radius);
}
.rev-empty span { font-size:3rem; display:block; margin-bottom:1rem; }
.rev-empty p { margin-bottom:.75rem; font-size:1rem; }
.rev-empty a { color:var(--rev-dark); font-weight:700; text-decoration:underline; }

/* ── Responsive ── */
@media (max-width:1024px) {
  .rev-grid--masonry  { columns:2; }
  .rev-grid--grid     { grid-template-columns:repeat(2,1fr); }
  .rev-grid--featured { grid-template-columns:repeat(2,1fr); }
  .rev-grid--featured .rev-grid__item:first-child { grid-row:span 1; }
  .rev-summary { flex-direction:column; }
  .rev-summary__score { flex-direction:row; min-width:auto; gap:1rem; padding:1.25rem 1.5rem; }
  .rev-summary__platforms { padding:1.25rem 1.5rem; }
}
@media (max-width:640px) {
  .rev-grid--masonry  { columns:1; }
  .rev-grid--grid     { grid-template-columns:1fr; }
  .rev-grid--featured { grid-template-columns:1fr; }
  .rev-summary__score { flex-direction:column; }
  .rev-summary__score .rev-summary__num { font-size:3rem; }
  .rev-trust-bar      { gap:1rem; }
  .rev-trust-pill     { font-size:.72rem; padding:.45rem .85rem; }
}
