.restaurant-page {
  background: var(--color-warm-ivory);
}

.restaurant-page .restaurant-text-link {
  display: inline-block;
  color: inherit;
  font-size: var(--text-nav);
  font-weight: 600;
  letter-spacing: var(--tracking-nav);
  text-decoration: none;
  text-transform: uppercase;
}

.restaurant-page .restaurant-text-link::after {
  display: block;
  width: 0;
  height: 2px;
  margin-top: var(--space-2);
  background: var(--color-champagne-gold);
  content: "";
  transition: width var(--transition-base);
}

.restaurant-page .restaurant-text-link:hover::after,
.restaurant-page .restaurant-text-link:focus-visible::after {
  width: 100%;
}

.restaurant-hero {
  position: relative;
  min-height: 43.75rem;
  overflow: hidden;
  isolation: isolate;
}

.restaurant-hero__media {
  position: absolute;
  inset: 0 0 0 38%;
  z-index: -2;
  min-width: 0;
}

.restaurant-hero__media::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(16, 28, 44, 0.84) 0%, rgba(16, 28, 44, 0.44) 39%, rgba(16, 28, 44, 0.08) 74%);
  content: "";
}

.restaurant-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform var(--transition-slow);
}

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

.restaurant-hero__copy {
  display: flex;
  min-width: 0;
  grid-column: 1 / span 5;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  max-width: 36.875rem;
  padding-block: var(--space-8);
}

.restaurant-hero__copy > * { margin: 0; }
.restaurant-hero__copy .lead { max-width: 33.75rem; }
.restaurant-hero__actions { width: 100%; }
.restaurant-hero__rule { width: 8rem; height: 1px; background: var(--color-champagne-gold); }

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

.restaurant-manifesto__marker { display: flex; min-width: 0; grid-column: 1 / span 2; flex-direction: column; gap: var(--space-4); }
.restaurant-manifesto__marker > span:last-child { width: 1px; height: 12rem; background: var(--color-champagne-gold); }
.restaurant-manifesto__primary { min-width: 0; grid-column: 3 / span 6; max-width: 42.5rem; }
.restaurant-manifesto__primary .lead { max-width: 42.5rem; }
.restaurant-manifesto__phrase { max-width: 34rem; color: var(--color-burgundy); font-family: var(--font-heading); font-size: var(--text-h3); line-height: 1.15; }
.restaurant-manifesto__keywords { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-3); color: var(--color-ink-muted); font-family: var(--font-heading); font-size: 1.3rem; }
.restaurant-manifesto__keywords span + span::before { margin-right: var(--space-3); color: var(--color-champagne-gold); content: "◆"; font-size: 0.55rem; vertical-align: middle; }
.restaurant-manifesto__note { min-width: 0; align-self: end; grid-column: 10 / span 3; max-width: 20rem; }

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

.restaurant-cuisine__copy { min-width: 0; grid-column: 1 / span 5; max-width: 33.125rem; }
.restaurant-cuisine__copy blockquote { max-width: 26.25rem; }
.restaurant-cuisine__insert { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); margin-top: var(--space-6); padding: var(--space-5); background: var(--color-soft-black); color: var(--color-warm-ivory); }
.restaurant-cuisine__insert > * { margin: 0; }
.restaurant-cuisine__figure { min-width: 0; grid-column: 8 / span 5; margin: 0; }
.restaurant-cuisine__frame { position: relative; width: 100%; aspect-ratio: 4 / 5; }
.restaurant-cuisine__frame::after { position: absolute; top: calc(var(--space-2) * -1); right: calc(var(--space-2) * -1); width: 100%; height: 100%; border-top: 1px solid var(--color-champagne-gold); border-right: 1px solid var(--color-champagne-gold); content: ""; pointer-events: none; }
.restaurant-cuisine__figure figcaption { max-width: 80%; }

.restaurant-themes { padding-block: var(--space-9); }
.restaurant-themes__container { display: flex; min-width: 0; flex-direction: column; gap: var(--space-8); }
.restaurant-themes__intro { min-width: 0; width: 58.333%; max-width: 45rem; }
.restaurant-themes__intro .lead { max-width: 41.25rem; }
.restaurant-themes__modules { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); }
.restaurant-theme { position: relative; display: grid; min-width: 0; grid-template-columns: 5.25rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-6); border-left: 1px solid var(--color-champagne-gold); }
.restaurant-theme__number { min-width: 0; color: var(--color-champagne-gold); font-family: var(--font-heading); font-size: 4rem; font-weight: 600; line-height: 0.9; }
.restaurant-theme__content { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 32.5rem; }
.restaurant-theme__content > * { margin: 0; }
.restaurant-theme--poker { grid-column: 1 / span 7; background: var(--color-midnight-blue); }
.restaurant-theme--poker .restaurant-theme__number { color: var(--color-burgundy); }
.restaurant-theme--roulette { grid-column: 5 / span 6; border: 1px solid var(--color-champagne-gold); outline: 1px solid var(--color-champagne-gold); outline-offset: -0.35rem; background: var(--color-warm-ivory); color: var(--color-soft-black); }
.restaurant-theme--blackjack { grid-column: 1 / span 8; background: var(--color-muted-teal); }
.restaurant-theme--blackjack .restaurant-theme__number { color: var(--color-warm-ivory); }

.restaurant-stage { padding-block: var(--space-9); }
.restaurant-stage__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); align-items: center; }
.restaurant-stage__copy { display: flex; min-width: 0; grid-column: 1 / span 5; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 31.875rem; }
.restaurant-stage__copy > * { margin: 0; }
.restaurant-stage__figure { position: relative; min-width: 0; grid-column: 6 / span 7; margin: 0; }
.restaurant-stage__media { width: 100%; aspect-ratio: 3 / 2; }
.restaurant-stage__quote { position: absolute; bottom: calc(var(--space-5) * -1); left: calc(var(--space-5) * -1); display: flex; width: min(20.625rem, 75%); min-width: 0; flex-direction: column; gap: var(--space-3); margin: 0; padding: var(--space-5); background: var(--color-soft-black); color: var(--color-warm-ivory); font-family: var(--font-heading); font-size: var(--text-body-large); letter-spacing: 0; line-height: 1.3; }
.restaurant-stage__quote span { color: var(--color-champagne-gold); font-family: var(--font-body); font-size: var(--text-caption); font-weight: 600; letter-spacing: var(--tracking-caption); text-transform: uppercase; }

.restaurant-occasions__intro { width: 66.667%; min-width: 0; max-width: 47.5rem; margin-inline: auto; text-align: center; }
.restaurant-occasions__intro .eyebrow { justify-content: center; }
.restaurant-occasions__intro .lead { max-width: 38.75rem; margin-inline: auto; }
.restaurant-occasions__zones { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.restaurant-occasion { display: grid; min-width: 0; grid-template-columns: 1fr; gap: var(--space-4); padding: var(--space-5) 0; border-bottom: 3px solid var(--color-burgundy); }
.restaurant-occasion > span { color: var(--color-burgundy); font-size: var(--text-label); font-weight: 600; letter-spacing: var(--tracking-label); }
.restaurant-occasion > div { min-width: 0; max-width: 20rem; }
.restaurant-occasion > div > :last-child { margin-bottom: 0; }
.restaurant-occasion--birthday { margin-top: var(--space-7); border-bottom-color: var(--color-champagne-gold); background-image: linear-gradient(135deg, transparent 0 80%, color-mix(in srgb, var(--color-champagne-gold) 13%, transparent) 80%); }
.restaurant-occasion--corporate { margin-top: var(--space-5); border-bottom-color: var(--color-muted-teal); border-right: 1px solid var(--color-champagne-gold); padding-right: var(--space-4); }

.restaurant-planning__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.restaurant-planning__intro { min-width: 0; grid-column: 1 / span 5; max-width: 31.25rem; }
.restaurant-planning__steps { display: flex; min-width: 0; grid-column: 6 / span 7; flex-direction: column; gap: var(--space-4); }
.restaurant-step { display: grid; min-width: 0; grid-template-columns: 4.25rem minmax(0, 1fr); gap: var(--space-4); padding: var(--space-5); border-left: 2px solid var(--color-champagne-gold); background: color-mix(in srgb, var(--color-warm-ivory) 82%, var(--color-champagne-gold)); }
.restaurant-step > span { color: var(--color-burgundy); font-family: var(--font-heading); font-size: 2.25rem; font-weight: 600; line-height: 1; }
.restaurant-step > div { min-width: 0; max-width: 30rem; }
.restaurant-step > div > :last-child { margin-bottom: 0; }
.restaurant-step--light { border: 1px solid var(--color-line-light); background: color-mix(in srgb, var(--color-warm-ivory) 92%, white); }
.restaurant-step--dark { background: var(--color-midnight-blue); color: var(--color-warm-ivory); }
.restaurant-step--dark > span { color: var(--color-champagne-gold); }

.restaurant-faq { padding-block: var(--space-9); }
.restaurant-faq__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-6); align-items: start; }
.restaurant-faq__intro { min-width: 0; grid-column: 1 / span 5; max-width: 29.375rem; }
.restaurant-faq__list { min-width: 0; grid-column: 7 / span 6; }
.restaurant-faq__item { border-top: 1px solid var(--color-line-dark); }
.restaurant-faq__item:last-child { border-bottom: 1px solid var(--color-line-dark); }
.restaurant-faq__item h3 { margin: 0; font-family: var(--font-body); font-size: inherit; }
.restaurant-faq__item button { display: grid; width: 100%; min-width: 0; min-height: 3.5rem; grid-template-columns: minmax(0, 1fr) 2rem; gap: var(--space-3); align-items: center; padding: var(--space-4) 0; border: 0; background: transparent; color: var(--color-warm-ivory); font-family: var(--font-heading); font-size: var(--text-h3); font-weight: 600; line-height: 1.15; text-align: left; }
.restaurant-faq__item button span { position: relative; width: 2rem; height: 2rem; border: 1px solid var(--color-champagne-gold); }
.restaurant-faq__item button span::before,
.restaurant-faq__item button span::after { position: absolute; top: 50%; left: 50%; width: 0.65rem; height: 1px; background: var(--color-champagne-gold); content: ""; transform: translate(-50%, -50%); transition: transform var(--transition-base); }
.restaurant-faq__item button span::after { transform: translate(-50%, -50%) rotate(90deg); }
.restaurant-faq__item button[aria-expanded="true"] span::after { transform: translate(-50%, -50%) rotate(0deg); }
.restaurant-faq__answer { max-width: 32.5rem; padding-bottom: var(--space-5); }
.restaurant-faq__answer p { margin: 0; color: var(--color-ivory-muted); }

.restaurant-final { position: relative; overflow: hidden; padding-block: var(--space-10); border-block: 1px solid var(--color-champagne-gold); }
.restaurant-final__container { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); align-items: center; }
.restaurant-final__copy { display: flex; min-width: 0; grid-column: 1 / span 7; flex-direction: column; align-items: flex-start; gap: var(--space-4); max-width: 44.375rem; }
.restaurant-final__copy > * { margin: 0; }
.restaurant-final__copy .lead { max-width: 33.75rem; }
.restaurant-final__actions { width: 100%; }
.restaurant-final__support { color: var(--color-ivory-muted); }
.restaurant-final__decor { position: relative; min-width: 0; grid-column: 9 / span 4; width: 100%; aspect-ratio: 1 / 1; border: 1px solid color-mix(in srgb, var(--color-champagne-gold) 60%, transparent); transform: rotate(45deg); }
.restaurant-final__decor::before,
.restaurant-final__decor::after { position: absolute; inset: 14%; border: 1px solid color-mix(in srgb, var(--color-champagne-gold) 48%, transparent); content: ""; }
.restaurant-final__decor::after { inset: 29%; }

@media (hover: hover) {
  .restaurant-hero:hover .restaurant-hero__media img { transform: scale(1.015) translateX(3px); }
  .restaurant-theme:hover { box-shadow: inset 0 0 0 1px var(--color-champagne-gold); }
  .restaurant-stage__media:hover > img { transform: scale(1.02) translateX(3px); }
}

@media (max-width: 63.9375rem) {
  .restaurant-hero__media { inset-inline-start: 31%; }
  .restaurant-hero__copy { grid-column: 1 / span 6; }
  .restaurant-manifesto__primary { grid-column: 3 / span 7; }
  .restaurant-manifesto__note { grid-column: 10 / span 3; }
  .restaurant-cuisine__copy { grid-column: 1 / span 6; }
  .restaurant-cuisine__figure { grid-column: 8 / span 5; }
  .restaurant-stage__copy { grid-column: 1 / span 6; }
  .restaurant-stage__figure { grid-column: 7 / span 6; }
  .restaurant-planning__intro { grid-column: 1 / span 5; }
  .restaurant-planning__steps { grid-column: 6 / span 7; }
}

@media (max-width: 61.25rem) {
  .restaurant-cuisine__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .restaurant-cuisine__copy { grid-column: 1 / span 3; }
  .restaurant-cuisine__figure { grid-column: 4 / span 3; }
  .restaurant-themes__intro { width: 100%; }
  .restaurant-themes__modules { grid-template-columns: 1fr; }
  .restaurant-theme--poker,
  .restaurant-theme--roulette,
  .restaurant-theme--blackjack { grid-column: 1; }
  .restaurant-stage__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .restaurant-stage__copy { grid-column: 1 / span 3; }
  .restaurant-stage__figure { grid-column: 4 / span 3; }
  .restaurant-occasions__zones { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-occasion--corporate { margin-top: 0; }
  .restaurant-planning__grid,
  .restaurant-faq__grid { grid-template-columns: 1fr; }
  .restaurant-planning__intro,
  .restaurant-planning__steps,
  .restaurant-faq__intro,
  .restaurant-faq__list { grid-column: 1; max-width: none; }
}

@media (max-width: 54.9375rem) {
  .restaurant-hero { min-height: auto; display: flex; flex-direction: column; }
  .restaurant-hero__media { position: relative; inset: auto; width: 100%; height: clamp(16.25rem, 46vw, 25rem); order: 0; }
  .restaurant-hero__media::after { background: rgba(16, 28, 44, 0.08); }
  .restaurant-hero__container { display: block; min-height: 0; width: 100%; margin: 0; }
  .restaurant-hero__copy { max-width: none; padding-block: var(--space-7); }
  .restaurant-manifesto__grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .restaurant-manifesto__marker,
  .restaurant-manifesto__primary,
  .restaurant-manifesto__note { grid-column: 1; max-width: none; }
  .restaurant-manifesto__marker { flex-direction: row; align-items: center; }
  .restaurant-manifesto__marker > span:last-child { width: 4rem; height: 1px; }
  .restaurant-cuisine__grid,
  .restaurant-stage__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .restaurant-cuisine__copy,
  .restaurant-cuisine__figure,
  .restaurant-stage__copy,
  .restaurant-stage__figure { grid-column: 1; max-width: none; }
  .restaurant-cuisine__figure figcaption { max-width: 90%; }
  .restaurant-stage__figure { display: flex; flex-direction: column; gap: var(--space-4); }
  .restaurant-stage__quote { position: static; width: 100%; max-width: none; }
  .restaurant-occasions__intro { width: 100%; max-width: none; margin: 0; text-align: left; }
  .restaurant-occasions__intro .eyebrow { justify-content: flex-start; }
  .restaurant-occasions__intro .lead { max-width: none; margin-inline: 0; }
  .restaurant-final__container { grid-template-columns: 1fr; }
  .restaurant-final__copy { grid-column: 1; max-width: none; }
  .restaurant-final__decor { display: none; }
}

@media (max-width: 44.9375rem) {
  .restaurant-hero__copy .display-xl { font-size: clamp(3rem, 12vw, 3.5rem); }
  .restaurant-hero__actions,
  .restaurant-final__actions { flex-direction: column; }
  .restaurant-hero__actions .button,
  .restaurant-final__actions .button { width: 100%; min-height: 3rem; }
  .restaurant-themes { padding-block: var(--space-8); }
  .restaurant-themes__container { gap: var(--space-6); }
  .restaurant-theme { grid-template-columns: 1fr; gap: var(--space-3); padding: var(--space-5); }
  .restaurant-theme__number { font-size: 3.25rem; }
  .restaurant-occasions__zones { grid-template-columns: 1fr; gap: var(--space-6); }
  .restaurant-occasion,
  .restaurant-occasion--birthday,
  .restaurant-occasion--corporate { margin-top: 0; }
  .restaurant-occasion { grid-template-columns: 1fr; }
  .restaurant-occasion > div { max-width: none; }
  .restaurant-planning__grid,
  .restaurant-faq__grid { gap: var(--space-5); }
  .restaurant-step { grid-template-columns: 1fr; gap: var(--space-3); padding: var(--space-5); }
  .restaurant-step > div { max-width: none; }
  .restaurant-faq__item button { font-size: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  .restaurant-page *,
  .restaurant-page *::before,
  .restaurant-page *::after { transition: none !important; }
  .restaurant-hero:hover .restaurant-hero__media img,
  .restaurant-stage__media:hover > img { transform: none; }
}
