/* Three touch-friendly testimonial galleries in the site's plum and gold palette. */
.reviews-tarot {
  overflow: hidden;
  background: radial-gradient(circle at 90% 5%, #43255155, transparent 42%), #100c19;
}
.reviews-heading { margin-bottom: 24px; text-align: center; }
.reviews-tarot .reviews-heading h2 {
  margin: 0;
  font-size: clamp(44px, 12vw, 60px);
  line-height: .96;
}
.reviews-set { min-width: 0; }
.reviews-set + .reviews-set { margin-top: 29px; }
.reviews-set-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  margin-bottom: 14px;
  padding-bottom: 11px;
  border-bottom: 1px solid #b58ca94e;
}
.reviews-set-heading h3 {
  min-width: 0;
  margin: 0;
  color: #f1e6f1;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: clamp(28px, 7.8vw, 38px);
  font-weight: 500;
  line-height: 1.05;
  text-wrap: balance;
}
.reviews-set-heading h3 em { color: #e6c28e; }
.reviews-set-heading > span {
  padding-bottom: 3px;
  color: #cbb2d2;
  font-size: 10px;
  white-space: nowrap;
}
.reviews-set-video .reviews-set-heading h3 em,
.reviews-set-therapy .reviews-set-heading h3 em { color: #d5b5df; }
.reviews-format-divider {
  display: flex;
  align-items: center;
  gap: 13px;
  margin: 37px 0 25px;
  color: #e6c28e;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 25px;
  line-height: 1;
  white-space: nowrap;
}
.reviews-format-divider::before,
.reviews-format-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, #b58ca963);
}
.reviews-format-divider::after { transform: rotate(180deg); }
.reviews-format-divider span::before { content: '✦'; margin-right: 9px; font-size: 12px; vertical-align: 4px; }
.review-carousel { min-width: 0; }
.review-carousel-track {
  display: flex;
  align-items: stretch;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.review-carousel.is-controlled .review-carousel-track {
  overflow: hidden;
  scroll-snap-type: none;
  touch-action: pan-y;
}
.review-carousel-track::-webkit-scrollbar { display: none; }
.review-carousel-track:focus-visible { outline: 2px solid #e6c28e; outline-offset: 3px; }
.review-shot {
  box-sizing: border-box;
  flex: 0 0 100%;
  min-width: 0;
  width: 100%;
  margin: 0;
  padding: 7px;
  border: 1px solid #a07ca773;
  border-radius: 15px;
  background: linear-gradient(145deg, #302039, #1c1429);
  box-shadow: inset 0 1px #ffffff12, 0 12px 25px #07040c36;
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
.review-shot:nth-child(even) { border-color: #bd9c7180; }
.reviews-set-video .review-shot { border-color: #c5a47285; }
.review-carousel.is-controlled .review-shot {
  transform: translateX(var(--review-offset, 0%));
  transition: transform .28s ease;
}
.review-shot a {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 3 / 5;
  border-radius: 9px;
  background: radial-gradient(circle at 50% 45%, #382840, #100b19 75%);
}
.reviews-set-tarot .review-shot a { aspect-ratio: 1; }
.review-shot img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.review-shot figcaption {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 5px 3px;
  color: #cbb6d1;
  font-size: 11px;
  line-height: 1.4;
}
.review-shot figcaption span { color: #e7c897; white-space: nowrap; }
.review-video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  border-radius: 9px;
  background: #08080c;
}
.review-video-square video { aspect-ratio: 1; }
.review-video figcaption { color: #f0e2eb; }
.review-carousel-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 47px;
  margin-top: 13px;
}
.review-carousel-arrow {
  display: grid;
  flex: 0 0 42px;
  place-items: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid #b18eaa;
  border-radius: 50%;
  background: #291a32;
  color: #efcea0;
  font: 23px/1 Georgia, serif;
  cursor: pointer;
  transition: background .2s, border-color .2s, transform .2s;
}
.review-carousel-arrow:hover:not(:disabled) {
  transform: translateY(-2px);
  border-color: #edcf9f;
  background: #493051;
}
.review-carousel-arrow:disabled { opacity: .36; cursor: default; }
.review-carousel-status {
  flex: 0 0 auto;
  min-width: 55px;
  color: #ead2ad;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 20px;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
}
.review-carousel-status span { color: #8b6d87; }
.review-carousel-rail {
  position: relative;
  flex: 1;
  height: 1px;
  background: #a77b9c55;
}
.review-carousel-rail > span {
  position: absolute;
  inset: -1px auto -1px 0;
  width: 0;
  background: #e7c897;
  box-shadow: 0 0 8px #e7c89780;
  transition: width .25s ease;
}
@media (max-width: 350px) {
  .reviews-set-heading h3 { font-size: 29px; }
  .review-carousel-nav { gap: 9px; }
  .review-carousel-arrow { flex-basis: 39px; width: 39px; height: 39px; }
  .review-carousel-status { min-width: 50px; }
}
@media (prefers-reduced-motion: reduce) {
  .review-carousel.is-controlled .review-shot,
  .review-carousel-arrow,
  .review-carousel-rail > span { transition: none; }
}