/* Review metadata sourced from Google-Maps-Reviews.json. */
.review-details {
  display: grid;
  gap: .85rem;
  margin-top: 1.1rem;
  padding-top: 1rem;
  border-top: 1px solid #e3ebef;
}

.review-categories { display: flex; flex-wrap: wrap; gap: .45rem; }

.review-category {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  padding: .3rem .6rem;
  border: 1px solid #cbdce5;
  border-radius: 999px;
  background: #f5f9fc;
  color: #1d536f !important;
  font-size: .76rem;
  font-weight: 750;
  line-height: 1.2;
}

.review-context {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: .42rem .8rem;
  margin: 0;
  font-size: .84rem;
  line-height: 1.45;
}

.review-context dt { color: #587080 !important; font-weight: 750; }
.review-context dd { margin: 0; color: #395466 !important; }

.review-media {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
  gap: .6rem;
}

.review-media a { display: block; overflow: hidden; border-radius: 10px; background: #e9f0f4; aspect-ratio: 1; }
.review-media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease; }
.review-media a:hover img { transform: scale(1.04); }

@media (max-width: 767px) {
  .review-context { grid-template-columns: 1fr; gap: .2rem; }
  .review-context dd { margin-bottom: .55rem; }
  .review-media { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
