.home-page {
  overflow: clip;
}

.home-page :is(.home-hero, .home-rhythms, .home-kitchen, .home-salon, .home-lounge, .home-clarity, .home-scenarios, .home-private, .home-destinations, .home-closing) {
  min-width: 0;
}

.home-page .button:focus-visible,
.home-page .home-text-link:focus-visible,
.home-page .home-destination:focus-visible {
  outline: 2px solid var(--color-burgundy);
  outline-offset: 3px;
}

.home-hero {
  position: relative;
  display: grid;
  min-height: 42.5rem;
  isolation: isolate;
  color: var(--color-cream);
}

.home-hero__image,
.home-hero__overlay,
.home-hero__container {
  grid-area: 1 / 1;
}

.home-hero__image {
  width: 100%;
  max-width: none;
  height: 700px;
  min-width: 0;
  object-fit: cover;
  object-position: center;
}

.home-hero__overlay {
  z-index: 1;
  background: rgb(36 24 20 / 48%);
}

.home-hero__container {
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-5);
  align-items: end;
  padding-block: var(--space-10) var(--space-9);
}

.home-hero__content {
  grid-column: 1 / span 5;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-hero__content :is(h1, p) {
  margin: 0;
}

.home-hero__content h1 {
  max-width: 14ch;
  font-size: clamp(3.3rem, 5.6vw, 4.25rem);
}

.home-hero__content .intro {
  max-width: 54ch;
}

.home-hero__content .eyebrow {
  color: var(--color-cream-warm);
}

.home-hero__actions {
  width: 100%;
}

.home-hero__secondary {
  border-color: var(--color-cream);
  color: var(--color-cream);
}

.home-hero__secondary:hover {
  border-color: var(--color-cream-warm);
  background: var(--color-cream-warm);
  color: var(--color-walnut);
}

.home-hero__note {
  width: 100%;
  border-top: 1px solid rgb(242 233 216 / 58%);
  padding-top: var(--space-3);
  color: var(--color-cream-warm);
  font-size: var(--text-label);
  line-height: var(--leading-label);
}

.home-rhythms__intro {
  width: min(100%, 43rem);
}

.home-rhythms__intro .intro {
  max-width: 60ch;
}

.home-rhythms__panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.home-rhythm {
  display: flex;
  min-width: 0;
  min-height: 20rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  border: 1px solid var(--color-line);
  padding: var(--space-6);
}

.home-rhythm :is(h3, p) {
  margin: 0;
}

.home-rhythm h3 {
  max-width: 20ch;
  font-size: clamp(1.65rem, 2.2vw, 2rem);
}

.home-rhythm p:not(.meta) {
  max-width: 46ch;
}

.home-rhythm--restaurant {
  background: var(--color-cream);
}

.home-rhythm--restaurant::before {
  width: 3rem;
  height: 2px;
  content: "";
  background: var(--color-burgundy);
}

.home-rhythm--lounge {
  border-color: rgb(242 233 216 / 45%);
  background: var(--color-emerald);
  color: var(--color-cream);
}

.home-rhythm--lounge .meta {
  color: var(--color-cream-warm);
}

.home-rhythms__closing {
  width: min(100%, 43.75rem);
  margin: var(--space-7) 0 0;
  font-size: var(--text-intro);
  line-height: var(--leading-intro);
}

.home-text-link {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  gap: var(--space-2);
  border-bottom: 1px solid transparent;
  color: var(--color-emerald);
  font-size: var(--text-label);
  font-weight: 700;
  line-height: var(--leading-label);
  text-decoration: none;
  transition: border-color var(--transition-fast), color var(--transition-fast);
}

.home-text-link:hover {
  border-color: currentcolor;
  text-decoration: none;
}

.home-text-link--light {
  color: var(--color-cream);
}

.home-kitchen__heading {
  width: min(100%, 37.5rem);
}

.home-kitchen__heading .intro {
  max-width: 62ch;
}

.home-kitchen__split {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--space-7);
  align-items: start;
  margin-top: var(--space-7);
}

.home-kitchen__figure,
.home-salon__figure,
.home-private__figure {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.home-kitchen__figure img,
.home-salon__figure img,
.home-private__figure img {
  width: 100%;
  max-width: 100%;
  object-fit: cover;
}

.home-kitchen__figure img {
  aspect-ratio: 4 / 5;
  border-radius: var(--radius-md);
  object-position: center;
}

.home-kitchen__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-6);
}

.home-kitchen__copy :is(h3, h4, p) {
  margin: 0;
}

.home-kitchen__main-copy,
.home-kitchen__point,
.home-kitchen__menu-callout {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.home-kitchen__main-copy p:not(.home-kitchen__italic) {
  max-width: 64ch;
}

.home-kitchen__italic {
  max-width: 28ch;
  color: var(--color-burgundy);
  font-family: var(--font-heading);
  font-size: var(--text-h4);
  font-style: italic;
  line-height: var(--leading-heading-sm);
}

.home-kitchen__point,
.home-kitchen__menu-callout {
  border-top: 1px solid var(--color-line);
  padding-top: var(--space-5);
}

.home-kitchen__point p,
.home-kitchen__menu-callout p {
  max-width: 48ch;
}

.home-kitchen__menu-callout .button {
  margin-top: var(--space-2);
}

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

.home-salon__figure img {
  aspect-ratio: 3 / 2;
  border: 1px solid rgb(242 233 216 / 45%);
  object-position: center;
}

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

.home-salon__copy :is(h2, p) {
  margin: 0;
}

.home-salon__copy > .intro {
  max-width: 58ch;
}

.home-salon__features {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
}

.home-salon__feature {
  display: grid;
  grid-template-columns: 2rem minmax(0, 1fr);
  gap: var(--space-3);
  border-top: 1px solid rgb(242 233 216 / 42%);
  padding-top: var(--space-4);
}

.home-salon__feature > * {
  min-width: 0;
}

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

.home-salon__feature :is(h3, p) {
  margin: 0;
}

.home-salon__feature h3 {
  font-size: var(--text-h4);
}

.home-salon__feature p {
  max-width: 42ch;
}

.home-salon__number {
  color: var(--color-cream-warm);
  font-size: var(--text-meta);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: var(--leading-meta);
}

.home-lounge__intro {
  width: min(100%, 37.5rem);
}

.home-lounge__intro .intro {
  max-width: 62ch;
}

.home-lounge__modules {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.home-lounge__module {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  border-top: 1px solid rgb(242 233 216 / 56%);
  padding-top: var(--space-5);
}

.home-lounge__module :is(h3, p) {
  margin: 0;
}

.home-lounge__module h3 {
  max-width: 16ch;
}

.home-lounge__module p:not(.meta) {
  max-width: 42ch;
}

.home-lounge__module--important {
  border-top-color: var(--color-burgundy);
}

.home-lounge__module--important .meta {
  color: var(--color-cream-warm);
}

.home-clarity__heading {
  width: min(100%, 43.75rem);
}

.home-clarity__panels {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.home-clarity__panel {
  display: flex;
  min-width: 0;
  min-height: 19rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
}

.home-clarity__panel :is(h3, p) {
  margin: 0;
}

.home-clarity__panel h3 {
  font-size: clamp(1.8rem, 2.8vw, 2.25rem);
}

.home-clarity__panel p:not(.meta) {
  max-width: 44ch;
}

.home-clarity__panel--is {
  background: var(--color-cream-warm);
}

.home-clarity__panel--not {
  border-top: 2px solid var(--color-burgundy);
  background: var(--color-walnut);
  color: var(--color-cream);
}

.home-clarity__panel--not .meta {
  color: var(--color-cream-warm);
}

.home-scenarios__intro {
  width: min(100%, 43.75rem);
}

.home-scenarios__intro .intro {
  max-width: 64ch;
}

.home-scenarios__list {
  display: flex;
  min-width: 0;
  flex-direction: column;
  margin-top: var(--space-7);
  border-top: 1px solid var(--color-line);
}

.home-scenario {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 3fr) minmax(0, 5fr) minmax(0, 3fr);
  gap: var(--space-4);
  align-items: start;
  border-bottom: 1px solid var(--color-line);
  padding-block: var(--space-5);
}

.home-scenario > * {
  min-width: 0;
}

.home-scenario :is(h3, p) {
  margin: 0;
}

.home-scenario h3 {
  font-size: var(--text-h4);
}

.home-scenario p {
  max-width: 48ch;
}

.home-scenario__index {
  color: var(--color-muted-ink);
  font-size: var(--text-meta);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: var(--leading-meta);
}

.home-scenario .home-text-link {
  justify-self: end;
  align-self: center;
}

.home-scenario--lounge {
  border-bottom-color: var(--color-emerald);
}

.home-scenario--private {
  border-bottom-color: var(--color-burgundy);
}

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

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

.home-private__copy :is(h2, p) {
  margin: 0;
}

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

.home-private__main-copy :is(h3, p),
.home-private__support :is(h4, p) {
  margin: 0;
}

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

.home-private__support {
  border-top: 1px solid var(--color-line);
  padding-top: var(--space-5);
}

.home-private__support p {
  max-width: 48ch;
}

.home-private__figure img {
  aspect-ratio: 3 / 2;
  border-radius: var(--radius-md);
  object-position: center;
}

.home-private__actions {
  width: 100%;
}

.home-destinations__intro {
  width: min(100%, 37.5rem);
}

.home-destinations__intro .intro {
  max-width: 60ch;
}

.home-destinations__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  margin-top: var(--space-7);
}

.home-destination {
  display: flex;
  min-width: 0;
  min-height: 17rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  border-top: 1px solid var(--color-line);
  padding: var(--space-5) 0;
  color: var(--color-ink);
  text-decoration: none;
  transition: border-color var(--transition-fast), color var(--transition-fast);
}

.home-destination > * {
  min-width: 0;
}

.home-destination :is(h3, p) {
  margin: 0;
}

.home-destination h3 {
  font-size: clamp(1.65rem, 2.3vw, 2rem);
}

.home-destination p {
  max-width: 38ch;
}

.home-destination__index {
  color: var(--color-muted-ink);
  font-size: var(--text-meta);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: var(--leading-meta);
}

.home-destination__cta {
  display: inline-flex;
  gap: var(--space-2);
  margin-top: auto;
  border-bottom: 1px solid transparent;
  color: var(--color-emerald);
  font-size: var(--text-label);
  font-weight: 700;
  line-height: var(--leading-label);
}

.home-destination:hover {
  border-top-color: var(--color-emerald);
  text-decoration: none;
}

.home-destination:hover .home-destination__cta {
  border-bottom-color: currentcolor;
}

.home-destination--lounge {
  border-top-color: var(--color-emerald);
  background: var(--color-emerald);
  color: var(--color-cream);
  padding-inline: var(--space-5);
}

.home-destination--lounge .home-destination__index,
.home-destination--lounge .home-destination__cta {
  color: var(--color-cream-warm);
}

.home-destination--lounge:hover {
  border-top-color: var(--color-cream);
}

.home-closing {
  padding-bottom: calc(var(--section-space) + var(--space-4));
}

.home-closing__content {
  display: flex;
  width: min(100%, 37.5rem);
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  margin-inline: auto;
  border-top: 1px solid rgb(242 233 216 / 48%);
  padding-top: var(--space-7);
  text-align: center;
}

.home-closing__content :is(h2, p) {
  margin: 0;
}

.home-closing__content .intro {
  max-width: 50ch;
}

.home-closing__actions {
  justify-content: center;
}

.home-closing .button:focus-visible,
.home-closing .home-text-link:focus-visible {
  outline-color: var(--color-cream);
}

@media (max-width: 63.99rem) {
  .home-hero__overlay {
    background: rgb(36 24 20 / 58%);
  }

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

  .home-scenarios__list {
    gap: 0;
  }

  .home-scenario {
    grid-template-columns: minmax(0, 1fr) minmax(0, 5fr) minmax(0, 6fr);
  }

  .home-scenario .home-text-link {
    grid-column: 2 / span 2;
    justify-self: start;
    margin-top: var(--space-2);
  }
}

@media (max-width: 62.49rem) {
  .home-kitchen__split,
  .home-salon__grid,
  .home-private__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-6);
  }

  .home-kitchen__figure {
    order: 1;
  }

  .home-kitchen__copy {
    order: 2;
  }

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

  .home-salon__figure,
  .home-private__copy,
  .home-private__figure {
    width: 100%;
  }
}

@media (max-width: 59.99rem) {
  .home-rhythms__panels,
  .home-lounge__modules {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-rhythm {
    min-height: 0;
  }

  .home-lounge__modules {
    gap: 0;
  }

  .home-lounge__module {
    padding-block: var(--space-5);
  }
}

@media (max-width: 51.24rem) {
  .home-clarity__panels {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-clarity__panels {
    gap: var(--space-4);
  }
}

@media (max-width: 48.74rem) {
  .home-destinations__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    border-top: 1px solid var(--color-line);
  }

  .home-destination {
    min-height: 0;
    border-top: 0;
    border-bottom: 1px solid var(--color-line);
    padding: var(--space-5) 0;
  }

  .home-destination--lounge {
    margin-block: var(--space-3);
    border: 0;
    padding: var(--space-5);
  }
}

@media (max-width: 47.99rem) {
  .home-hero {
    min-height: 35rem;
  }

  .home-hero__image {
    object-position: 58% center;
  }

  .home-hero__overlay {
    background: rgb(36 24 20 / 62%);
  }

  .home-hero__container {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding-block: var(--space-8) var(--space-6);
  }

  .home-hero__content {
    grid-column: 1;
    gap: var(--space-4);
  }

  .home-hero__content h1 {
    max-width: 12ch;
    font-size: clamp(2.9rem, 12vw, 3.25rem);
  }

  .home-hero__content .intro {
    max-width: 100%;
    font-size: var(--text-body);
    line-height: var(--leading-body);
  }

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

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

  .home-rhythms__panels,
  .home-kitchen__split,
  .home-salon__grid,
  .home-private__grid {
    margin-top: var(--space-6);
  }

  .home-rhythm,
  .home-clarity__panel {
    padding: var(--space-5);
  }

  .home-kitchen__figure img,
  .home-salon__figure img,
  .home-private__figure img {
    aspect-ratio: 4 / 3;
  }

  .home-salon__grid {
    gap: 0;
  }

  .home-salon__copy {
    padding: var(--space-5);
  }

  .home-salon__feature {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-2);
  }

  .home-lounge__modules,
  .home-clarity__panels,
  .home-scenarios__list,
  .home-destinations__grid {
    margin-top: var(--space-6);
  }

  .home-scenario {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-3);
    padding-block: var(--space-5);
  }

  .home-scenario .home-text-link {
    grid-column: 1;
    justify-self: start;
    margin-top: 0;
  }

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

  .home-private__actions > * {
    width: 100%;
    min-width: 0;
  }

  .home-private__actions .home-text-link {
    justify-content: center;
  }

  .home-closing {
    padding-bottom: calc(var(--section-space) + 4rem);
  }

  .home-closing__content {
    width: 100%;
    gap: var(--space-4);
    padding-top: var(--space-6);
  }

  .home-closing__content h2 {
    font-size: clamp(2.35rem, 10vw, 2.65rem);
  }

  .home-closing__actions {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
  }

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

  .home-closing__actions .home-text-link {
    justify-content: center;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .home-hero__content {
    animation: home-hero-reveal 220ms ease-out both;
  }

  @keyframes home-hero-reveal {
    from {
      opacity: 0;
      transform: translateY(0.5rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
