/* =========================================================
   Breath with Mika — Reviews + Gallery v3
   ========================================================= */
.google-rating-hero {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: -12px auto 26px;
  padding: 9px 16px;
  border-radius: var(--r-pill);
  border: 1px solid rgba(233,190,98,.28);
  background: rgba(233,190,98,.08);
  color: var(--text);
  font-size: 14px;
  font-weight: 700;
  backdrop-filter: blur(10px);
  animation: fadeInUp .8s var(--ease) .6s both;
}

.google-rating-hero .stars,
.reviews-summary .stars,
.testimonial-stars {
  color: var(--gold);
  letter-spacing: 1px;
  white-space: nowrap;
}

.google-rating-hero small { color: var(--text-muted); font-weight: 600; }

.reviews-summary {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin: -34px auto 34px;
  color: var(--text-muted);
}

.reviews-summary strong { color: var(--text); }

.reviews-summary .rating-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px 15px;
  border-radius: var(--r-pill);
  background: var(--surface);
  border: 1px solid var(--border-hi);
}

.reviews-loading,
.gallery-loading { text-align:center; color:var(--text-muted); padding:30px; }

.testimonials-grid { margin-top: 24px; }

.testimonial-stars { font-size: 15px; margin-bottom: 12px; }

.testimonial-date {
  display:block;
  margin-top:4px;
  color:var(--text-dim);
  font-size:12px;
  font-weight:500;
}

.reviews-actions {
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:32px;
}

.section-gallery { background: var(--bg-1); }

.gallery-events-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:22px;
  margin-top:34px;
}

.gallery-event-card {
  background: var(--bg-2);
  border:1px solid var(--border);
  border-radius:var(--r-xl);
  overflow:hidden;
  transition: all .35s var(--ease);
  cursor:pointer;
  text-align:left;
}

.gallery-event-card:hover {
  transform: translateY(-4px);
  border-color:var(--border-hi);
  box-shadow:var(--shadow-lg);
}

.gallery-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  padding: 8px;
}

.gallery-preview-grid img {
  width: 100%;
  aspect-ratio: 1 / 1;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  border: 1px solid var(--border);
}

.gallery-card-body { padding:22px; }

.gallery-card-body h3 {
  font-family:var(--font-display);
  font-size:24px;
  line-height:1.15;
  margin-bottom:8px;
}

.gallery-card-meta {
  color:var(--orange-light);
  font-size:13px;
  font-weight:700;
  margin-bottom:10px;
}

.gallery-card-body p { font-size:14px; }

.gallery-card-body .btn { margin-top: 14px; }

.gallery-modal {
  position: fixed;
  inset:0;
  z-index:250;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}

.gallery-modal.is-open { display:flex; }

.gallery-modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(8px);
}

.gallery-modal-card {
  position:relative;
  width:min(1100px,100%);
  max-height:90vh;
  overflow:auto;
  background:var(--bg-2);
  border:1px solid var(--border-hi);
  border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg);
}

.gallery-modal-head { padding:28px 28px 8px; }

.gallery-modal-head h3 {
  font-family:var(--font-display);
  font-size:clamp(28px,4vw,42px);
}

.gallery-modal-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  padding:24px 28px 32px;
}

.gallery-modal-grid img {
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:var(--r);
  border:1px solid var(--border);
}

.gallery-modal-close {
  position:sticky;
  top:14px;
  float:right;
  margin:14px 14px 0 0;
  width:42px;
  height:42px;
  border-radius:50%;
  background:rgba(10,8,6,.8);
  border:1px solid var(--border-hi);
  z-index:3;
}
