.restaurant-page {
  overflow: clip;
}

.restaurant-page .container {
  min-width: 0;
}

.restaurant-hero {
  padding-block: var(--space-8);
  background: var(--color-cream);
}

.restaurant-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: center;
  gap: var(--space-5);
}

.restaurant-hero__media {
  grid-column: 6 / 13;
  grid-row: 1;
  width: 100%;
  min-width: 0;
  min-height: 39rem;
  margin: 0;
  overflow: hidden;
  background: var(--color-deep-tobacco);
}

.restaurant-hero__media img,
.restaurant-feature__media img,
.restaurant-integration__media img,
.restaurant-gallery__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--transition-base);
}

.restaurant-hero__media img { object-position: 60% center; }

.restaurant-hero__panel {
  grid-column: 1 / 7;
  grid-row: 1;
  z-index: 1;
  width: calc(100% + var(--space-5));
  min-width: 0;
  background: var(--color-paper);
  padding: var(--space-8);
}

.restaurant-hero__content,
.restaurant-feature__copy,
.restaurant-integration__heading,
.restaurant-reservation__intro,
.restaurant-closing__content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.restaurant-hero__content { gap: var(--space-5); }
.restaurant-hero__content > * { margin: 0; }
.restaurant-hero__lead { max-width: 58ch; font-size: var(--text-lead); line-height: var(--leading-lead); }
.restaurant-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); min-width: 0; }
.restaurant-hero__actions > * { min-width: 0; }
.restaurant-hero__cue { color: var(--color-muted-ink); font-size: var(--text-utility); letter-spacing: var(--tracking-utility); }

@media (hover: hover) and (pointer: fine) {
  .restaurant-hero__media:hover img,
  .restaurant-gallery__frame:hover img { transform: scale(1.02); }
}

.restaurant-evening__intro,
.restaurant-choices__intro {
  width: min(100%, 62ch);
  margin-inline: auto;
  margin-block-end: var(--space-7);
  text-align: center;
}

.restaurant-evening__cards,
.restaurant-choices__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.restaurant-evening__cards > *,
.restaurant-choices__cards > * { min-width: 0; width: 100%; }

.restaurant-experience-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: var(--space-4);
  border: var(--border);
  border-bottom: 3px solid transparent;
  background: var(--color-paper);
  padding: var(--space-6);
  transition: border-color var(--transition-fast), background-color var(--transition-fast);
}

.restaurant-experience-card > * { margin: 0; }
.restaurant-experience-card p { max-width: 42ch; }
.restaurant-experience-card:hover,
.restaurant-experience-card:focus-within { border-bottom-color: var(--color-tobacco); }
.restaurant-experience-card__marker { color: var(--color-brass); font-size: var(--text-label); font-weight: 800; letter-spacing: var(--tracking-label); }
.restaurant-experience-card__swatch { display: block; width: 3rem; height: 1.25rem; border-top: 1px solid var(--color-brass); border-bottom: 1px solid var(--color-tobacco); background: repeating-linear-gradient(90deg, transparent 0 7px, rgba(112,69,47,.18) 7px 8px); }

.restaurant-feature__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  align-items: center;
}

.restaurant-feature__media { grid-column: 1 / 7; width: 100%; min-width: 0; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; }
.restaurant-feature__media img { object-position: center; }
.restaurant-feature__copy { grid-column: 8 / 13; gap: var(--space-5); }
.restaurant-feature__copy > * { margin: 0; }
.restaurant-feature__main,
.restaurant-feature__detail { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); }
.restaurant-feature__main > *,
.restaurant-feature__detail > * { margin: 0; }
.restaurant-feature__main p { max-width: 60ch; }
.restaurant-feature__detail { border-top: 1px solid var(--color-brass); padding-top: var(--space-4); }
.restaurant-feature__detail p:not(.meta) { max-width: 48ch; }

.restaurant-integration__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6) var(--space-5);
}

.restaurant-integration__heading { grid-column: 1 / 6; gap: var(--space-4); align-self: center; }
.restaurant-integration__heading > * { margin: 0; }
.restaurant-integration__heading .lead { max-width: 56ch; }
.restaurant-integration__media { grid-column: 6 / 13; width: 100%; min-width: 0; aspect-ratio: 3 / 2; margin: 0; overflow: hidden; }
.restaurant-integration__media img { object-position: center; }
.restaurant-integration__principles { grid-column: 1 / 13; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); min-width: 0; }
.restaurant-integration__principles > * { min-width: 0; width: 100%; }
.restaurant-principle { display: flex; flex-direction: column; gap: var(--space-3); border-top: var(--border-light); padding-top: var(--space-5); }
.restaurant-principle > * { margin: 0; }
.restaurant-principle__number { color: var(--color-brass); font-family: var(--font-heading); font-size: 2rem; line-height: 1; }
.restaurant-principle p { max-width: 50ch; }
.restaurant-principle a { color: var(--color-cream); text-decoration-color: var(--color-brass); }
.restaurant-principle a:hover { color: var(--color-brass); }
.restaurant-card-back { width: 2.25rem; height: 3rem; border: 1px solid var(--color-brass); background: repeating-linear-gradient(45deg, transparent 0 5px, rgba(184,137,76,.28) 5px 6px); }

.restaurant-choices__cards { align-items: stretch; }
.restaurant-choice { display: flex; min-width: 0; min-height: 27rem; border: var(--border); }
.restaurant-choice__content { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; gap: var(--space-4); padding: var(--space-6); }
.restaurant-choice__content > * { margin: 0; }
.restaurant-choice__content p:not(.meta) { max-width: 40ch; }
.restaurant-choice__content .button { width: fit-content; margin-top: auto; }
.restaurant-choice--dining { border-top: 4px solid var(--color-tobacco); background: var(--color-paper); }
.restaurant-choice--poker { border-color: rgba(242,232,213,.35); background: var(--color-felt); color: var(--color-cream); }
.restaurant-choice--poker .meta { color: rgba(242,232,213,.76); }
.restaurant-choice--event { border-top: 4px solid var(--color-eucalyptus); background: var(--color-paper); }
.restaurant-choice:hover { border-color: var(--color-brass); }

.restaurant-gallery__intro { width: min(100%, 58ch); margin-block-end: var(--space-7); }
.restaurant-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); align-items: start; }
.restaurant-gallery__item { min-width: 0; width: 100%; margin: 0; }
.restaurant-gallery__item--dining { grid-column: 1 / 8; }
.restaurant-gallery__item--bar { grid-column: 9 / 12; }
.restaurant-gallery__item--felt { grid-column: 8 / 13; }
.restaurant-gallery__frame { width: 100%; overflow: hidden; background: var(--color-line); }
.restaurant-gallery__item--dining .restaurant-gallery__frame { aspect-ratio: 16 / 10; }
.restaurant-gallery__item--bar .restaurant-gallery__frame { aspect-ratio: 4 / 5; }
.restaurant-gallery__item--felt .restaurant-gallery__frame { aspect-ratio: 3 / 2; }
.restaurant-gallery__item--bar { margin-bottom: -9rem; }
.restaurant-gallery__item figcaption { display: flex; flex-direction: column; gap: var(--space-3); padding-top: var(--space-4); }
.restaurant-gallery__item figcaption > * { margin: 0; }
.restaurant-gallery__item figcaption p { max-width: 38ch; }

.restaurant-events__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.restaurant-events__lead { grid-column: 1 / 6; display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.restaurant-events__lead > * { margin: 0; }
.restaurant-events__lead .lead { max-width: 58ch; }
.restaurant-events__lead .button { width: fit-content; }
.restaurant-events__points { grid-column: 6 / 13; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); min-width: 0; border-top: 1px solid var(--color-brass); padding-top: var(--space-5); }
.restaurant-events__points > * { min-width: 0; width: 100%; }
.restaurant-events__points article { display: flex; flex-direction: column; gap: var(--space-3); }
.restaurant-events__points article > * { margin: 0; }
.restaurant-events__points p { max-width: 46ch; }

.restaurant-faq__block { grid-column: 3 / 11; width: min(100%, 66rem); margin-inline: auto; }
.restaurant-faq__rows { display: flex; flex-direction: column; min-width: 0; margin-top: var(--space-6); }
.restaurant-faq__row { display: flex; flex-direction: column; min-width: 0; gap: var(--space-3); border-top: var(--border); padding-block: var(--space-5); }
.restaurant-faq__row > * { margin: 0; }
.restaurant-faq__row h3 { color: var(--color-tobacco); font-size: var(--text-intro); }
.restaurant-faq__row p { max-width: 66ch; }
.restaurant-faq__felt-marker { display: inline-block; width: .75rem; height: .75rem; margin-right: var(--space-2); background: var(--color-felt); vertical-align: .05em; }

.restaurant-reservation { background: linear-gradient(to bottom, var(--color-cream) 0 48%, var(--color-eucalyptus) 48% 100%); padding-block: var(--section-space); }
.restaurant-reservation__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.restaurant-reservation__intro { grid-column: 1 / 6; gap: var(--space-5); padding-top: var(--space-6); }
.restaurant-reservation__intro > * { margin: 0; }
.restaurant-reservation__intro .lead { max-width: 58ch; }
.restaurant-reservation__panel { grid-column: 7 / 13; width: 100%; max-width: 45rem; min-width: 0; }
.restaurant-reservation__form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); min-width: 0; }
.restaurant-form__field { grid-column: span 1; min-width: 0; }
.restaurant-form__field--full { grid-column: 1 / -1; }
.restaurant-form__field--contact { grid-column: span 2; }
.restaurant-form__helper,
.restaurant-form__error,
.restaurant-form__response { margin: var(--space-2) 0 0; font-size: var(--text-utility); line-height: 1.5; }
.restaurant-form__helper { color: var(--color-muted-ink); }
.restaurant-form__error { min-height: 1.25em; color: var(--color-deep-tobacco); font-weight: 700; }
.restaurant-form__field.is-invalid input,
.restaurant-form__field.is-invalid select { border-color: var(--color-deep-tobacco); }
.restaurant-form__submit { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: var(--space-3); }
.restaurant-form__response { color: var(--color-felt); font-weight: 700; }

.restaurant-closing { position: relative; overflow: hidden; padding-block: var(--section-space-compact); }
.restaurant-closing::after { position: absolute; right: 8%; bottom: -4rem; width: 13rem; height: 17rem; border: 1px solid rgba(242,232,213,.14); background: repeating-linear-gradient(45deg, transparent 0 12px, rgba(242,232,213,.05) 12px 13px); content: ""; transform: rotate(12deg); }
.restaurant-closing__content { position: relative; z-index: 1; width: min(100%, 58ch); margin-inline: auto; align-items: center; gap: var(--space-5); text-align: center; }
.restaurant-closing__content > * { margin: 0; }
.restaurant-closing__content p:not(.eyebrow) { max-width: 54ch; }
.restaurant-closing__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); min-width: 0; }
.restaurant-closing__actions > * { min-width: 0; }

@media (max-width: 63.99rem) {
  .restaurant-integration__heading { grid-column: 1 / 13; }
  .restaurant-integration__media { grid-column: 1 / 13; }
  .restaurant-integration__principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-principle:nth-child(3) { grid-column: 1 / -1; }
}

@media (max-width: 61.24rem) {
  .restaurant-evening__cards,
  .restaurant-choices__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-evening__cards > :last-child { grid-column: 1 / -1; }
  .restaurant-choice--poker { grid-column: 1 / -1; order: -1; }
  .restaurant-events__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-events__lead { grid-column: 1 / -1; }
  .restaurant-events__points { grid-column: 1 / -1; }
}

@media (max-width: 59.99rem) {
  .restaurant-reservation__grid { grid-template-columns: 1fr; }
  .restaurant-reservation__intro,
  .restaurant-reservation__panel { grid-column: 1; max-width: none; }
  .restaurant-reservation__intro { padding-top: 0; }
}

@media (max-width: 57.49rem) {
  .restaurant-hero { padding-block: 0 var(--section-space); }
  .restaurant-hero__grid { display: flex; flex-direction: column; gap: 0; width: 100%; }
  .restaurant-hero__media { order: 1; width: 100%; min-height: 0; aspect-ratio: 16 / 10; }
  .restaurant-hero__panel { order: 2; width: min(100% - (var(--gutter) * 2), var(--container-max)); padding: var(--space-6) 0 0; background: transparent; }
  .restaurant-hero__content { background: var(--color-cream); }
  .restaurant-hero__actions { flex-direction: column; }
  .restaurant-hero__actions .button { width: 100%; }
  .restaurant-hero .display-title { font-size: clamp(2.75rem, 12vw, 4rem); }
  .restaurant-feature__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .restaurant-feature__media,
  .restaurant-feature__copy { grid-column: 1; }
  .restaurant-feature__media { aspect-ratio: 4 / 3; }
  .restaurant-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-gallery__item--dining { grid-column: 1 / -1; }
  .restaurant-gallery__item--bar { grid-column: 1 / 2; margin-bottom: 0; }
  .restaurant-gallery__item--felt { grid-column: 2 / -1; }
  .restaurant-faq__block { width: 100%; }
}

@media (max-width: 56.19rem) {
  .restaurant-events__points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-events__points > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 42.49rem) {
  .restaurant-evening__intro,
  .restaurant-choices__intro { width: 100%; text-align: left; }
  .restaurant-evening__cards,
  .restaurant-choices__cards,
  .restaurant-integration__principles,
  .restaurant-events__points,
  .restaurant-gallery__grid { grid-template-columns: 1fr; }
  .restaurant-evening__cards > :last-child,
  .restaurant-choice--poker,
  .restaurant-principle:nth-child(3),
  .restaurant-events__points > :last-child,
  .restaurant-gallery__item--dining,
  .restaurant-gallery__item--bar,
  .restaurant-gallery__item--felt { grid-column: 1; }
  .restaurant-choice { min-height: 0; }
  .restaurant-choice__content .button,
  .restaurant-events__lead .button { width: 100%; }
  .restaurant-gallery__item--dining .restaurant-gallery__frame { aspect-ratio: 16 / 10; }
  .restaurant-gallery__item--bar .restaurant-gallery__frame { aspect-ratio: 4 / 5; }
  .restaurant-gallery__item--felt .restaurant-gallery__frame { aspect-ratio: 3 / 2; }
  .restaurant-reservation__form { grid-template-columns: 1fr; }
  .restaurant-form__field,
  .restaurant-form__field--contact,
  .restaurant-form__field--full { grid-column: 1; }
  .restaurant-form__submit .button { width: 100%; }
  .restaurant-closing__actions { flex-direction: column; width: 100%; }
  .restaurant-closing__actions .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .restaurant-hero__media img,
  .restaurant-gallery__frame img { transition: none; }
}
