/* === Global Styles === */
.reviews-page {
  font-family: 'Futura', 'Inter', 'Avenir', 'Helvetica Neue', Arial, sans-serif;
  color: black;
  line-height: 1.6;
  background-color: #f5f6fa;
}

.reviews-page h1, 
.reviews-page h2, 
.reviews-page h3, 
.reviews-page h4, 
.reviews-page h5, 
.reviews-page h6 {
  font-family: 'Source Serif Pro', 'Playfair Display', serif;
}

/* === Layout === */
.reviews-page .container {
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 0;
}

/* === Hero Section === */
.reviews-page .hero {
  background: linear-gradient(135deg, #6c5ce7, #a29bfe);
  color: white;
  text-align: center;
  padding: 80px 0;
  margin-bottom: 40px;
}

.reviews-page .hero h1 {
  font-size: 3rem;
  margin-bottom: 20px;
}

.reviews-page .hero p {
  font-size: 1.2rem;
  opacity: 0.9;
}

/* === Grid Layouts === */
.reviews-page .testimonials-grid,
.reviews-page .event-grid {
  display: grid;
  gap: 30px;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  margin-bottom: 60px;
}

.reviews-page .event-grid {
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 25px;
}

/* === Cards === */
.reviews-page .testimonial-card,
.reviews-page .event-card {
  background: white;
  border-radius: 10px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  padding: 25px 30px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reviews-page .testimonial-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

.reviews-page .event-card {
  text-align: center;
}

/* === Text Styles === */
.reviews-page .quote {
  font-size: 1.1rem;
  font-style: italic;
  color: gray;
  margin-bottom: 20px;
  position: relative;
}

.reviews-page .quote::before {
  content: '"';
  font-size: 3rem;
  color: #a29bfe;
  opacity: 0.3;
  position: absolute;
  top: -20px;
  left: -15px;
}

.reviews-page .name { font-weight: 600; }
.reviews-page .location { font-size: 0.9rem; color: gray; opacity: 0.8; }
.reviews-page .event-card h3 { color: #6c5ce7; margin-bottom: 15px; }
.reviews-page .event-card p { color: gray; font-size: 0.95rem; }

/* === Tag === */
.reviews-page .event-tag {
  display: inline-block;
  background: #fd79a8;
  color: white;
  padding: 5px 10px;
  border-radius: 20px;
  font-size: 0.8rem;
  margin-bottom: 15px;
}

/* === Footer Layout & Truncation === */
.footer-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: nowrap;
  gap: 40px;
  padding: 40px 60px;
  overflow-x: auto; 
}

.footer-column {
  flex: 1;
  min-width: 200px;
  max-width: 250px;
}

.footer-column ul li a,
.footer-column ul li span {
  display: inline-block;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

/* Map image styling */
.footer-map img {
  width: 100%;
  border-radius: 10px;
  object-fit: cover;
}

/* === Responsive === */
@media (max-width: 900px) {
  .footer-container {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .footer-column {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .reviews-page .hero h1 { font-size: 2.2rem; }
  .reviews-page .testimonials-grid { grid-template-columns: 1fr; }
}
