.restaurant-page {
  overflow: hidden;
}

.restaurant-page .reveal {
  opacity: 1;
  transform: none;
}

.restaurant-hero {
  background: var(--color-canvas);
}

.restaurant-hero__layout {
  display: grid;
  grid-template-columns: minmax(26.25rem, 41fr) minmax(0, 59fr);
  min-height: 40rem;
}

.restaurant-hero__copy,
.restaurant-hero__media,
.restaurant-kitchen__editorial,
.restaurant-kitchen__media,
.restaurant-materials__copy,
.restaurant-materials__media,
.restaurant-lounge__column,
.restaurant-ritual__step,
.restaurant-occasions__item,
.restaurant-details__figure,
.restaurant-paths__item {
  min-width: 0;
}

.restaurant-hero__copy {
  display: flex;
  width: 100%;
  align-items: center;
  background: var(--color-burgundy);
}

.restaurant-hero__copy-inner {
  display: flex;
  width: min(100%, 35rem);
  flex-direction: column;
  gap: var(--space-5);
  margin-inline: auto 0;
  padding: var(--space-8) var(--space-7) var(--space-8) max(var(--container-padding), calc((100vw - var(--container-max)) / 2));
}

.restaurant-hero__copy-inner :is(h1, p) {
  margin: 0;
}

.restaurant-hero__copy-inner .eyebrow {
  margin: 0;
}

.restaurant-hero__copy h1 {
  max-width: 8.8em;
  font-size: clamp(4rem, 5.6vw, 4.5rem);
}

.restaurant-hero__copy .lead {
  max-width: 34rem;
}

.restaurant-hero__actions {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.restaurant-hero__actions > * {
  width: auto;
  min-width: 0;
}

.restaurant-hero__address {
  color: var(--color-cream-muted);
  font-size: var(--text-sm);
}

.restaurant-hero__media {
  width: 100%;
  margin: 0;
  overflow: hidden;
}

.restaurant-hero__media img {
  width: 100%;
  height: 100%;
  min-height: 40rem;
  object-fit: cover;
  object-position: 68% center;
}

.restaurant-philosophy__intro {
  width: min(100%, 38.75rem);
}

.restaurant-philosophy__intro .lead {
  margin-bottom: 0;
}

.restaurant-philosophy__pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--space-8);
  border-top: var(--border-dark);
}

.restaurant-philosophy__pillar {
  width: 100%;
  padding: var(--space-5) var(--space-5) 0 0;
}

.restaurant-philosophy__pillar + .restaurant-philosophy__pillar {
  padding-left: var(--space-5);
  border-left: var(--border-dark);
}

.restaurant-philosophy__tag {
  display: block;
  margin-bottom: var(--space-4);
  color: var(--color-brass);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.restaurant-philosophy__pillar h3 {
  font-size: clamp(1.7rem, 2.25vw, 2rem);
}

.restaurant-philosophy__pillar p {
  max-width: 21rem;
  margin-bottom: 0;
}

.restaurant-kitchen__layout {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
  align-items: start;
  gap: clamp(var(--space-7), 6vw, var(--space-10));
}

.restaurant-kitchen__editorial {
  width: 100%;
  max-width: 40.625rem;
}

.restaurant-kitchen__editorial .lead {
  max-width: 36.875rem;
}

.restaurant-kitchen__media {
  width: 100%;
  aspect-ratio: 4 / 5;
  margin: 0;
}

.restaurant-kitchen__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.restaurant-kitchen__item {
  display: grid;
  grid-template-columns: 2.625rem minmax(0, 1fr);
  width: 100%;
  gap: var(--space-4);
  padding-top: var(--space-5);
  border-top: var(--border-light);
}

.restaurant-kitchen__number {
  color: var(--color-brass);
  font-family: var(--font-heading);
  font-size: 2rem;
  line-height: 1;
}

.restaurant-kitchen__item-copy {
  min-width: 0;
  max-width: 32.5rem;
}

.restaurant-kitchen__item-copy h3 {
  margin-bottom: var(--space-2);
  font-size: clamp(1.55rem, 2.1vw, 1.8rem);
}

.restaurant-kitchen__item-copy p {
  margin-bottom: 0;
}

.restaurant-materials__layout {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: center;
  gap: clamp(var(--space-7), 6vw, var(--space-10));
}

.restaurant-materials__media {
  width: calc(100% + 4vw);
  aspect-ratio: 3 / 2;
  margin: 0;
}

.restaurant-materials__copy {
  width: 100%;
  max-width: 31.25rem;
  justify-self: end;
}

.restaurant-materials__copy .lead {
  max-width: 31.25rem;
}

.restaurant-materials__notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  margin-top: var(--space-6);
  border-top: var(--border-dark);
}

.restaurant-materials__notes article {
  width: 100%;
  padding: var(--space-4) var(--space-3) 0 0;
}

.restaurant-materials__notes article + article {
  padding-left: var(--space-3);
  border-left: var(--border-dark);
}

.restaurant-materials__notes h3 {
  margin-bottom: var(--space-2);
  font-size: 1.45rem;
}

.restaurant-materials__notes p {
  margin-bottom: 0;
  font-size: var(--text-sm);
}

.restaurant-materials__link,
.restaurant-lounge__link,
.restaurant-details__links a,
.restaurant-closing__link,
.restaurant-occasions__contact {
  display: inline-block;
  margin-top: var(--space-5);
  font-weight: 700;
}

.restaurant-lounge__panel {
  width: 100%;
  padding: clamp(var(--space-6), 5vw, var(--space-9));
  background: var(--color-green);
}

.restaurant-lounge__panel > .eyebrow,
.restaurant-lounge__panel > h2 {
  display: block;
  width: min(100%, 38rem);
}

.restaurant-lounge__columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  gap: var(--space-8);
  margin-top: var(--space-6);
}

.restaurant-lounge__column {
  width: 100%;
  max-width: 28.125rem;
}

.restaurant-lounge__column:nth-child(2) {
  padding-left: var(--space-8);
  border-left: var(--border-dark);
}

.restaurant-lounge__column h3 {
  font-size: clamp(1.8rem, 2.5vw, 2.25rem);
}

.restaurant-lounge__notice {
  width: 100%;
  max-width: 47.5rem;
  margin: var(--space-8) 0 0;
}

.restaurant-lounge__notice .eyebrow,
.restaurant-lounge__notice p {
  margin: 0;
}

.restaurant-lounge__notice .eyebrow {
  margin-bottom: var(--space-3);
}

.restaurant-ritual__intro {
  width: min(100%, 35rem);
}

.restaurant-ritual__intro .lead {
  margin-bottom: 0;
}

.restaurant-ritual__steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
  margin-top: var(--space-8);
  border-top: var(--border-dark);
  border-bottom: var(--border-dark);
}

.restaurant-ritual__step {
  display: grid;
  grid-template-columns: 1fr;
  width: 100%;
  align-content: start;
  gap: var(--space-4);
  padding: var(--space-6) var(--space-5);
}

.restaurant-ritual__step:first-child {
  padding-left: 0;
}

.restaurant-ritual__step + .restaurant-ritual__step {
  border-left: var(--border-dark);
}

.restaurant-ritual__step > span {
  color: var(--color-brass);
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  line-height: 0.9;
}

.restaurant-ritual__step h3 {
  margin-bottom: var(--space-2);
  font-size: clamp(1.55rem, 2vw, 1.85rem);
}

.restaurant-ritual__step p {
  margin-bottom: 0;
}

.restaurant-ritual__step--lounge {
  border-top: 1px solid var(--color-brass);
}

.restaurant-occasions {
  position: relative;
}

.restaurant-occasions::before {
  position: absolute;
  inset: 0;
  opacity: 0.1;
  background: linear-gradient(125deg, transparent 0 45%, rgba(241,229,207,0.35) 46%, transparent 47% 100%);
  content: "";
  pointer-events: none;
}

.restaurant-occasions .container {
  position: relative;
}

.restaurant-occasions__intro {
  width: min(100%, 38rem);
}

.restaurant-occasions__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  margin-top: var(--space-7);
  border-top: var(--border-dark);
}

.restaurant-occasions__item {
  width: 100%;
  padding: var(--space-5) var(--space-5) 0 0;
}

.restaurant-occasions__item + .restaurant-occasions__item {
  padding-left: var(--space-5);
  border-left: var(--border-dark);
}

.restaurant-occasions__item h3 {
  font-size: clamp(1.75rem, 2.4vw, 2.2rem);
}

.restaurant-occasions__item p {
  max-width: 20.625rem;
  margin-bottom: 0;
}

.restaurant-occasions__cta {
  display: flex;
  width: 100%;
  max-width: 32.5rem;
  flex-direction: column;
  gap: var(--space-5);
  margin-top: var(--space-8);
}

.restaurant-occasions__cta p {
  margin: 0;
}

.restaurant-occasions__actions {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

.restaurant-occasions__actions > * {
  width: auto;
  min-width: 0;
  margin: 0;
}

.restaurant-details__intro {
  width: min(100%, 32.5rem);
}

.restaurant-details__intro .lead {
  margin-bottom: 0;
}

.restaurant-details__gallery {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  width: 100%;
  align-items: start;
  gap: var(--space-6);
  margin-top: var(--space-7);
}

.restaurant-details__figure {
  width: 100%;
  margin: 0;
}

.restaurant-details__figure .image-frame {
  width: 100%;
}

.restaurant-details__figure--table .image-frame {
  aspect-ratio: 3 / 2;
}

.restaurant-details__figure--lounge .image-frame {
  aspect-ratio: 4 / 5;
}

.restaurant-details__figure figcaption {
  width: 100%;
  max-width: 100%;
}

.restaurant-details__figure figcaption strong {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-cream);
  font-family: var(--font-heading);
  font-size: 1.4rem;
  font-weight: 500;
}

.restaurant-details__caption-label {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-brass);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.restaurant-details__links {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  gap: var(--space-5);
  margin-top: var(--space-4);
}

.restaurant-details__links a {
  width: auto;
  min-width: 0;
  margin-top: 0;
}

.restaurant-paths__intro {
  width: min(100%, 35rem);
}

.restaurant-paths__intro .lead {
  margin-bottom: 0;
}

.restaurant-paths__list {
  display: flex;
  width: 100%;
  flex-direction: column;
  margin-top: var(--space-7);
  border-top: var(--border-dark);
}

.restaurant-paths__item {
  display: grid;
  grid-template-columns: minmax(4rem, 10%) minmax(12rem, 30%) minmax(16rem, 45%) minmax(8rem, 15%);
  width: 100%;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) 0;
  border-bottom: var(--border-dark);
  color: var(--color-cream);
  text-decoration: none;
}

.restaurant-paths__item:hover {
  color: var(--color-cream);
}

.restaurant-paths__number {
  color: var(--color-brass);
  font-family: var(--font-heading);
  font-size: 2rem;
}

.restaurant-paths__title {
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  line-height: 1;
}

.restaurant-paths__description {
  width: 100%;
  max-width: 24.375rem;
  color: var(--color-cream-muted);
  font-size: var(--text-sm);
}

.restaurant-paths__cta {
  justify-self: end;
  color: var(--color-brass);
  font-size: var(--text-sm);
  font-weight: 700;
  text-align: right;
}

.restaurant-closing__panel {
  display: flex;
  width: 100%;
  justify-content: center;
  padding: clamp(var(--space-6), 6vw, var(--space-9));
  background: var(--color-cream);
  color: var(--color-ink);
}

.restaurant-closing__copy {
  display: flex;
  width: min(100%, 37.5rem);
  flex-direction: column;
  gap: var(--space-5);
}

.restaurant-closing__copy :is(h2, p) {
  margin: 0;
}

.restaurant-closing__copy .eyebrow {
  margin: 0;
}

.restaurant-closing__actions {
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

.restaurant-closing__actions > * {
  width: auto;
  min-width: 0;
  margin: 0;
}

.restaurant-closing__link {
  color: var(--color-burgundy);
}

@media (max-width: 1200px) {
  .restaurant-hero__copy-inner {
    padding-right: var(--space-6);
  }

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

  .restaurant-ritual__step {
    padding-left: var(--space-5);
  }

  .restaurant-ritual__step:nth-child(3) {
    padding-left: 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-ritual__step:nth-child(4) {
    border-top: var(--border-dark);
  }
}

@media (max-width: 900px) {
  .restaurant-hero__layout,
  .restaurant-kitchen__layout,
  .restaurant-materials__layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .restaurant-hero__media {
    grid-row: 1;
  }

  .restaurant-hero__media img {
    min-height: 0;
    aspect-ratio: 16 / 8;
  }

  .restaurant-hero__copy {
    grid-row: 2;
  }

  .restaurant-hero__copy-inner {
    width: min(100%, var(--container-max));
    margin-inline: auto;
    padding: var(--space-7) var(--container-padding);
  }

  .restaurant-kitchen__media {
    grid-row: 1;
    max-width: 42rem;
  }

  .restaurant-kitchen__editorial {
    grid-row: 2;
    max-width: 40.625rem;
  }

  .restaurant-materials__media {
    width: 100%;
  }

  .restaurant-materials__copy {
    justify-self: start;
  }

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

  .restaurant-philosophy__pillar:nth-child(3) {
    grid-column: 1 / -1;
    padding-left: 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-lounge__columns {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .restaurant-lounge__column {
    max-width: 28.125rem;
  }

  .restaurant-lounge__column:nth-child(2) {
    padding-top: var(--space-6);
    padding-left: 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

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

  .restaurant-occasions__item:nth-child(3) {
    grid-column: 1 / -1;
    padding-left: 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-details__gallery {
    grid-template-columns: minmax(0, 1fr);
  }

  .restaurant-details__figure--lounge {
    max-width: 32rem;
  }

  .restaurant-paths__item {
    grid-template-columns: 4rem minmax(0, 1fr);
    align-items: start;
  }

  .restaurant-paths__title {
    grid-column: 2;
  }

  .restaurant-paths__description {
    grid-column: 2;
    max-width: 28rem;
  }

  .restaurant-paths__cta {
    grid-column: 2;
    justify-self: start;
    text-align: left;
  }
}

@media (max-width: 640px) {
  .restaurant-hero__copy-inner {
    gap: var(--space-4);
    padding-block: var(--space-6);
  }

  .restaurant-hero__copy h1 {
    font-size: clamp(2.65rem, 12vw, 3rem);
  }

  .restaurant-hero__media img {
    aspect-ratio: 4 / 3;
  }

  .restaurant-hero__actions,
  .restaurant-occasions__actions,
  .restaurant-closing__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .restaurant-hero__actions > *,
  .restaurant-occasions__actions > *,
  .restaurant-closing__actions > * {
    width: 100%;
  }

  .restaurant-hero__actions .button,
  .restaurant-occasions__actions .button,
  .restaurant-closing__actions .button {
    width: 100%;
  }

  .restaurant-philosophy__pillars,
  .restaurant-materials__notes,
  .restaurant-occasions__grid,
  .restaurant-ritual__steps {
    grid-template-columns: minmax(0, 1fr);
  }

  .restaurant-philosophy__pillars {
    margin-top: var(--space-6);
  }

  .restaurant-philosophy__pillar,
  .restaurant-philosophy__pillar + .restaurant-philosophy__pillar,
  .restaurant-philosophy__pillar:nth-child(3) {
    padding: var(--space-5) 0 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-philosophy__pillar:first-child {
    border-top: 0;
  }

  .restaurant-kitchen__layout,
  .restaurant-materials__layout {
    gap: var(--space-6);
  }

  .restaurant-kitchen__media {
    aspect-ratio: 4 / 3;
  }

  .restaurant-kitchen__list {
    margin-top: var(--space-6);
  }

  .restaurant-materials__notes article,
  .restaurant-materials__notes article + article {
    padding: var(--space-4) 0 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-materials__notes article:first-child {
    border-top: 0;
  }

  .restaurant-lounge__panel {
    padding: var(--space-5);
  }

  .restaurant-lounge__notice {
    margin-top: var(--space-6);
    padding: var(--space-4);
  }

  .restaurant-ritual__steps {
    margin-top: var(--space-6);
  }

  .restaurant-ritual__step,
  .restaurant-ritual__step:first-child,
  .restaurant-ritual__step:nth-child(3),
  .restaurant-ritual__step:nth-child(4) {
    grid-template-columns: 3.5rem minmax(0, 1fr);
    padding: var(--space-5) 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-ritual__step:first-child {
    border-top: 0;
  }

  .restaurant-ritual__step > span {
    font-size: 2.35rem;
  }

  .restaurant-occasions__grid {
    margin-top: var(--space-6);
  }

  .restaurant-occasions__item,
  .restaurant-occasions__item + .restaurant-occasions__item,
  .restaurant-occasions__item:nth-child(3) {
    padding: var(--space-5) 0 0;
    border-top: var(--border-dark);
    border-left: 0;
  }

  .restaurant-occasions__item:first-child {
    border-top: 0;
  }

  .restaurant-details__gallery {
    margin-top: var(--space-6);
  }

  .restaurant-details__figure--lounge {
    max-width: none;
  }

  .restaurant-details__links {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-3);
  }

  .restaurant-paths__item {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
  }

  .restaurant-paths__title,
  .restaurant-paths__description,
  .restaurant-paths__cta {
    grid-column: 1;
  }

  .restaurant-paths__cta {
    justify-self: start;
  }

  .restaurant-closing__panel {
    padding: var(--space-5);
  }

  .restaurant-closing__link,
  .restaurant-occasions__contact {
    text-align: left;
  }
}
