.menu-page {
  overflow: hidden;
}

.menu-page .menu-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  color: var(--color-cobalt);
  font-size: var(--text-label);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.25;
  text-transform: uppercase;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  transition: color var(--transition-fast), border-color var(--transition-fast), padding-inline var(--transition-fast);
}

.menu-page .menu-text-link:hover {
  color: var(--color-ink);
  padding-inline-end: var(--space-2);
}

.menu-page .menu-text-link--light {
  color: var(--color-linen);
}

.menu-page .menu-text-link--light:hover {
  color: var(--color-mandarin);
}

.menu-hero {
  padding-block: var(--space-8) var(--space-5);
  background: var(--color-limestone);
}

.menu-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  min-width: 0;
}

.menu-hero__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-5);
  min-width: 0;
  padding: var(--space-9) max(var(--gutter), calc((100vw - var(--container-max)) / 2)) var(--space-9) max(var(--gutter), calc((100vw - var(--container-max)) / 2));
  background: linear-gradient(135deg, var(--color-limestone) 0%, var(--color-limestone) 72%, rgb(23 71 166 / 10%) 100%);
}

.menu-hero__copy h1,
.menu-hero__copy p,
.menu-hero__copy .action-group {
  margin: 0;
}

.menu-hero__copy h1 {
  max-inline-size: 40rem;
  font-size: clamp(3.5rem, 6.7vw, 6.8rem);
}

.menu-hero__intro {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-inline-size: 40rem;
  min-width: 0;
  padding-top: var(--space-5);
  border-top: 1px solid var(--color-border);
}

.menu-hero__intro p {
  margin: 0;
}

.menu-hero__actions {
  gap: var(--space-3);
}

.menu-hero__media {
  width: 100%;
  min-width: 0;
  min-height: 42rem;
  margin: 0;
  overflow: hidden;
  background: var(--color-terrazzo);
}

.menu-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 68% center;
}

.menu-recurring-line,
.menu-poker__divider {
  display: block;
  width: 100%;
  padding: var(--space-5) var(--gutter) 0;
  color: var(--color-slate);
  font-size: var(--text-label);
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.7;
  text-align: center;
}

.menu-recurring-line span,
.menu-poker__divider span {
  color: var(--color-mandarin);
  padding-inline: var(--space-2);
}

.menu-kitchen__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
  gap: var(--space-6);
  min-width: 0;
}

.menu-kitchen__heading,
.menu-kitchen__principles,
.menu-principle {
  min-width: 0;
}

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

.menu-principle {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.menu-principle h3,
.menu-principle p,
.menu-principle blockquote {
  margin: 0;
}

.menu-principle p {
  max-inline-size: 31rem;
}

.menu-principle--linen {
  padding: var(--space-5);
  border: 1px solid var(--color-border);
  background: var(--color-linen);
}

.menu-principle--quote blockquote {
  padding: 0 0 0 var(--space-4);
}

.menu-signature__opening {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--space-6);
  align-items: start;
  min-width: 0;
  margin-bottom: var(--space-8);
}

.menu-signature__opening > *,
.menu-signature__features > * {
  min-width: 0;
}

.menu-signature__lead {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  max-inline-size: 46rem;
}

.menu-signature__lead p {
  margin: 0;
}

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

.menu-signature__image {
  width: 100%;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  background: var(--color-terrazzo);
}

.menu-signature__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.menu-signature__image--one {
  grid-column: 1 / span 7;
  aspect-ratio: 4 / 5;
}

.menu-signature__caption--one {
  grid-column: 8 / span 5;
}

.menu-signature__image--two {
  grid-column: 1 / span 5;
  aspect-ratio: 3 / 2;
}

.menu-signature__caption--two {
  grid-column: 6 / span 7;
  padding: var(--space-6);
  background: var(--color-terrazzo);
}

.menu-signature__caption {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.menu-signature__caption > * {
  margin: 0;
}

.menu-signature__caption p:not(.label) {
  max-inline-size: 27rem;
}

.menu-dessert {
  padding-top: 0;
}

.menu-dessert__image-wrap {
  width: 100%;
  min-width: 0;
}

.menu-dessert__image {
  width: 100%;
  height: min(32vw, 30rem);
  min-height: 20rem;
  margin: 0;
  overflow: hidden;
}

.menu-dessert__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 70% center;
}

.menu-dessert__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
  min-width: 0;
  margin-top: calc(var(--space-8) * -1);
  position: relative;
}

.menu-dessert__statement,
.menu-dessert__note {
  min-width: 0;
}

.menu-dessert__statement {
  grid-column: 1 / span 5;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-7);
  background: var(--color-limestone);
}

.menu-dessert__statement > *,
.menu-dessert__note > * {
  margin: 0;
}

.menu-dessert__statement h2 {
  font-style: italic;
}

.menu-dessert__statement p {
  max-inline-size: 34rem;
}

.menu-dessert__note {
  grid-column: 8 / span 5;
  align-self: end;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-terracotta);
}

.menu-dessert__note p {
  max-inline-size: 38rem;
}

.menu-cocktails__top {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-7);
  align-items: stretch;
  min-width: 0;
}

.menu-cocktails__intro,
.menu-cocktails__image,
.menu-cocktails__note {
  min-width: 0;
}

.menu-cocktails__intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
}

.menu-cocktails__intro > * {
  margin: 0;
}

.menu-cocktails__intro p:not(.eyebrow) {
  max-inline-size: 40rem;
}

.menu-cocktails__image {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius-md);
  aspect-ratio: 4 / 5;
  background: var(--color-terrazzo);
}

.menu-cocktails__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 62% center;
}

.menu-cocktails__notes {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  margin-top: var(--space-7);
}

.menu-cocktails__note {
  grid-column: 5 / span 4;
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.menu-cocktails__note--lounge {
  grid-column: 9 / span 4;
}

.menu-cocktails__note > * {
  margin: 0;
}

.menu-cocktails__note p {
  max-inline-size: 28rem;
}

.menu-evening {
  padding-top: 0;
}

.menu-evening__panorama {
  width: 100%;
  height: min(33vw, 31rem);
  min-height: 22rem;
  margin: 0;
  overflow: hidden;
  background: var(--color-ink);
}

.menu-evening__panorama img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.menu-evening__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7);
  min-width: 0;
  padding-top: var(--space-8);
}

.menu-evening__intro {
  grid-column: 1 / span 6;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
}

.menu-evening__intro > * {
  margin: 0;
}

.menu-evening__intro p:not(.eyebrow) {
  max-inline-size: 42rem;
}

.menu-evening__notes {
  grid-column: 7 / span 6;
  display: flex;
  flex-direction: column;
  gap: var(--space-6);
  min-width: 0;
}

.menu-evening__note {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  min-width: 0;
  padding-left: var(--space-5);
  border-left: 1px solid var(--color-cobalt);
}

.menu-evening__note > * {
  margin: 0;
}

.menu-evening__note p:not(.label) {
  max-inline-size: 30rem;
}

.menu-poker {
  position: relative;
}

.menu-poker__top {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-7);
  align-items: center;
  min-width: 0;
}

.menu-poker__definition,
.menu-poker__image,
.menu-poker__note {
  min-width: 0;
}

.menu-poker__definition {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.menu-poker__definition > * {
  margin: 0;
}

.menu-poker__definition p:not(.eyebrow) {
  max-inline-size: 44rem;
}

.menu-poker__image {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgb(255 253 252 / 28%);
  border-radius: var(--radius-md);
  aspect-ratio: 3 / 2;
  background: var(--color-burgundy);
}

.menu-poker__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.menu-poker__notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-6);
  min-width: 0;
  margin-top: var(--space-8);
}

.menu-poker__note {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding-top: var(--space-5);
  border-top: 1px solid rgb(255 253 252 / 35%);
}

.menu-poker__note > * {
  margin: 0;
}

.menu-poker__note p {
  max-inline-size: 34rem;
}

.menu-poker__divider {
  padding-inline: 0;
  margin-top: var(--space-7);
  color: var(--color-limestone);
  border-top: 1px solid rgb(255 253 252 / 30%);
}

.menu-next__grid {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
  gap: var(--space-6);
  min-width: 0;
}

.menu-next__heading,
.menu-next__panels,
.menu-next__panel {
  min-width: 0;
}

.menu-next__panels {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-4);
}

.menu-next__panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-height: 19rem;
  padding: var(--space-5);
  border-top: 2px solid var(--color-steel);
  background: var(--color-limestone);
  transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.menu-next__panel:hover {
  border-color: var(--color-cobalt);
  background: var(--color-linen);
}

.menu-next__panel > * {
  margin: 0;
}

.menu-next__panel p {
  max-inline-size: 26rem;
}

.menu-next__panel .menu-text-link {
  margin-top: auto;
}

.menu-next__panel--lounge {
  background: rgb(23 71 166 / 10%);
}

.menu-next__panel--tables {
  background: var(--color-terrazzo);
}

.menu-enquiry__grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  min-width: 0;
}

.menu-enquiry__plane,
.menu-enquiry__field {
  min-width: 0;
}

.menu-enquiry__plane {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-7);
  background: var(--color-linen);
  color: var(--color-ink);
}

.menu-enquiry__plane > * {
  margin: 0;
}

.menu-enquiry__plane > p:not(.eyebrow):not(.menu-enquiry__location) {
  max-inline-size: 44rem;
}

.menu-enquiry__field {
  position: relative;
}

.menu-enquiry__field::before {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: var(--color-cobalt);
  content: "";
}

.menu-enquiry__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  align-items: center;
  min-width: 0;
}

.menu-enquiry__actions > * {
  min-width: 0;
}

.menu-enquiry__secondary {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-3);
  align-items: baseline;
  min-width: 0;
}

.menu-enquiry__secondary a {
  overflow-wrap: anywhere;
}

.menu-enquiry__secondary small {
  color: var(--color-slate);
}

.menu-enquiry__location {
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
  color: var(--color-slate);
  font-size: var(--text-meta);
}

.menu-note {
  padding-block: var(--space-8);
}

.menu-note__block {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  width: min(100%, 48rem);
  min-width: 0;
  margin-inline: auto;
  padding: var(--space-5) 0;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.menu-note__block > * {
  margin: 0;
}

.menu-note__block p {
  max-inline-size: 48rem;
}

.menu-reveal {
  opacity: 1;
  clip-path: inset(0);
}

.js .menu-reveal {
  opacity: 0;
  clip-path: inset(0 0 8% 0);
  transition: opacity 500ms ease-out, clip-path 500ms ease-out;
}

.js .menu-reveal.is-visible {
  opacity: 1;
  clip-path: inset(0);
}

@media (max-width: 1199px) {
  .menu-hero__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-hero__copy {
    padding-block: var(--space-8);
  }

  .menu-hero__media {
    min-height: 35rem;
  }
}

@media (max-width: 1020px) {
  .menu-next__grid {
    grid-template-columns: 1fr;
  }

  .menu-next__panels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-next__panel--tables {
    grid-column: 1 / span 2;
  }
}

@media (max-width: 980px) {
  .menu-kitchen__grid,
  .menu-signature__opening {
    grid-template-columns: 1fr;
  }

  .menu-kitchen__principles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-principle--lead {
    grid-column: 1 / span 2;
  }

  .menu-poker__top {
    grid-template-columns: 1fr;
  }

  .menu-poker__image {
    order: 2;
  }
}

@media (max-width: 960px) {
  .menu-cocktails__notes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .menu-cocktails__note,
  .menu-cocktails__note--lounge {
    grid-column: auto;
  }
}

@media (max-width: 900px) {
  .menu-hero {
    padding-top: var(--space-6);
  }

  .menu-hero__grid {
    display: flex;
    flex-direction: column;
  }

  .menu-hero__copy {
    padding: var(--space-7) var(--gutter);
  }

  .menu-hero__copy h1 {
    font-size: clamp(2.75rem, 11vw, 4rem);
  }

  .menu-hero__media {
    order: 2;
    min-height: auto;
    aspect-ratio: 4 / 5;
  }

  .menu-hero__media img {
    object-position: 68% center;
  }

  .menu-kitchen__grid {
    gap: var(--space-5);
  }

  .menu-signature__features {
    grid-template-columns: 1fr;
    gap: var(--space-5);
  }

  .menu-signature__image--one,
  .menu-signature__caption--one,
  .menu-signature__image--two,
  .menu-signature__caption--two {
    grid-column: auto;
  }

  .menu-signature__image--two {
    aspect-ratio: 4 / 5;
  }

  .menu-signature__caption--two {
    padding: var(--space-5);
  }

  .menu-dessert {
    padding-top: var(--space-8);
  }

  .menu-dessert__image {
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .menu-dessert__grid {
    grid-template-columns: 1fr;
    margin-top: 0;
    padding-top: var(--space-6);
  }

  .menu-dessert__statement,
  .menu-dessert__note {
    grid-column: auto;
  }

  .menu-dessert__statement {
    padding: 0;
    background: transparent;
  }

  .menu-cocktails__top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }

  .menu-evening__grid {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .menu-evening__intro,
  .menu-evening__notes {
    grid-column: auto;
  }

  .menu-enquiry__grid {
    grid-template-columns: minmax(0, 9fr) minmax(0, 3fr);
  }
}

@media (max-width: 720px) {
  .menu-kitchen__principles,
  .menu-cocktails__top,
  .menu-cocktails__notes,
  .menu-poker__notes {
    grid-template-columns: 1fr;
  }

  .menu-principle--lead {
    grid-column: auto;
  }

  .menu-principle--linen {
    padding: var(--space-4);
  }

  .menu-cocktails__image {
    aspect-ratio: 4 / 5;
  }

  .menu-evening__panorama {
    height: auto;
    min-height: 0;
    aspect-ratio: 2.2 / 1;
  }

  .menu-enquiry__grid {
    grid-template-columns: 1fr;
  }

  .menu-enquiry__field {
    display: none;
  }
}

@media (max-width: 680px) {
  .menu-next__panels {
    grid-template-columns: 1fr;
  }

  .menu-next__panel--tables {
    grid-column: auto;
  }

  .menu-next__panel {
    min-height: 0;
  }

  .menu-enquiry__plane {
    padding: var(--space-5);
  }
}

@media (max-width: 640px) {
  .menu-note__block {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .menu-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
  }

  .menu-hero__actions > * {
    width: 100%;
  }

  .menu-hero__actions .menu-text-link {
    justify-content: center;
  }

  .menu-enquiry__actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .menu-enquiry__actions .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js .menu-reveal,
  .js .menu-reveal.is-visible {
    opacity: 1;
    clip-path: none;
  }
}
