.home-page {
  overflow: clip;
}

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

.home-hero {
  padding-block: clamp(4.5rem, 9vw, 8rem) clamp(5rem, 10vw, 9rem);
}

.home-hero__grid {
  display: grid;
  grid-template-columns: minmax(11.25rem, 13rem) minmax(0, 1fr);
  grid-template-areas: "rail content" "rail media";
  gap: 2.5rem 4rem;
  align-items: start;
}

.home-hero__rail {
  grid-area: rail;
  display: flex;
  flex-direction: column;
  gap: 2rem;
  min-width: 0;
  padding-top: clamp(2rem, 5vw, 5.5rem);
}

.home-hero__rail-intro {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.home-hero__rail-intro .rule { width: 3rem; margin: 0; }
.home-hero__facts { display: flex; flex-direction: column; min-width: 0; }
.home-hero__fact { padding-block: 1rem; border-block-start: .0625rem solid var(--color-border); }
.home-hero__fact:last-child { border-block-end: .0625rem solid var(--color-border); }
.home-hero__fact span { display: block; color: var(--color-platinum); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--tracking-label); line-height: var(--leading-label); text-transform: uppercase; }
.home-hero__fact p { margin: .35rem 0 0; font-size: var(--text-xs); line-height: 1.5; }
.home-hero__button { width: 100%; }

.home-hero__content { grid-area: content; min-width: 0; padding-top: .5rem; }
.home-hero__mobile-eyebrow { display: none; }
.home-hero__content h1 { max-width: 47.5rem; margin-bottom: 1.5rem; font-size: clamp(3.2rem, 6vw, 5rem); }
.home-hero__lead { max-width: 35rem; margin-bottom: 0; color: var(--color-platinum-muted); font-size: var(--text-lead); line-height: 1.65; }

.home-hero__media {
  grid-area: media;
  position: relative;
  min-width: 0;
  min-height: 34rem;
  padding-top: 3.5rem;
}

.home-hero__media figure { margin: 0; }
.home-hero__wide { position: absolute; z-index: 1; inset: 3.5rem 0 0 auto; width: min(78%, 51rem); height: 28rem; border: .0625rem solid var(--color-charcoal); }
.home-hero__wide::after, .home-dining__media::after { position: absolute; inset: 0; background: linear-gradient(115deg, rgb(13 13 13 / 28%), transparent 65%); content: ""; pointer-events: none; }
.home-hero__wide img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.home-hero__table { position: absolute; z-index: 2; inset: 0 auto auto 3%; width: clamp(13.75rem, 23vw, 17.5rem); border: .0625rem solid var(--color-charcoal); }
.home-hero__table img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center center; }
.home-hero__host { position: absolute; z-index: 3; inset: -1.5rem 3% auto auto; width: clamp(9.5rem, 14vw, 11.875rem); border: .0625rem solid var(--color-charcoal); }
.home-hero__host img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center center; }
.home-hero__media figcaption, .home-dining__media figcaption { position: absolute; z-index: 4; bottom: -1.6rem; left: 0; margin: 0; color: var(--color-text-muted); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--tracking-label); line-height: var(--leading-label); text-transform: uppercase; }
.home-hero__host figcaption { left: auto; right: 0; width: max-content; }

.home-in-person__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 4rem; }
.home-in-person__intro, .home-in-person__entries { min-width: 0; }
.home-in-person__intro h2 { max-width: 29rem; }
.home-in-person__intro p:last-child { max-width: 26rem; margin-bottom: 0; }
.home-in-person__entries { display: flex; flex-direction: column; gap: 0; }
.home-in-person__entry { display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: 1.25rem; min-width: 0; padding-block: 0 2rem; }
.home-in-person__entry + .home-in-person__entry { padding-top: 2rem; border-top: .0625rem solid var(--color-border); }
.home-in-person__entry h3 { margin-bottom: .75rem; }
.home-in-person__entry p { max-width: 35rem; margin-bottom: 0; }
.home-in-person__index, .home-route-card__number, .home-hosted__step > span { color: var(--color-antique-gold); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--tracking-label); line-height: var(--leading-label); }
.home-in-person__link { align-self: flex-start; margin-top: 1rem; }

.home-routes__intro { max-width: 31rem; }
.home-routes__intro p:last-child { max-width: 28rem; margin-bottom: 3rem; }
.home-routes__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1.5rem; min-width: 0; }
.home-route-card { display: flex; flex-direction: column; min-width: 0; gap: 1rem; padding: 2rem; border: .0625rem solid var(--color-border); background: var(--color-midnight); transition: border-color var(--transition-base), transform var(--transition-base); }
.home-route-card:hover, .home-route-card:focus-within { border-color: var(--color-border-gold); transform: translateY(-.125rem); }
.home-route-card h3, .home-route-card p { margin: 0; }
.home-route-card h3 a { text-decoration: none; }
.home-route-card p { font-size: var(--text-sm); line-height: 1.65; }
.home-route-card .text-link { margin-top: auto; align-self: flex-start; }
.home-route-card--hosted { grid-column: 5 / span 4; grid-row: 1; padding-top: 2.5rem; border-top-color: var(--color-antique-gold); background: var(--color-charcoal); }
.home-route-card--room { grid-column: 1 / span 3; grid-row: 1; }
.home-route-card--formats { grid-column: 9 / span 3; grid-row: 1; }
.home-route-card--dining { grid-column: 3 / span 4; grid-row: 2; }
.home-route-card--private { grid-column: 7 / span 4; grid-row: 2; }

.home-hosted { background: var(--color-charcoal); }
.home-hosted__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; align-items: start; }
.home-hosted__intro, .home-hosted__steps { min-width: 0; }
.home-hosted__intro h2 { max-width: 25rem; }
.home-hosted__intro .rule { margin: 0 0 1.5rem; }
.home-hosted__intro p:last-child { max-width: 25.5rem; margin-bottom: 0; }
.home-hosted__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; }
.home-hosted__step { min-width: 0; padding: 0 1.5rem; border-left: .0625rem solid var(--color-border); }
.home-hosted__step--central { border-left-color: var(--color-border-gold); }
.home-hosted__step h3 { margin: .75rem 0; }
.home-hosted__step p { margin-bottom: 1rem; font-size: var(--text-sm); line-height: 1.65; }
.home-hosted__step .text-link { min-height: 2.5rem; }

.home-dining__layout { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-width: 0; }
.home-dining__panel { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; padding: clamp(2rem, 5vw, 4rem) max(var(--gutter), calc((100vw - var(--container-max)) / 2)); padding-right: clamp(2rem, 5vw, 4rem); background: var(--color-charcoal); }
.home-dining__panel h2, .home-dining__panel p { margin: 0; }
.home-dining__panel h2 { max-width: 27rem; }
.home-dining__lead { max-width: 28rem; }
.home-dining__rhythms { display: flex; flex-direction: column; min-width: 0; }
.home-dining__rhythms > div { padding-block: 1rem; border-top: .0625rem solid var(--color-border); }
.home-dining__rhythms > div:last-child { border-bottom: .0625rem solid var(--color-border); }
.home-dining__rhythms span { display: block; margin-bottom: .5rem; color: var(--color-antique-gold); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.home-dining__rhythms p { max-width: 25rem; font-size: var(--text-sm); line-height: 1.6; }
.home-dining__panel > .text-link { align-self: flex-start; }
.home-dining__media { grid-column: 2; grid-row: 1; min-width: 0; min-height: 38rem; margin: 0; border-radius: 0; }
.home-dining__media img { width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.home-dining__media figcaption { bottom: 1.25rem; left: 1.5rem; }

.home-private__top { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 5fr); gap: 2rem; align-items: end; }
.home-private__intro { grid-column: 1; min-width: 0; }
.home-private__intro h2 { max-width: 31rem; }
.home-private__intro p:last-child { max-width: 28rem; margin-bottom: 0; }
.home-private__quote { grid-column: 3; min-width: 0; padding: 2rem; border: .0625rem solid var(--color-border); background: var(--color-charcoal); }
.home-private__quote p { max-width: 18rem; margin: 0; color: var(--color-platinum); font-family: var(--font-heading); font-size: clamp(1.5rem, 2vw, 2rem); line-height: var(--leading-heading); }
.home-private__entries { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; margin-top: 4rem; }
.home-private__entries article { min-width: 0; }
.home-private__entries .rule { margin: 0 0 1.5rem; }
.home-private__entries h3 { margin-bottom: .75rem; }
.home-private__entries p { max-width: 19rem; margin-bottom: 1rem; font-size: var(--text-sm); line-height: 1.65; }
.home-private__entry--offset { margin-top: 3rem; }

.home-tempo__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; }
.home-tempo__intro, .home-tempo__notes { min-width: 0; }
.home-tempo__intro h2 { max-width: 22rem; }
.home-tempo__intro .rule { margin: 0 0 1.5rem; }
.home-tempo__intro p:last-child { max-width: 25rem; margin-bottom: 0; }
.home-tempo__notes { display: flex; flex-direction: column; }
.home-tempo__notes article { display: grid; grid-template-columns: 8.125rem minmax(0, 1fr); gap: 2rem; min-width: 0; padding-block: 1.5rem; border-top: .0625rem solid var(--color-border); }
.home-tempo__notes article:last-child { border-bottom: .0625rem solid var(--color-border); }
.home-tempo__notes article > span { color: var(--color-antique-gold); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--tracking-label); line-height: var(--leading-label); text-transform: uppercase; }
.home-tempo__notes h3 { margin-bottom: .75rem; }
.home-tempo__notes p { max-width: 33rem; margin-bottom: 1rem; }

.home-plan__panel { padding: clamp(2rem, 5vw, 4rem); }
.home-plan__panel { width: min(100%, 66.5rem); margin-inline: auto; }
.home-plan__intro { display: flex; flex-direction: column; align-items: center; gap: 1rem; max-width: 37.5rem; margin-inline: auto; text-align: center; }
.home-plan__intro h2, .home-plan__intro p { margin: 0; }
.home-plan__intro p { max-width: 37.5rem; }
.home-plan__routes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; min-width: 0; margin-top: 3rem; }
.home-plan__routes article { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding: 0 2.5rem; }
.home-plan__routes article:first-child { padding-left: 0; border-right: .0625rem solid var(--color-border); }
.home-plan__routes article:last-child { padding-right: 0; }
.home-plan__routes h3 { margin-bottom: .75rem; }
.home-plan__routes p { max-width: 21.875rem; margin-bottom: 1.5rem; font-size: var(--text-sm); line-height: 1.65; }

.home-continue__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; }
.home-continue__intro, .home-continue__links { min-width: 0; }
.home-continue__intro h2 { max-width: 23rem; }
.home-continue__intro p:last-child { max-width: 23.75rem; margin-bottom: 0; }
.home-continue__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2rem; }
.home-continue__links a { position: relative; display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem; gap: .75rem; min-width: 0; padding: 1.5rem 0; border-top: .0625rem solid var(--color-border); color: var(--color-platinum); text-decoration: none; }
.home-continue__links a:nth-last-child(-n+2) { border-bottom: .0625rem solid var(--color-border); }
.home-continue__links span { color: var(--color-antique-gold); font-size: var(--text-2xs); letter-spacing: var(--tracking-label); }
.home-continue__links strong { grid-column: 2; font-family: var(--font-heading); font-size: 1.5rem; font-weight: 400; line-height: 1.1; transition: color var(--transition-base); }
.home-continue__links p { grid-column: 2; max-width: 18rem; margin: 0; font-size: var(--text-xs); line-height: 1.55; }
.home-continue__links i { grid-column: 3; grid-row: 1 / span 2; align-self: center; color: var(--color-antique-gold); font-size: 1.25rem; font-style: normal; transition: transform var(--transition-base); }
.home-continue__links a:hover strong { color: var(--color-gold-soft); }
.home-continue__links a:hover i { transform: translateX(.35rem); }

.home-closing__inner { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; max-width: 42.5rem; margin-inline: auto; text-align: center; }
.home-closing__inner h2, .home-closing__inner p { margin: 0; }
.home-closing__inner h2 { max-width: 35rem; }
.home-closing__inner p { max-width: 35rem; }
.home-closing__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; min-width: 0; margin-top: 1rem; }

@media (max-width: 67.5rem) {
  .home-hero__grid { grid-template-columns: minmax(12rem, 14.5rem) minmax(0, 1fr); gap: 2rem; }
  .home-hero__media { min-height: 31rem; }
  .home-hero__wide { width: 82%; height: 25rem; }
  .home-in-person__grid, .home-hosted__grid, .home-tempo__grid, .home-continue__grid { gap: 2.5rem; }
  .home-routes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-route-card--hosted { grid-column: 1 / -1; grid-row: 1; }
  .home-route-card--room { grid-column: 1; grid-row: 2; }
  .home-route-card--formats { grid-column: 2; grid-row: 2; }
  .home-route-card--dining { grid-column: 1; grid-row: 3; }
  .home-route-card--private { grid-column: 2; grid-row: 3; }
  .home-dining__layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .home-dining__media { min-height: 34rem; }
  .home-private__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .home-private__intro { grid-column: 1; }
  .home-private__quote { grid-column: 2; }
}

@media (max-width: 56.25rem) {
  .home-hero__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "content" "rail" "media"; }
  .home-hero__rail { padding-top: 0; }
  .home-hero__rail-intro { display: none; }
  .home-hero__mobile-eyebrow { display: block; margin-bottom: 1rem; }
  .home-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: .0625rem solid var(--color-border); }
  .home-hero__fact { padding: 1rem; border: 0; border-right: .0625rem solid var(--color-border); }
  .home-hero__fact:last-child { border: 0; }
  .home-hero__button { width: max-content; }
  .home-in-person__grid, .home-hosted__grid, .home-tempo__grid, .home-continue__grid { grid-template-columns: minmax(0, 1fr); }
  .home-hosted__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-dining__layout { grid-template-columns: minmax(0, 1fr); }
  .home-dining__media { grid-column: 1; grid-row: 1; min-height: 28rem; }
  .home-dining__panel { grid-column: 1; grid-row: 2; padding: 2rem var(--gutter); }
  .home-private__entries { gap: 1.5rem; }
  .home-tempo__notes article { grid-template-columns: 6.5rem minmax(0, 1fr); gap: 1.25rem; }
  .home-continue__links { max-width: 44rem; }
}

@media (max-width: 51.25rem) {
  .home-routes__grid { grid-template-columns: minmax(0, 1fr); }
  .home-route-card--hosted, .home-route-card--room, .home-route-card--formats, .home-route-card--dining, .home-route-card--private { grid-column: 1; grid-row: auto; }
  .home-hosted__steps { grid-template-columns: minmax(0, 1fr); }
  .home-hosted__step { padding: 1.5rem 0; border-left: 0; border-top: .0625rem solid var(--color-border); }
  .home-hosted__step--central { border-top-color: var(--color-border-gold); }
  .home-private__top { grid-template-columns: minmax(0, 1fr); }
  .home-private__intro, .home-private__quote { grid-column: 1; }
  .home-private__entries { grid-template-columns: minmax(0, 1fr); }
  .home-private__entry--offset { margin-top: 0; }
  .home-private__entries article + article { padding-top: 1.5rem; border-top: .0625rem solid var(--color-border); }
  .home-plan__routes { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .home-plan__routes article, .home-plan__routes article:first-child, .home-plan__routes article:last-child { padding: 0; border: 0; }
  .home-plan__routes article + article { padding-top: 2rem; border-top: .0625rem solid var(--color-border); }
}

@media (max-width: 47.9375rem) {
  .home-hero { padding-block: 4rem 5rem; }
  .home-hero__grid { gap: 2rem; }
  .home-hero__content h1 { font-size: clamp(2.875rem, 12vw, 3.5rem); }
  .home-hero__lead { font-size: 1.0625rem; }
  .home-hero__facts { grid-template-columns: minmax(0, 1fr); }
  .home-hero__fact { border-right: 0; border-bottom: .0625rem solid var(--color-border); }
  .home-hero__fact:last-child { border-bottom: 0; }
  .home-hero__button { width: 100%; }
  .home-hero__media { display: flex; flex-direction: column; gap: 3rem; min-height: 0; padding-top: 0; }
  .home-hero__wide, .home-hero__table, .home-hero__host { position: relative; inset: auto; }
  .home-hero__wide { width: calc(100% + (var(--gutter) * 2)); height: 18rem; margin-left: calc(var(--gutter) * -1); border: 0; border-radius: 0; }
  .home-hero__table { width: 68%; align-self: flex-start; }
  .home-hero__host { width: 58%; align-self: flex-end; }
  .home-hero__media figcaption, .home-hero__host figcaption { position: absolute; right: auto; bottom: -1.5rem; left: 0; }
  .home-in-person__entry { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .home-in-person__entry p, .home-in-person__intro p:last-child { max-width: none; }
  .home-route-card { padding: 1.5rem; }
  .home-dining__media { min-height: 20rem; }
  .home-dining__media figcaption { bottom: 1rem; left: 1rem; }
  .home-dining__panel { margin-inline: var(--gutter); padding: 1.5rem; }
  .home-tempo__notes article { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .home-tempo__notes p { max-width: none; }
  .home-plan__panel { padding: 1.5rem; }
  .home-plan__intro { align-items: center; }
  .home-plan__intro p { text-align: left; }
  .home-plan__routes .button { width: 100%; }
  .home-continue__links { grid-template-columns: minmax(0, 1fr); }
  .home-continue__links a:nth-last-child(-n+2) { border-bottom: 0; }
  .home-continue__links a:last-child { border-bottom: .0625rem solid var(--color-border); }
  .home-closing__actions { flex-direction: column; width: 100%; }
  .home-closing__actions .button { width: 100%; }
  .home-closing__actions .text-link { align-self: center; }
}
