.restaurant-page { overflow: clip; }
.restaurant-page section { scroll-margin-top: 6rem; }
.restaurant-hero { position: relative; min-height: 42.5rem; display: grid; grid-template-columns: minmax(0, 1fr); align-items: end; isolation: isolate; background: var(--colour-ink); }
.restaurant-hero__image, .restaurant-hero__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.restaurant-hero__image { object-fit: cover; object-position: 62% center; z-index: -2; }
.restaurant-hero__shade { z-index: -1; background: linear-gradient(90deg, rgb(23 21 20 / .92) 0%, rgb(23 21 20 / .64) 43%, rgb(23 21 20 / .15) 78%), linear-gradient(0deg, rgb(23 21 20 / .92) 0%, transparent 54%); }
.restaurant-hero__container { width: min(100% - (var(--gutter) * 2), var(--container-max)); }
.restaurant-hero__content { width: min(100%, 42rem); min-width: 0; padding-block: var(--space-9); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.restaurant-hero__content > * { min-width: 0; margin: 0; }
.restaurant-hero h1 { max-width: 10ch; }
.restaurant-hero__actions { display: flex; width: auto; min-width: 0; flex-wrap: wrap; gap: var(--space-4); }
.restaurant-hero__actions > * { min-width: 0; }
.restaurant-hero__positioning { color: var(--colour-linen); font-size: var(--text-sm); }
.restaurant-atmosphere__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr); align-items: start; gap: var(--space-6); }
.restaurant-atmosphere__copy { grid-column: 1; min-width: 0; }
.restaurant-atmosphere__media { grid-column: 3; width: 100%; min-width: 0; aspect-ratio: 4 / 5; margin: 0; }
.restaurant-atmosphere__media img { object-position: center; }
.restaurant-atmosphere__intro, .restaurant-atmosphere__note, .restaurant-atmosphere__service { max-width: 36rem; }
.restaurant-atmosphere__intro .rule { margin: 0 0 var(--space-5); }
.restaurant-atmosphere__note { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); gap: var(--space-4); margin-top: var(--space-7); }
.restaurant-atmosphere__number { color: var(--colour-copper); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.restaurant-atmosphere__note div, .restaurant-atmosphere__service { min-width: 0; }
.restaurant-atmosphere__service { margin-top: var(--space-6); padding-top: var(--space-5); border-top: var(--border-subtle); }
.restaurant-food__field { width: min(100% - (var(--gutter) * 2), var(--container-max)); }
.restaurant-food__header { width: min(100%, 42rem); min-width: 0; }
.restaurant-food__units { display: grid; grid-template-columns: repeat(2, minmax(0, 5fr)); gap: var(--space-7) calc(var(--space-8) + var(--space-3)); width: min(100%, 56rem); margin-top: var(--space-7); }
.restaurant-food__units > * { min-width: 0; }
.restaurant-food__seasonal { grid-column: 1; width: 100%; max-width: 34rem; }
.restaurant-food__seasonal .rule { margin: 0 0 var(--space-5); }
.restaurant-food__shared { grid-column: 2; width: 100%; padding: var(--space-6); background: var(--colour-graphite); border: var(--border-subtle); }
.restaurant-food__drinks { grid-column: 1; width: 100%; max-width: 34rem; padding-bottom: var(--space-4); border-bottom: var(--border-copper); }
.restaurant-pace__header { width: min(100%, 38rem); min-width: 0; }
.restaurant-pace__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: var(--space-7); }
.restaurant-pace__step { display: grid; grid-template-columns: minmax(2.5rem, auto) minmax(0, 1fr); gap: var(--space-4); min-width: 0; padding: 0 var(--space-5); border-left: var(--border-subtle); }
.restaurant-pace__step:first-child { padding-left: 0; border-left: 0; }
.restaurant-pace__step > span { color: var(--colour-copper); font-family: var(--font-heading); font-size: 2rem; line-height: 1; font-variant-numeric: tabular-nums; }
.restaurant-pace__step > div { min-width: 0; }
.restaurant-pace__step--featured h3 { padding-bottom: var(--space-3); border-bottom: var(--border-gold); }
.restaurant-pace__media { width: 50%; min-width: 0; aspect-ratio: 3 / 2; margin: var(--space-7) 0 0 auto; }
.restaurant-groups__header { width: min(100%, 44rem); min-width: 0; }
.restaurant-groups__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-5); margin-top: var(--space-7); }
.restaurant-groups__card { min-width: 0; padding: var(--space-5); background: var(--colour-graphite); border: var(--border-subtle); }
.restaurant-groups__card > :last-child { margin-bottom: 0; }
.restaurant-groups__action { margin-top: var(--space-5); }
.restaurant-poker__header { width: min(100%, 42rem); min-width: 0; }
.restaurant-poker__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr); gap: var(--space-6); align-items: start; margin-top: var(--space-7); }
.restaurant-poker__media { grid-column: 1; width: 100%; min-width: 0; aspect-ratio: 4 / 5; margin: 0; }
.restaurant-poker__copy { grid-column: 3; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); min-width: 0; }
.restaurant-poker__copy > * { min-width: 0; }
.restaurant-poker__action { grid-column: 1 / -1; justify-self: start; }
.restaurant-late__container { width: min(100% - (var(--gutter) * 2), var(--container-max)); }
.restaurant-late__header { width: min(100%, 42rem); min-width: 0; }
.restaurant-late__rows { width: min(100%, 62rem); margin-top: var(--space-7); border-top: var(--border-subtle); }
.restaurant-late__row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 7fr); gap: var(--space-6); min-width: 0; padding: var(--space-5) 0 var(--space-5) var(--space-4); border-bottom: var(--border-subtle); border-left: var(--border-copper); }
.restaurant-late__row > * { min-width: 0; margin: 0; }
.restaurant-late__row > div { max-width: 32rem; }
.restaurant-late__links { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-5); }
.restaurant-late__links > * { min-width: 0; }
.restaurant-frames__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--space-6); align-items: end; }
.restaurant-frames__header { min-width: 0; max-width: 34rem; }
.restaurant-frames__media { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 3fr); gap: var(--space-5); align-items: end; min-width: 0; }
.restaurant-frames__frame { position: relative; display: block; min-width: 0; overflow: hidden; color: var(--colour-ivory); text-decoration: none; }
.restaurant-frames__frame img { width: 100%; height: 100%; object-fit: cover; transition: filter var(--transition-fast); }
.restaurant-frames__frame:hover img { filter: brightness(1.05); }
.restaurant-frames__frame--dining { aspect-ratio: 3 / 2; }
.restaurant-frames__frame--lounge { aspect-ratio: 4 / 5; }
.restaurant-frames__frame span { position: absolute; right: 0; bottom: 0; left: 0; min-width: 0; padding: var(--space-3) var(--space-4); background: linear-gradient(0deg, rgb(36 27 25 / .96), rgb(36 27 25 / .72)); color: var(--colour-linen); font-size: var(--text-sm); line-height: 1.4; }
.restaurant-faq__header { width: min(100%, 36rem); min-width: 0; }
.restaurant-faq__list { width: min(100%, 56rem); min-width: 0; margin-top: var(--space-6); background: var(--colour-graphite); border-top: var(--border-subtle); }
.restaurant-faq__item { min-width: 0; border-bottom: var(--border-subtle); }
.restaurant-faq__item h3 { margin: 0; font-family: var(--font-body); font-size: var(--text-base); letter-spacing: 0; }
.restaurant-faq__item button { display: grid; grid-template-columns: minmax(0, 1fr) 2rem; align-items: center; width: 100%; min-width: 0; min-height: 3.5rem; gap: var(--space-4); padding: var(--space-4); border: 0; background: transparent; color: var(--colour-ivory); font-weight: 600; text-align: left; }
.restaurant-faq__icon { color: var(--colour-gold); font-size: 1.5rem; font-weight: 400; line-height: 1; text-align: right; }
.restaurant-faq__answer { overflow: hidden; padding: 0 var(--space-4); opacity: 0; transition: opacity var(--transition-panel), max-height var(--transition-panel); }
.restaurant-faq__answer.is-open { padding-bottom: var(--space-5); opacity: 1; }
.restaurant-faq__answer p { max-width: 46rem; margin: 0; }
.restaurant-faq__all { display: inline-block; margin-top: var(--space-5); }
.restaurant-reservations__layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
.restaurant-reservations__panel { grid-column: 1; min-width: 0; max-width: 50rem; padding: clamp(var(--space-5), 5vw, var(--space-8)); background: var(--colour-espresso); border: var(--border-subtle); border-top: var(--border-gold); }
.restaurant-reservations__panel > :last-child { margin-bottom: 0; }
.restaurant-reservations__panel p:not(.eyebrow) { max-width: 38rem; }
.restaurant-reservations__links { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; width: min(100%, 34rem); margin-top: var(--space-5); }
.restaurant-reservations__links a { min-width: 0; padding: var(--space-3) 0; border-top: var(--border-copper); }
@media (max-width: 61.25rem) { .restaurant-hero__actions { flex-direction: column; align-items: stretch; width: min(100%, 21rem); } .restaurant-atmosphere__grid, .restaurant-poker__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-7); } .restaurant-atmosphere__copy, .restaurant-atmosphere__media, .restaurant-poker__media, .restaurant-poker__copy { grid-column: 1; } .restaurant-atmosphere__media, .restaurant-poker__media { max-width: 42rem; } .restaurant-poker__copy { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); } .restaurant-poker__action { grid-column: 1; } }
@media (max-width: 56.25rem) { .restaurant-pace__steps { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } .restaurant-pace__step, .restaurant-pace__step:first-child { padding: 0 0 var(--space-5); border-left: 0; border-bottom: var(--border-subtle); } .restaurant-pace__media { width: 100%; margin-top: var(--space-6); } .restaurant-frames__grid { grid-template-columns: minmax(0, 1fr); } .restaurant-frames__header { max-width: 34rem; } .restaurant-frames__media { max-width: 48rem; } .restaurant-faq__list { width: 100%; } }
@media (max-width: 53.75rem) { .restaurant-food__units { grid-template-columns: minmax(0, 1fr); width: min(100%, 42rem); gap: var(--space-6); } .restaurant-food__seasonal, .restaurant-food__shared, .restaurant-food__drinks { grid-column: 1; max-width: none; } }
@media (max-width: 51.25rem) { .restaurant-late__rows { width: 100%; } .restaurant-late__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); } .restaurant-late__row > div { max-width: none; } }
@media (min-width: 48rem) and (max-width: 63.75rem) { .restaurant-groups__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } .restaurant-groups__card:nth-child(3) { grid-column: 1; } }
@media (max-width: 47.9375rem) { .restaurant-hero { min-height: 45rem; } .restaurant-hero__image { object-position: 60% center; } .restaurant-hero__shade { background: linear-gradient(0deg, rgb(23 21 20 / .96) 0%, rgb(23 21 20 / .76) 42%, rgb(23 21 20 / .08) 76%); } .restaurant-hero__content { width: 100%; padding-block: var(--space-7); } .restaurant-hero h1 { max-width: 9ch; } .restaurant-hero__actions { width: 100%; } .restaurant-hero__actions .button { width: 100%; } .restaurant-atmosphere__media, .restaurant-poker__media { max-width: none; } .restaurant-groups__cards { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); } .restaurant-groups__action, .restaurant-poker__action { width: 100%; } .restaurant-frames__media { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } .restaurant-frames__frame--dining, .restaurant-frames__frame--lounge { width: 100%; } .restaurant-reservations__layout { grid-template-columns: minmax(0, 1fr); } .restaurant-reservations__panel { grid-column: 1; width: 100%; } .restaurant-reservations__panel > .button { width: 100%; } }
@media (max-width: 26.1875rem) { .restaurant-hero { min-height: 42rem; } .restaurant-hero__content { padding-block: var(--space-6); } }
