/* Only the review wall scrolls. The section's copy, CTA and photo stay put. */
.review-carousel {
  --review-gap: 24px;
  --review-height: 650px;
  --review-row-min: 290px;
  --review-first-column: calc((100% - var(--review-gap)) * .55);
  --review-second-column: calc((100% - var(--review-gap)) * .45);
  --review-accent: var(--food-green, #375124);
  min-width: 0;
  max-width: 100%;
}
.review-carousel--massage {
  --review-gap: 44px;
  --review-height: 610px;
  --review-row-min: 288px;
  --review-first-column: calc((100% - var(--review-gap)) * .607843);
  --review-second-column: calc((100% - var(--review-gap)) * .392157);
  --review-accent: var(--mf-red, #873727);
}
.review-carousel__viewport {
  position: relative;
  display: grid;
  grid-template-columns: none;
  grid-template-rows: repeat(2, minmax(var(--review-row-min), auto));
  grid-auto-flow: column;
  grid-auto-columns: var(--review-first-column) var(--review-second-column);
  gap: 24px var(--review-gap);
  height: auto;
  min-height: var(--review-height);
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: var(--review-accent) transparent;
}
.review-carousel--massage .review-carousel__viewport { row-gap: 34px; }
.review-carousel__viewport > article {
  min-width: 0;
  grid-column: auto;
  grid-row: auto;
  scroll-snap-align: start;
  overflow-wrap: anywhere;
}
.review-carousel__viewport > :is([data-review-size="tall"], .food-review-card--large, .mf-review-card--large) { grid-row: span 2; }
.review-carousel__viewport > [data-review-size="short"] { grid-row: span 1; }
.review-carousel--massage .review-carousel__viewport > [data-review-size="tall"] { height: calc(100% - 118px); min-height: min-content; margin-top: 40px; }
.review-carousel__viewport :is(.mf-avatar, footer > span) { flex-shrink: 0; }
.review-carousel__viewport footer div { min-width: 0; }
.review-carousel__viewport.has-overflow { cursor: grab; }
.review-carousel__viewport.is-dragging { cursor: grabbing; user-select: none; scroll-snap-type: none; }
.review-carousel__viewport:focus-visible { outline: 2px solid var(--review-accent); outline-offset: 5px; }
.review-carousel__controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; margin-top: 18px; color: var(--review-accent); }
.review-carousel__hint { margin: 0; font-family: var(--sans); font-size: 13px; line-height: 1.6; }
.review-carousel__buttons { display: flex; flex-shrink: 0; align-items: center; gap: 10px; }
.review-carousel__status { min-width: 60px; text-align: center; font-size: 13px; font-variant-numeric: tabular-nums; }
.review-carousel__controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid currentColor; border-radius: 50%; color: inherit; background: transparent; cursor: pointer; transition: color .18s, background .18s, opacity .18s; }
.review-carousel__controls button .site-icon { width: 22px; height: 22px; }
.review-carousel__controls button:hover:not(:disabled) { color: var(--surface); background: var(--review-accent); border-color: var(--review-accent); }
.review-carousel__controls button:active:not(:disabled) { transform: translateY(1px); }
.review-carousel__controls button:focus-visible { outline: 2px solid var(--review-accent); outline-offset: 4px; }
.review-carousel__controls button:disabled { opacity: .35; cursor: default; }
.review-carousel__empty { padding: 40px 24px; border: 1px solid var(--line); color: var(--ink-soft); text-align: center; }
.review-carousel [hidden] { display: none !important; }
/* Give the carousel its own natural height; keep the existing outer layout. */
.mf-reviews:has(.review-carousel) .mf-review-link { position: static; width: fit-content; margin: 28px 0 0 70px; }
@media (max-width: 980px) {
  .review-carousel--massage { --review-gap: 24px; --review-first-column: calc((100% - 24px) * .55); --review-second-column: calc((100% - 24px) * .45); }
  .review-carousel--massage .mf-review-card { padding: 28px; }
}
@media (max-width: 620px) {
  .review-carousel { --review-gap: 18px; --review-first-column: 86%; --review-second-column: 86%; --review-height: 620px; --review-row-min: 280px; }
  .review-carousel--massage { --review-row-min: 300px; }
  .review-carousel--massage .review-carousel__viewport > [data-review-size="tall"] { height: auto; margin-top: 0; }
  .review-carousel__viewport > article { padding: 24px; }
  .review-carousel__controls { gap: 8px; }
  .review-carousel__hint { max-width: 9em; font-size: 12px; }
  .review-carousel__buttons { gap: 6px; }
  .mf-reviews:has(.review-carousel) .mf-review-link { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .review-carousel__viewport { scroll-behavior: auto; }
  .review-carousel__controls button { transition: none; }
}
