.home-page {
  overflow: hidden;
}

.home-page section {
  padding-block: var(--space-10);
}

.home-page .editorial-image {
  margin: 0;
}

.home-page .editorial-image img {
  width: 100%;
  max-width: 100%;
}

.home-page .editorial-image figcaption {
  margin-block-start: var(--space-2);
}

.home-page .home-text-link {
  color: var(--color-ink);
  font-weight: var(--font-weight-medium);
  text-decoration-thickness: 1px;
}

.home-page .home-text-link:hover,
.home-page .home-text-link:focus-visible {
  color: var(--color-tomato);
  text-decoration-color: var(--color-tomato);
}

.home-hero {
  padding-block-start: var(--space-9) !important;
}

.home-hero__container,
.home-menu-intro__container,
.home-kitchen__container,
.home-menu-preview__container,
.home-space__container,
.home-service__container,
.home-visit__container,
.home-dietary__container,
.home-booking__container,
.home-closing__container {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
}

.home-hero__eyebrow {
  width: max-content;
  max-width: 100%;
}

.home-hero__title {
  max-width: 22ch;
  margin-block-end: var(--space-6);
}

.home-hero__rule {
  width: 100%;
}

.home-hero__content {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
  padding-block-start: var(--space-6);
}

.home-hero__figure {
  width: 100%;
  min-width: 0;
}

.home-hero__figure img {
  aspect-ratio: 4 / 3;
  object-position: left center;
}

.home-hero__intro {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
}

.home-hero__intro > * {
  margin: 0;
}

.home-hero__intro .lead {
  max-width: 38ch;
}

.home-hero__actions,
.home-closing__actions {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-3);
}

.home-hero__actions > *,
.home-closing__actions > * {
  width: 100%;
  min-width: 0;
}

.home-menu-intro__container {
  gap: var(--space-7);
}

.home-menu-intro__heading {
  width: 100%;
  min-width: 0;
}

.home-menu-intro__heading h2 {
  max-width: 18ch;
  margin-block-end: 0;
}

.home-menu-intro__sequence {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
}

.home-menu-intro__unit {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  border-block-start: var(--border-width) solid var(--color-ink);
  padding-block: var(--space-5);
}

.home-menu-intro__unit:last-child {
  border-block-end: var(--border-width) solid var(--color-ink);
}

.home-menu-intro__number {
  margin: 0;
  font-size: var(--font-size-micro);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--tracking-label);
  line-height: var(--line-height-micro);
}

.home-menu-intro__copy {
  min-width: 0;
  max-width: 60ch;
}

.home-menu-intro__copy > :last-child {
  margin-block-end: 0;
}

.home-kitchen__container,
.home-space__container {
  gap: var(--space-6);
}

.home-kitchen__figure,
.home-space__figure,
.home-kitchen__copy,
.home-space__copy {
  width: 100%;
  min-width: 0;
}

.home-kitchen__figure img {
  aspect-ratio: 4 / 3;
  object-position: left center;
}

.home-kitchen__copy,
.home-space__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.home-kitchen__copy > *,
.home-space__copy > * {
  margin: 0;
}

.home-kitchen__copy .lead,
.home-space__copy .lead {
  max-width: 46ch;
}

.home-kitchen__copy > p:not(.eyebrow):not(.lead),
.home-space__copy > p:not(.eyebrow):not(.lead) {
  max-width: 48ch;
}

.home-menu-preview__container {
  gap: var(--space-7);
}

.home-menu-preview__heading h2 {
  max-width: 18ch;
  margin-block-end: 0;
}

.home-menu-preview__grid,
.home-service__principles {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
}

.home-menu-preview__unit,
.home-service__principle {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  border-block-start: var(--border-width) solid var(--color-ink);
  padding-block: var(--space-5);
}

.home-menu-preview__unit > *,
.home-service__principle > * {
  margin: 0;
}

.home-menu-preview__unit:last-child,
.home-service__principle:last-child {
  border-block-end: var(--border-width) solid var(--color-ink);
}

.home-menu-preview__unit p:not(.eyebrow) {
  max-width: 60ch;
}

.home-space__figure img {
  aspect-ratio: 4 / 3;
  object-position: center center;
}

.home-service__container {
  gap: var(--space-7);
}

.home-service__intro {
  width: 100%;
  min-width: 0;
}

.home-service__intro h2 {
  max-width: 17ch;
}

.home-service__intro .lead {
  max-width: 48ch;
}

.home-service__intro > p:not(.eyebrow):not(.lead) {
  max-width: 55ch;
}

.home-service__principle h3 {
  max-width: 15ch;
}

.home-service__principle p {
  max-width: 60ch;
}

.home-visit__container {
  gap: var(--space-7);
}

.home-visit__intro {
  width: 100%;
  min-width: 0;
}

.home-visit__intro h2 {
  max-width: 16ch;
}

.home-visit__intro p:not(.eyebrow) {
  max-width: 44ch;
}

.home-visit__list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  border-block-start: var(--border-width) solid var(--color-ink);
}

.home-visit__row {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-2);
  border-block-end: var(--border-width) solid var(--color-ink);
  padding-block: var(--space-4);
}

.home-visit__row dt {
  font-size: var(--font-size-micro);
  font-weight: var(--font-weight-medium);
  letter-spacing: var(--tracking-label);
  line-height: var(--line-height-micro);
  text-transform: uppercase;
}

.home-visit__row dd {
  min-width: 0;
  overflow-wrap: anywhere;
}

.home-visit__row a {
  display: inline-block;
  min-height: 2.75rem;
  padding-block: 0.5rem;
}

.home-dietary__block {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.home-dietary__block > * {
  margin: 0;
}

.home-dietary__block h2 {
  max-width: 18ch;
}

.home-dietary__block > p:not(.eyebrow) {
  max-width: 58ch;
}

.home-dietary__lead {
  border-inline-start: 4px solid var(--color-tomato);
  padding-inline-start: var(--space-4);
}

.home-booking__container {
  gap: var(--space-7);
}

.home-booking__intro,
.home-booking__form-wrap {
  width: 100%;
  min-width: 0;
}

.home-booking__intro {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
}

.home-booking__intro > * {
  margin: 0;
}

.home-booking__intro h2 {
  max-width: 16ch;
}

.home-booking__notice {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-3);
  border-inline-start: 4px solid var(--color-tomato);
  padding-inline-start: var(--space-4);
}

.home-booking__notice > * {
  margin: 0;
}

.home-booking__notice .lead {
  max-width: 46ch;
}

.home-booking__form-wrap {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-4);
}

.home-booking__form {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
}

.home-booking__field {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
}

.home-booking__field label {
  width: max-content;
  max-width: 100%;
}

.home-booking__date-fields {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-5);
}

.home-booking__field-error,
.home-booking__field-help {
  margin: var(--space-2) 0 0;
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-booking__field-error {
  min-height: 0;
  font-weight: var(--font-weight-medium);
}

.home-booking__field-help {
  max-width: 50ch;
  color: var(--color-muted-ink);
}

.home-booking__field [aria-invalid="true"] {
  border-width: 2px;
  border-color: var(--color-tomato);
}

.home-booking__error-summary {
  border: var(--border-width) solid var(--color-ink);
  border-inline-start: 4px solid var(--color-tomato);
  background: var(--color-paper);
  padding: var(--space-4);
  font-weight: var(--font-weight-medium);
}

.home-booking__status[hidden],
.home-booking__error-summary[hidden] {
  display: none;
}

.home-booking__submit {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.home-booking__submit > * {
  margin: 0;
}

.home-booking__submit .button {
  width: 100%;
  min-width: 0;
}

.home-booking__submit p {
  max-width: 50ch;
  color: var(--color-muted-ink);
  font-size: var(--font-size-small);
  line-height: var(--line-height-small);
}

.home-closing {
  padding-block-end: var(--space-10) !important;
}

.home-closing__content {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
}

.home-closing__content > * {
  margin: 0;
}

.home-closing__content h2 {
  max-width: 20ch;
}

.home-closing__content p {
  max-width: 45ch;
  font-size: var(--font-size-lead);
  line-height: var(--line-height-lead);
}

@media (min-width: 45rem) {
  .home-hero__actions,
  .home-closing__actions {
    grid-template-columns: repeat(2, minmax(0, max-content));
  }

  .home-hero__actions > *,
  .home-closing__actions > * {
    width: auto;
  }

  .home-menu-intro__unit {
    grid-template-columns: 5rem minmax(0, 1fr);
    gap: var(--space-5);
  }

  .home-visit__row {
    grid-template-columns: minmax(9rem, 2fr) minmax(0, 5fr);
    gap: var(--space-5);
  }

  .home-booking__date-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 56.25rem) {
  .home-menu-preview__grid,
  .home-service__principles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-menu-preview__unit:nth-child(2),
  .home-service__principle:nth-child(2) {
    border-inline-start: var(--border-width) solid var(--color-ink);
    padding-inline-start: var(--space-5);
  }

  .home-menu-preview__unit:nth-child(3),
  .home-service__principle:nth-child(3) {
    grid-column: 1 / -1;
  }
}

@media (min-width: 60rem) {
  .home-hero__container,
  .home-menu-intro__container,
  .home-kitchen__container,
  .home-menu-preview__container,
  .home-space__container,
  .home-service__container,
  .home-visit__container,
  .home-dietary__container,
  .home-booking__container,
  .home-closing__container {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--space-5);
  }

  .home-hero__eyebrow,
  .home-hero__title,
  .home-hero__rule,
  .home-hero__content,
  .home-menu-intro__heading,
  .home-menu-intro__sequence,
  .home-kitchen__figure,
  .home-kitchen__copy,
  .home-menu-preview__heading,
  .home-menu-preview__grid,
  .home-space__copy,
  .home-space__figure,
  .home-service__intro,
  .home-service__principles,
  .home-visit__intro,
  .home-visit__list,
  .home-dietary__block,
  .home-booking__intro,
  .home-booking__form-wrap,
  .home-closing__content {
    grid-row: auto;
  }

  .home-hero__eyebrow,
  .home-hero__title,
  .home-hero__rule,
  .home-hero__content {
    grid-column: 1 / -1;
  }

  .home-hero__title {
    grid-column: 1 / span 11;
  }

  .home-hero__content {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--space-5);
    align-items: start;
  }

  .home-hero__figure {
    grid-column: 1 / span 8;
  }

  .home-hero__intro {
    grid-column: 10 / span 3;
    padding-block-start: var(--space-7);
  }

  .home-menu-intro__heading {
    grid-column: 1 / span 7;
  }

  .home-menu-intro__sequence {
    grid-column: 1 / span 9;
  }

  .home-menu-intro__unit {
    grid-template-columns: repeat(9, minmax(0, 1fr));
    column-gap: var(--space-5);
  }

  .home-menu-intro__number {
    grid-column: 1 / span 2;
  }

  .home-menu-intro__copy {
    grid-column: 4 / span 6;
  }

  .home-kitchen__figure {
    grid-column: 1 / span 7;
  }

  .home-kitchen__copy {
    grid-column: 9 / span 4;
  }

  .home-kitchen__figure img {
    aspect-ratio: 3 / 2;
  }

  .home-menu-preview__heading {
    grid-column: 1 / span 6;
  }

  .home-menu-preview__grid {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-menu-preview__unit {
    border-block: 0;
    padding: 0;
  }

  .home-menu-preview__unit:nth-child(2),
  .home-menu-preview__unit:nth-child(3) {
    border-inline-start: var(--border-width) solid var(--color-ink);
    padding-inline-start: var(--space-5);
  }

  .home-menu-preview__unit:nth-child(3) {
    grid-column: auto;
  }

  .home-space__copy {
    grid-column: 1 / span 4;
  }

  .home-space__figure {
    grid-column: 6 / span 7;
  }

  .home-space__figure img {
    aspect-ratio: 3 / 2;
  }

  .home-service__intro {
    grid-column: 1 / span 6;
  }

  .home-service__principles {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .home-service__principle {
    border-block: 0;
    padding: 0;
  }

  .home-service__principle:nth-child(2),
  .home-service__principle:nth-child(3) {
    border-inline-start: var(--border-width) solid var(--color-ink);
    padding-inline-start: var(--space-5);
  }

  .home-service__principle:nth-child(3) {
    grid-column: auto;
  }

  .home-visit__intro {
    grid-column: 1 / span 4;
  }

  .home-visit__list {
    grid-column: 6 / -1;
  }

  .home-dietary__block {
    grid-column: 4 / span 6;
  }

  .home-booking__intro {
    grid-column: 1 / span 4;
  }

  .home-booking__form-wrap {
    grid-column: 6 / span 6;
  }

  .home-closing__content {
    grid-column: 1 / span 6;
  }
}

@media (min-width: 64rem) {
  .home-kitchen__container,
  .home-space__container {
    align-items: start;
  }
}

@media (max-width: 59.9375rem) {
  .home-page section {
    padding-block: var(--space-9);
  }

  .home-kitchen__copy,
  .home-space__copy {
    order: -1;
  }
}

@media (max-width: 44.9375rem) {
  .home-page section {
    padding-block: var(--space-8);
  }

  .home-hero {
    padding-block-start: var(--space-8) !important;
  }

  .home-hero__title {
    font-size: clamp(3rem, 13vw, 4rem);
  }

  .home-hero__actions .button,
  .home-closing__actions .button {
    min-height: 3rem;
  }

  .home-menu-preview__unit,
  .home-service__principle {
    padding-block: var(--space-5);
  }

  .home-booking__date-fields {
    grid-template-columns: minmax(0, 1fr);
  }
}
