/* Cinematic guest reviews with the official restaurant photograph. */
.guest-reviews {
  position: relative;
  overflow: hidden;
  padding: 48px max(24px, 5.5vw);
  border-block: 1px solid #d5b67a35;
  background:
    radial-gradient(ellipse at 23% 47%, #7a4b2d3d, transparent 40%),
    radial-gradient(ellipse at 80% 8%, #6940202b, transparent 42%),
    linear-gradient(120deg, #120c09, #24170f 58%, #100a08);
}
.guest-reviews::before {
  content: "";
  position: absolute;
  width: min(70vw, 850px);
  aspect-ratio: 1;
  right: -18%;
  top: -58%;
  border: 1px solid #d5b67a1e;
  border-radius: 50%;
  box-shadow: 0 0 0 65px #d5b67a06, 0 0 0 130px #d5b67a04;
  pointer-events: none;
}
.guest-reviews-inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(230px, 310px) minmax(0, 1fr);
  align-items: center;
  column-gap: clamp(36px, 7vw, 110px);
}
.guest-review-photo {
  grid-column: 1;
  grid-row: 1;
  position: relative;
  height: 340px;
  margin: 10px 0 10px 12px;
  border-radius: 160px 160px 4px 4px;
}
.guest-review-photo::before {
  content: "";
  position: absolute;
  inset: -10px 10px 10px -10px;
  border: 1px solid #d5b67a99;
  border-radius: inherit;
  pointer-events: none;
}
.guest-review-photo img {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 49%;
  border-radius: inherit;
  box-shadow: 0 24px 55px #0009;
}
.guest-reviews .section-heading { grid-column: 2; grid-row: 1; display: block; margin: 0; text-align: left; }
.guest-reviews .section-heading .eyebrow { justify-content: flex-start; margin: 0 0 18px; color: #d5b67a; font-size: 10px; letter-spacing: .24em; }
.guest-reviews .section-heading h2 {
  margin: 0;
  color: #f8f0e4;
  font: 500 clamp(54px, 6vw, 90px)/1.04 'Playfair Display', Georgia, serif;
  letter-spacing: -.055em;
}
.guest-reviews .section-heading h2 em { color: #d5b67a; font-weight: 500; }
.guest-review-intro { max-width: 36ch; margin: 22px 0 28px; color: #cdbda9; font-size: 15px; line-height: 1.6; }
.guest-reviews-toggle {
  width: min(340px, 100%);
  min-height: 58px;
  margin: 0;
  padding: 11px 14px 11px 22px;
  border: 1px solid #d5b67a8a;
  border-radius: 3px;
  background: linear-gradient(110deg, #342317, #251810);
  color: #f6eddf;
  font: 700 12px/1.2 'DM Sans', sans-serif;
  letter-spacing: .1em;
  text-transform: uppercase;
  box-shadow: 0 12px 30px #0005, inset 0 1px #fff1;
}
.guest-reviews-toggle svg {
  width: 34px;
  height: 34px;
  padding: 7px;
  border: 1px solid #d5b67a70;
  border-radius: 50%;
  color: #e7c992;
}
.guest-reviews-toggle:hover { background: #433020; border-color: #e5c88e; }
.guest-review-grid { grid-column: 1 / -1; }
.guest-reviews.is-expanded .guest-review-photo { height: 220px; }
.guest-reviews.is-expanded .section-heading h2 { font-size: clamp(42px, 4vw, 58px); }
.guest-reviews.is-expanded .guest-review-intro { display: none; }
.guest-reviews.is-expanded .guest-review-grid:not([hidden]) { max-height: min(48svh, 400px); }

@media (max-width: 640px) {
  .guest-reviews { padding: 32px 18px; }
  .guest-reviews::before { width: 420px; top: -120px; right: -220px; }
  .guest-reviews-inner { grid-template-columns: minmax(98px, 118px) minmax(0, 1fr); column-gap: 16px; }
  .guest-review-photo { height: 175px; margin: 6px 0 6px 6px; border-radius: 70px 70px 3px 3px; }
  .guest-review-photo::before { inset: -6px 6px 6px -6px; }
  .guest-reviews .section-heading .eyebrow { margin-bottom: 9px; font-size: 8px; line-height: 1.4; letter-spacing: .14em; }
  .guest-reviews .section-heading h2 { font-size: clamp(30px, 7.5vw, 38px); line-height: 1.04; }
  .guest-review-intro { display: none; }
  .guest-reviews-toggle { width: 100%; min-height: 49px; margin-top: 16px; padding: 8px 9px 8px 12px; font-size: 10px; letter-spacing: .07em; }
  .guest-reviews-toggle svg { width: 27px; height: 27px; padding: 5px; }
  .guest-reviews.is-expanded .guest-review-photo { height: 156px; }
  .guest-reviews.is-expanded .section-heading h2 { font-size: clamp(27px, 7vw, 34px); }
  .guest-reviews.is-expanded .guest-review-grid:not([hidden]) { max-height: min(45svh, 360px); }
}
@media (max-width: 360px) {
  .guest-reviews-inner { grid-template-columns: 94px minmax(0, 1fr); column-gap: 12px; }
  .guest-review-photo { height: 156px; }
  .guest-reviews .section-heading h2 { font-size: 28px; }
  .guest-reviews-toggle { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .guest-reviews-toggle,.guest-reviews-toggle svg { transition: none; }
}
