.home-page {
  background: var(--color-ink-950);
  overflow: hidden;
}

.home-page .section {
  position: relative;
}

.home-page .button:focus-visible,
.home-page a:focus-visible,
.home-page summary:focus-visible {
  outline: 3px solid var(--color-rose-200);
  outline-offset: 2px;
}

.home-hero {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: max(720px, 100svh);
  isolation: isolate;
  overflow: hidden;
  padding: 8rem 0 2rem;
}

.home-hero__image,
.home-hero__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.home-hero__image {
  z-index: -2;
  object-fit: cover;
  object-position: center center;
}

.home-hero__overlay {
  z-index: -1;
  background:
    linear-gradient(90deg, rgba(16, 12, 18, .88) 0%, rgba(16, 12, 18, .54) 44%, rgba(16, 12, 18, .17) 75%),
    linear-gradient(0deg, rgba(16, 12, 18, .96) 0%, rgba(16, 12, 18, .14) 52%, rgba(16, 12, 18, .16) 100%),
    radial-gradient(circle at 75% 80%, rgba(229, 138, 168, .10), transparent 30%);
}

.home-hero__container { width: 100%; }
.home-hero__panel {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  width: min(100%, 35rem);
  min-width: 0;
  margin-left: auto;
  padding: 2rem;
  border: var(--border-light);
  border-radius: var(--radius-lg);
  background: rgba(25, 21, 29, .88);
  background-image: var(--surface-reflection);
  box-shadow: var(--shadow-floating);
  backdrop-filter: blur(16px);
}
.home-hero__panel > * { min-width: 0; margin: 0; }
.home-hero__panel h1 { font-size: var(--text-display-xl); }
.home-hero__lead { max-width: 52ch; color: var(--color-mist-300); font-size: var(--text-body-lg); line-height: 1.6; }
.home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; min-width: 0; }
.home-hero__actions > * { min-width: 0; }
.home-hero__menu-link { text-decoration: underline; text-decoration-color: transparent; }
.home-hero__menu-link:hover { color: var(--color-rose-200); text-decoration-color: currentColor; }

.home-signature__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2rem; align-items: start; }
.home-signature__grid > * { min-width: 0; width: 100%; }
.home-signature__copy { display: flex; flex-direction: column; gap: 1.5rem; padding-top: 2rem; }
.home-signature__copy > * { min-width: 0; margin: 0; }
.home-signature__intro { max-width: 42ch; }
.home-signature__principles { display: flex; flex-direction: column; gap: 0; min-width: 0; }
.home-numbered-note { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 1rem; padding: 1.5rem 0; border-top: var(--border-light); }
.home-numbered-note > * { min-width: 0; }
.home-numbered-note span { color: var(--color-rose-400); font-size: var(--text-caption); font-weight: 700; letter-spacing: .1em; }
.home-numbered-note h3 { margin: 0 0 .5rem; font-size: 1.75rem; }
.home-numbered-note p { max-width: 48ch; margin: 0; }
.home-signature__media { position: relative; width: 100%; margin: 0; }
.home-signature__media figcaption { position: absolute; right: 1rem; bottom: 1rem; width: min(55%, 22rem); margin: 0; padding-top: .75rem; border-top: var(--border-light); color: var(--color-ivory-50); background: linear-gradient(90deg, rgba(16,12,18,.72), transparent); }
.home-text-link { align-self: flex-start; }

.home-chef__panel { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(0, 3fr); gap: 2rem; align-items: start; padding: 3rem; border: var(--border-light); border-radius: var(--radius-lg); background: linear-gradient(130deg, var(--color-charcoal-800), var(--color-plum-700)); background-image: var(--surface-reflection), linear-gradient(130deg, var(--color-charcoal-800), var(--color-plum-700)); }
.home-chef__panel > * { width: 100%; min-width: 0; }
.home-chef__media { margin: 0; }
.home-chef__story { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.home-chef__story > * { min-width: 0; margin: 0; }
.home-chef__story p:not(.eyebrow) { max-width: 52ch; }
.home-chef__rail { display: flex; flex-direction: column; gap: 1.5rem; padding-top: .25rem; }
.home-chef__rail > * { min-width: 0; padding-top: 1.5rem; border-top: var(--border-light); }
.home-chef__rail p { margin: 0; }
.home-chef__rail .meta { margin-bottom: .75rem; }

.home-rhythms__intro { max-width: 36rem; }
.home-rhythms__intro > * { min-width: 0; }
.home-rhythms__bands { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr); gap: 2rem; margin-top: 3rem; }
.home-rhythms__bands > * { width: 100%; min-width: 0; padding-top: 1.5rem; border-top: var(--border-light); }
.home-rhythms__bands h3 { font-size: 1.75rem; }
.home-rhythms__bands p:not(.eyebrow) { max-width: 40ch; }

.home-room__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 3fr); justify-content: space-between; gap: 2rem; }
.home-room__grid > * { width: 100%; min-width: 0; }
.home-room__copy { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; }
.home-room__copy > * { min-width: 0; margin: 0; }
.home-room__copy p { max-width: 50ch; }
.home-room__rail { display: flex; flex-direction: column; gap: 1.5rem; }
.home-room__rail > * { min-width: 0; padding-top: 1.5rem; border-top: var(--border-light); }
.home-room__rail p { margin: 0; }
.home-room__rail .meta { margin-bottom: .75rem; }

.home-occasions__surface { display: flex; flex-direction: column; gap: 3rem; padding: 3rem; background: var(--color-charcoal-800); }
.home-occasions__surface > * { min-width: 0; margin: 0; }
.home-occasions__intro { max-width: 37.5rem; }
.home-occasions__intro > * { min-width: 0; }
.home-occasions__panels { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem; }
.home-occasions__panels > * { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; width: 100%; min-width: 0; padding: 2rem; }
.home-occasions__panels > * > * { min-width: 0; margin: 0; }
.home-occasion-private { background-color: var(--color-plum-700); background-image: var(--surface-reflection); border: var(--border-accent); border-radius: var(--radius-lg); }
.home-occasion-group { border: var(--border-light); background: var(--color-charcoal-900); }
.home-occasions__panels p:not(.eyebrow) { max-width: 42ch; }
.home-occasions__closing { max-width: 50ch; padding-top: 1.5rem; border-top: var(--border-light); }

.home-booking__intro { max-width: 35rem; }
.home-booking__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-top: 3rem; }
.home-booking__steps > * { width: 100%; min-width: 0; padding-top: 1.5rem; border-top: var(--border-light); }
.home-booking__steps span { color: var(--color-rose-400); font-size: var(--text-caption); font-weight: 700; letter-spacing: .12em; }
.home-booking__steps h3 { margin-top: .75rem; font-family: var(--font-body); font-size: 1rem; letter-spacing: .08em; }
.home-booking__steps p { max-width: 38ch; margin-bottom: 0; }
.home-booking__cta { margin-top: 2rem; }

.home-essence { border-top: var(--border-light); border-bottom: var(--border-light); }
.home-essence__container { display: flex; flex-direction: column; gap: 3rem; }
.home-essence__container > * { min-width: 0; margin: 0; }
.home-essence__container > h2 { width: min(66.666%, 51.25rem); font-size: var(--text-display-m); }
.home-essence__principles { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 5fr); gap: 2rem; }
.home-essence__principles > * { width: 100%; min-width: 0; padding-top: 1.5rem; border-top: var(--border-light); }
.home-essence__principles h3 { font-size: 1.4rem; }
.home-essence__principles p:not(.eyebrow) { max-width: 38ch; margin-bottom: 0; }
.home-essence__actions { display: flex; flex-wrap: wrap; gap: 1rem; min-width: 0; }
.home-essence__actions > * { min-width: 0; }

.home-faq__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 8.333%; align-items: start; }
.home-faq__grid > * { width: 100%; min-width: 0; }
.home-faq__intro { max-width: 30rem; }
.home-faq__list { width: 100%; max-width: 42.5rem; }
.home-faq__list details { min-width: 0; border-bottom: var(--border-light); }
.home-faq__list summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.25rem; padding: .75rem 1rem; color: var(--color-ivory-50); font-weight: 700; cursor: pointer; list-style: none; }
.home-faq__list summary::-webkit-details-marker { display: none; }
.home-faq__list summary span { flex: 0 0 auto; color: var(--color-rose-400); font-size: 1.5rem; font-weight: 400; transition: transform var(--transition-menu); }
.home-faq__list details[open] summary span { transform: rotate(45deg); }
.home-faq__answer { overflow: hidden; padding: 0 1rem 1.25rem; animation: homeFaqOpen 220ms ease both; }
.home-faq__answer p { max-width: 54ch; margin: 0; }
@keyframes homeFaqOpen { from { opacity: 0; transform: translateY(-.35rem); } to { opacity: 1; transform: translateY(0); } }

.home-final { padding-top: 0; }
.home-final__container { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem; align-items: center; width: min(100% - (var(--container-padding) * 2), 47.5rem); margin-inline: auto; padding: 2rem; border: var(--border-light); border-radius: var(--radius-lg); background: var(--color-charcoal-900); }
.home-final__container > * { width: 100%; min-width: 0; }
.home-final__copy { max-width: 48ch; }
.home-final__copy > * { min-width: 0; }
.home-final__action { display: flex; justify-content: flex-end; min-width: 0; }
.home-final__action > * { min-width: 0; }

@media (max-width: 999px) {
  .home-chef__panel { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .home-chef__rail { grid-column: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
  .home-chef__rail > * { width: 100%; min-width: 0; }
}

@media (max-width: 959px) {
  .home-room__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
}

@media (max-width: 940px) {
  .home-rhythms__bands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-rhythms__bands > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 899px) {
  .home-hero { min-height: 50rem; padding-bottom: 2rem; }
  .home-hero__panel { margin-inline: auto; width: min(100%, 38.75rem); }
  .home-signature__grid { grid-template-columns: 1fr; }
  .home-signature__media { order: -1; }
  .home-signature__copy { padding-top: 0; max-width: 38.75rem; }
  .home-occasions__panels { grid-template-columns: 1fr; }
  .home-essence__container > h2 { width: 100%; max-width: 51.25rem; }
  .home-essence__principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-essence__principles > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 860px) {
  .home-faq__grid { grid-template-columns: 1fr; gap: 3rem; }
  .home-faq__list { max-width: min(100%, 42.5rem); }
}

@media (max-width: 840px) {
  .home-booking__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-booking__steps > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 779px) {
  .home-final__container { grid-template-columns: 1fr; }
  .home-final__action { justify-content: flex-start; }
}

@media (max-width: 640px) {
  .home-hero { min-height: 43.75rem; padding: 7rem 0 1.25rem; }
  .home-hero__image { object-position: 60% center; }
  .home-hero__overlay { background: linear-gradient(0deg, rgba(16,12,18,.96) 0%, rgba(16,12,18,.50) 56%, rgba(16,12,18,.18) 100%), linear-gradient(90deg, rgba(16,12,18,.48), transparent 86%); }
  .home-hero__panel { width: 100%; padding: 1.5rem; gap: 1rem; }
  .home-hero__panel h1 { font-size: clamp(3.35rem, 14vw, 3.5rem); line-height: .98; }
  .home-hero__lead { font-size: 1rem; }
  .home-hero__actions { flex-direction: column; align-items: flex-start; gap: .75rem; }
  .home-hero__actions .button--primary { width: 100%; min-height: 2.75rem; }

  .home-signature__copy { gap: 1.25rem; }
  .home-signature__media { aspect-ratio: 4 / 3; }
  .home-signature__media figcaption { right: .75rem; bottom: .75rem; width: calc(100% - 1.5rem); }
  .home-numbered-note { grid-template-columns: 1fr; gap: .5rem; }

  .home-chef__panel { grid-template-columns: 1fr; gap: 1.5rem; padding: 1.5rem; }
  .home-chef__media { aspect-ratio: 4 / 3; }
  .home-chef__rail { grid-column: auto; grid-template-columns: 1fr; gap: 1rem; }

  .home-rhythms__bands,
  .home-room__grid,
  .home-essence__principles,
  .home-faq__grid,
  .home-final__container { grid-template-columns: 1fr; }
  .home-rhythms__bands > :first-child,
  .home-essence__principles > :first-child { grid-column: auto; }
  .home-rhythms__bands { gap: 1.5rem; }
  .home-room__grid { gap: 2.5rem; }
  .home-room__copy p { max-width: none; }

  .home-occasions__surface { gap: 2rem; padding: 1.5rem; }
  .home-occasions__panels { gap: 1rem; }
  .home-occasions__panels > * { padding: 1.5rem; }

  .home-booking__steps { grid-template-columns: 1fr; gap: 1.5rem; }
  .home-booking__steps > :first-child { grid-column: auto; }
  .home-booking__cta { width: 100%; min-height: 3rem; }

  .home-essence__container { gap: 2rem; }
  .home-essence__container > h2 { font-size: clamp(2.4rem, 10vw, 2.75rem); }
  .home-essence__actions { flex-direction: column; }
  .home-essence__actions .button { width: 100%; }

  .home-faq__grid { gap: 2rem; }
  .home-faq__list summary { min-height: 3.25rem; padding-inline: 1rem; }

  .home-final__container { width: min(100% - (var(--container-padding) * 2), 47.5rem); padding: 1.5rem; }
  .home-final__action .button { width: 100%; min-height: 3rem; }
}
